본문 바로가기

PE 구조 정리-2 저번 PE 구조 분석에 이어서 이번에는 Section header와 Section에 대해서 분석을 해보겠습니다.1) Section header이부분이 바로 Section header부분입니다. Section header 구조체가 하는 일은 각 Section을 분리시키고, Section들의 속성, 크기, 시작 위치 등 등을 정하는 곳입니다. #define IMAGE_SIZEOF_SHORT_NAME 8 typedef struct _IMAGE_SECTION_HEADER { BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; union { DWORD PhysicalAddress; DWORD VirtualSize; } Misc; DWORD VirtualAddress; DWORD SizeOfRawDat.. 더보기
디스어셈블러 원리 파악 리버싱 관련 블로그들을 찾아봐도 디버거를 만드는 방법을 알려주는 분들이 없어서 어떻게 만들까 고민을 하고 있었는데 이번에 PE구조 관련 글을 쓰기 위해 여러 프로그램을 분석, PE구조를 찾아보니까 PE구조의 Section에서 code부분의 기계어와 올리디버거로 돌렸을때의 기계어코드가 일치한다는 것을 찾았습니다.현재 API를 열심히 공부하고 있으니 이 프로젝트는 아마 내년 여름방학쯤에 디버거를 만드는것으로 목표를 잡고 있습니다. 더보기
PE 구조 정리-1 PE(Portable Executable)파일은 말 그대로 옮겨다니면서 실행시킬수 있는 파일을 말합니다.Microsoft가 다른 운영체제와 이식성을 좋게 하기 위해서 만든 파일 포멧입니다.그러면 Microsoft가 이런 PE파일을 만들기 위해 제작한 PE 파일 구조에 대해서 공부를 해보겠습니다. 1. PE 파일공식적으로 PE파일의 종류는 실행 계열 : EXE, SCR 드라이버 계열 : SYS, VXD 라이브러리 계열 : DLL, OCX, CPL, DRV 오브젝트 파일 계열 : OBJ이렇게 OBJ를 제외한 나머지는 모두 실행 가능한 파일로 이루어져 있습니다.2. 배우는 이유PE파일 구조를 배우면 파일이 실행되기 위한 모든 정보를 얻을 수 있습니다.예를 들어 어느 메모리의 주소에 로딩이 되는지, 프로그램이 .. 더보기