본문 바로가기

Secure Note

PE 분석 프로그램

해킹, 파괴의 광학에 나오는 소스코드이다.

윈7이라 제대로 안돌아가는건지,,  뭔가 설정이 잘못되있는건지 확인하는일은 귀찮고
그냥 코드 보고, PE파일이 어떤식으로 구성되있는지 확인하는 정도로만 보려고 한다.

소스코드는 아래에..


일단 가장 첫번째로 매핑된 파일의 베이스 포인터를 얻어오는것이다.

HANDLE hFile;

HANDLE hFileMap;

LPVOID lpBasePointer;

DWORD dwSize;

*hFile = CreateFile( (LPCWSTR)lpFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING,                    
                                FILE_ATTRIBUTE_NORMAL, NULL);


*hFileMap = CreateFileMapping( *hFile, NULL, PAGE_READONLY, 0, 0, NULL);

dwSize = GetFileSize(*hFile, 0);

*lpBasePointer = (char*)MapViewOfFile( *hFileMap, FILE_MAP_READ, 0, 0, dwSize);

 
요롷게 해주면 lpBasePointer 를 이용해서 마음에 드는데로 요리해 먹을 수 있다.

그리고 PE파일의 구조에 따라 형변환 시켜가면서 각 내용들을 보면 된다.

딱히 복잡한 코드는 아니지만, PE형식에 구조체 및 공용체들이 너무 많아서(이름도 엄청 길고 ㄷㄷ) 이 분야에 뼈를묻을자가 아니라면 파일형식을 알아가는 용도로만 공부해도 될것같다.

PE format은 리버싱분야에서 많이 다루게 되는데,,  리버싱에 관심 많으신 분들은 dakuo.tistory.com 으로 가셔서 관련 글들을 접해보는것도 좋을것같다.


ps. 아 위 코드가, 윈7에서 왜 안되는지 아시는분은,,,, 좀 알려주세요(밑에 main쪽은 제가 막 바꾼거라 거기는 신경쓰지 마시구,,)
      윈7이 dll관련된 내용에서 xp와 차이가 꽤 있다던데 어떤차이가 있는질 모르겠네요 

'Secure Note' 카테고리의 다른 글

암호학 기본(개론... 이랄까)  (0) 2011.10.26
우회  (0) 2011.10.02
ADLER32  (0) 2011.07.30
Crypto는 아니지만,,, 소수찾기  (1) 2011.06.08
해킹 관련 용어  (1) 2011.03.29