본문 바로가기

CSE26

[시스템프로그래밍] 실수의 표현 및 처리(1) 저번에는 정수를 표현하는 법을 봤다. 이번엔 실수를 표현하는 법을 보겠다. 소수점 표시 방법크게 두가지가 있다.고정 소수점 방식은 숫자에서 소수점의 위치를 고정시켜셔 숫자를 표시하는 것이다.예를들어 소수점 4번째 자리에서 고정한다고 하면 가장 큰 숫자는 9999.9999이고, 가장 작은 숫자는 0000.0001이다. 우리가 이번에 배울 부동소수점 방식은 소수점의 위치를 따로 정해두지 않는다.따라서 숫자 내에 유효숫자와 소수점의 위치를 표시한다.예를 들어 8자리 유효숫자와 2자리 지수로 표현할 때, 9.99999999E+50으로 표시할 수 있다.여기서 9.99999999가 유효숫자이고 E+50이 지수이다. 2진 소수우리가 이제까지 이진수를 사용하여 정수를 표시할 때에 맨 오른쪽부터 2의 0제곱, 2의 1제.. 2025. 10. 21.
[시스템프로그래밍] 2장 정보의 표현 및 처리(정수의 표현) 바이트 값의 인코딩아마 이 글을 보는 대부분은 논리회로를 배웠을 것이다.숫자는 위와 같이 10진수, 16진수, 2진수로 나타낼 수 있다. 컴퓨터의 워드 길이워드 길이는 정수값의 크기를 말한다. 요즘 컴퓨터는 대부분 64bit(8byte)이다.이 때 하나의 정수의 주소는 메모리에서 한 덩어리(8byte)의 첫번째 위치이다. 따라서 연속된 워드의 주소는 4또는 8 바이트씩 증가한다. 32bit, 64bit, 48bit 컴퓨터에서는 각각의 자료형을 위와 같은 수의 byte로 표시한다. Byte Ordering가장 생소한 개념일 것이다. 컴퓨터마다 여러 바이트로 이루어진 데이터를 저장하는 순서가 다르다. Sun, Mac, 인터넷은 big Endian,x86, 안드로이드, ios, 윈도우를 실행하는 ARM 프로세.. 2025. 10. 11.
[시스템프로그래밍] 1장 컴퓨터 시스템 기본 컴퓨터구조컴퓨터 시스템의 계층도이다. 보통 사용자가 보는 소프트웨어는 application programs이다. 이 프로그램이 직접 컴퓨터의 하드웨어 부분(메모리 등)을 조작하면 동시성 문제 등의 문제가 발생할 수 있다. 따라서 사용자 소프트웨어의 요청을 받고, 하드웨어를 조작해주는 프로그램을 operating system(운영체제)라고 한다. 하드웨어의 구성요소는 위와 같다. 입출력장치는 키보드, 마우스 등을 의미하고, 캐쉬는 메인메모리와 보조메모리 사이에 위치하는 하드웨어이다.버스는 구성요소간의 데이터 전달의 기능을 수행한다. 나는 수업들을 때 이 cpu가 너무 헷갈렸다. 이를 이해하기 위해 컴퓨터구조를 전체적으로 살펴보자.기본적으로 컴퓨터의 구조는 이렇게 생겼다.메인보드 위에는 cpu와 메모.. 2025. 9. 25.
[웹보안] SSRF SSRFssrf는 서버가 외부에 요청을 보내도록 승인하는 것이다.이 때 내부에서만 접근 가능한 서비스에 접근하거나서버가 공격자가 지정한 외부 임의 시스템에 접근하거나공격자가 민감한 데이터를 훔치거나명령어 실행까지 가능하다 → shellshock도 가능여기서 정상 명령은 위에 부분이다.근데 공격코드는 재고확인을 서버의 로컬에서 하도록하였다.이는 서버의 로컬에 간접적으로 접근했음을 의미한다이 때 서버는 이를 신뢰된 요청이라고 착각한다.이 문제는 서버 내부 요청에 대한 필터링은 없고 서버 내부 요청은 신뢰할만하다고 생각해서 생겼다.관리자용 인터페이스와 사용자용 포트를 분리했지만 내부 포트에 접근이 가능해졌다.방어기법 우회(Bypassing ssrf defenses)127.0.0.1로 가는 걸 필터링해도 다른 .. 2025. 6. 2.
[웹보안] ClickJacking Attack ClickJacking AttackIframe웹페이지 안에 다른 사이트를 삽입하는 것이다.이런 식으로 위에 올라오는 사이트의 투명도도 조절 가능하다이런식으로 투명도를 0으로 하면 아예 안보여서 사용자가 의도하지 않은 버튼을 누르게할수도 있다.CounterMeasure(방지하는법)iframe으로 들어가는 것을 방지해야한다.이 코드는 만약 실제 페이지가 현재 나의 페이지와 다르다면 자신의 페이지를 새 창으로 열라는 뜻이다.이런식으로 방지할수도 있다.이러한 코드로 내가 iframe안이라는 것을 감지할 수 있다.또한 이러한 코드로 해당 페이지를 빠져나갈수도 있다.하지만 우회하는 방법이 있다.double Framing프레임 안에 프레임 씌움 → top location 볼 수 없다. → 우회 가능Abusing on.. 2025. 6. 2.
[웹보안] Enviroment Variables & Attacks Enviroment Variables & AttacksEnviroment Variables환경변수운영체제가 실행중인 프로세스의 환경을 정의하는 동적 변수의 집합예를들어 PATH 변수에서 쉘이 명확한 경로를 받지 못했을 때 여기서 찾는다.환경변수에 접근하는 법이렇게 메인문에서 접근도 가능하지만전역변수로 선언하는 것이 더 권장된다.프로세스가 환경변수 얻는 법프로세스는 두가지 방법으로 얻을 수 있다fork()위 명령어를 실행하면 새로운 자식프로세스가 생성된다.이 때 부모의 환경변수를 상속받는다.execve()이건 현재 실행중인 프로세스를 완전히 덮어쓰기 하는 것이다.이 때 기존 환경변수..는 다 날아가고 새롭게 들어온다.이 때 envp[]부분에 환경변수가 들어오게 된다./user/bin/env는 현재 환경변수.. 2025. 6. 2.