목록Security (73)
tmxklab
1. 윈도우 실행파일(PE파일) 개요 1.1 PE파일이란? PE(Portable Executable)파일은 윈도우 실행파일이라고 부르며 윈도우OS에서 사용되는 실행파일형식을 의미하며 UNIX의 COFF(Common Object File Format)을 기반으로 만들어졌다. windows 환경에 따라 다르게 부르는데 32bit환경에서는 PE32, 64bit환경에서는 PE+또는 PE32+라고 불린다. Linux나 Unix와 같은 계열의 환경에서는 PE파일과 비슷한 형식으로 ELF(Executable and Linkable Format)파일이 존재한다. PE파일을 통해서 프로그램이 사용하는 API 또는 DLL 등 다양한 정보와 어느 메모리 주소에 로딩되는지 확인할 수 있다. 1.2 PE파일 종류 1) 실행 계..
1. RTL(Return To Libc) 사용자가 작성한 코드에 없는 함수를 호출하고자 메모리에 이미 적재된 공유 라이브러리의 원하는 함수를 사용할 수 있는 기법이다. 또한, 리눅스의 메모리 보호 기법 중 NX bit나 DEP를 우회하여 공격이 가능하다. 1) DEP(Data Execution Prevention) - 데이터 영역에서 코드가 실행되는 것을 막는 기법 - 공격자가 Heap 또는 Stack영역에 쉘 코드를 저장해서 실행하기 위해서 해당 영역에 실행권한이 있어야 한다. 따라서, DEP가 적용된 경우 실행권한이 없어 쉘 코드가 실행되지 않고 프로그램에 대한 예외처리 후 종료 2) NX bit(Never eXecute Bit) - 메모리에서 데이터 영역을 실행하는 것을 방지해주는 CPU기능 - N..
1. 어셈블리어란? 기계어와 일대일 대응되는 컴퓨터 프로그래밍 저급언어 기계어는 CPU가 직접 해독하고 실행할 수 있는 비트 단위로 쓰여 사람이 이해하기에는 어렵기에 어셈블리어를 통해 기계어를 사람이 쉽게 이해할 수 있도록 표현을 바꿔놓은 것 이다. ex) 기계어 어셈블리어 55 PUSH EBP 8B EC MOV EBP, ESP 2. 어셈블리어 문법 1) Windows(Intel 문법) - 오퍼렌드 위치 : mov dest, src - 메모리 오퍼랜드 : mov eax, [ebx] 2) Linux(AT&T 문법) - 오퍼랜드 위치 : mov src, dest - 메모리 오퍼랜드 : mov (%ebx), %eax 3. 어셈블리어 명령어 종류 1) 데이터 타입 * 부호 없는 정수 BYTE 1byte WORD..