sign : 1 - neg(-), 0 - pos(+) just 1 bit부호비트 제외한 모든 비트는 크기를 표시음수표현 : 2의 보수법 채택 (~x + 1)범위 : -2 ^ (x-1) ~ 2 ^ (x-1) - 1char, int, long 등 사이즈 할당 가능 해당 b

C declaration / intel data type / suffix / Size1\. char / Byte / b / 12\. short / Word / w / 23\. int / Double word / l / 44\. long / Quod word / q /

bus 가져오는 시간만 고려하더라도 register 안에 있는 값들 끼리의 연산이 빠르다SSD(Solid State Disks)안에 flassh memory가 있고 블록들이 있으며 블록은 저마다 여러 Page 가짐각 블록은 덮어쓰기가 안됨 : 데이터가 있는 경우 지운

여러개의 코드와 데이터를 통합, 연결 하여 실행될 수 있는 하나의 파일로 만드는 작업사용 이유Modularity(모듈화) \- 하나의 거대한 파일이 아니라 여러개의 작은 source 파일이 모여 하나의 걷한 파일을 이룰 수 있으며, 라이브러리를 만들 때도 유용하게

컴파일러는 최적화를 해줌곱하기 보다 덧셈이 빠르다불필요한 연산 컴파일러가 줄여줌빨간색 부분 매번 계산하기 때문에 효율 낮음컴파일러는 오른쪽 그림처럼 되게끔 최적화 작업 수행최적화 단계 0~3 까지 있는데 단계가 높다고 다 빠르지 않음 전부 수행해보며 빠른 것으로 채택o

Jump, branch, call, ret => program state0으로 나누는 명령어, 키보드 명령어 ... 등은 system state 변화시킴예외적인 control flow 필요low levelExceptions : H/W, OS S/W의 조합등을 이용해서
1. 용어 정리 > 1. 셸코드 : 익스플로잇 위해 제작된 어셈블리 코드 조각 rip를 자신이 작성한 셸코드로 옮기는 것이 중요 exploit : 시스템 공격하는 행위 orw shell code : 파일 열고, 읽은 뒤 화면에 출력하는 셸코드 1-1 orw shel
해당 메서드를 차례대로 실행시 3번째 줄에서 막힐수도 있을 것이다. 그럴때 해당 명령어 사용 $ python3 -m pip config set global.break-system-packages true공식 : https://docs.pwntools.com/e
전자 : 스택 영역이 너무 많이 확장되어 발생하는 버그후자 : 스택에 위치한 버퍼의 크기보다 많은 데이터가 입력되어 발생하는 버그버퍼 : 데이터가 목적지로 이동되기 전에 보관되는 임시 저장소scanf("%s", buf)%s 는 문자열을 입력 받을때 사용입력의 길이 제한

스택 버퍼 오버플로우로 부터 반환 주소를 보호하는 기법\-fno-stack-protector 옵션 추가gcc -o file_name file_name.c -fno-stack-protectorTLS(Thread Local Storage)를 참조하는 세그먼트 레지스터리눅스
1. NX, ASLR 1-1 NX 실행에 사용되는 메모리 영역과 쓰기에 사용되는 메모리 영역 분리하는 보호 기법 > 코드 영역 쓰기 권한 있을 경우 공격자가 수정시 원하는 코드 실행 가능 스택, 데이터 영역 실행 권한 : Return to shellcode 같은 공

1. PIC Position-Independent Code 메모리의 어느 주소에 적재되어도 코드의 의미가 훼손되지 않음을 의미 > ELF는 실행파일, 공유 오브젝트 2가지가 존재한다. 공유 오브젝트 : libc.so 와 같은 라이브러리 기본적으로 재배치가 가능

%parameterwidthlength형식 지정자d : 부호 있는 10진수 정수u : 부호 없는 10진수 정수s : 문자열x : 부호 없는 16진수 정수n : 해당하는 위치의 인자에 현재까지 사용된 문자열의 길이 저장, 값 출력 xp : void형 포인터사용자가 직접

어떤 메모리 해제되면 해제된 메모리의 특징을 기억하고 있다가 메모리의 할당 요청이 발생하면 이를 빠르게 반환해줌메모리의 할당속도 높이고, 불필요한 메모리 사용을 막을 수 있다.메모리의 효율적인 관리메모리 낭비 방지빠른 메모리 재사용메모리 단편화 방지동적 할당, 해제는

같은 청크를 두번 해제할 수 있는 버그Free list 관점에서 Free는 청크 추가하는 함수, malloc은 청크를 꺼내는 함수임의의 청크에 대해 Free를 두번 이상 적용할 수 있다 : 같은 청크를 free list에 여러번 추가 가능하다는 뜻duplicated c