'PE File Format'에 해당되는 글 2건

  1. 2004.04.22 PE File Format
  2. 2004.04.19 PE File의 구조

PE File Format

게임 개발 2004. 4. 22. 14:53
- PE File Format 때문에 잠이 오질 않는다. ㅡㅡㅋ 이유는.... 바이러스를 스캔하는데 필요한 스캔 기준과는 다른 해킹툴만의 다른 스캔기준이 필요한대, 바이러스는 특정 부분의 데이터 섹터를 조작해서 바꾸지만 해킹툴은 일반적인 App 프로그램이기 때문에 다른 스캔 기준이 필요한 것이다. 19일에 PE File 의 구조 부분을 정리했지만, 이젠 실제 데이터의 RVA(Relative Virtual Address) 의 정확한 위치의 주소값과 데이터 사이즈 부분에 대한 자세한 정보도 체크했다.

Section Header 의 정보를 통해서 실제 데이터가 들어있는 Section Body의 데이터 중에서 특정 데이터 부분을 스캔 기준으로 정해야 할 꺼 같은데... 음... 같은 파일을 재컴파일해도 항상 변하지 않는 데이터 부분을 스캔 기준으로 삼으려다보니 전부 일정한 패턴이 나오질 않아서 문제가 된다.

그래도, 그 중에서 제일 가깝게 접근할 수 있는 스캔 기준점은 .data 부분의 특정 Section Data 부분을 스캔 기준으로 삼는거라는 것은 변함이 없다. but.....
Posted by 노을삼킨별
,

PE File의 구조

게임 개발 2004. 4. 19. 14:50
 PE File Format 의 구조에 대한 부분과 Structure 에 대한 분석이 마무리 되었다. 문제는 실제 해킹 툴을 발견할 수 있게 하는 무엇(?)인가를 찾아야 한다. PE 파일을 누가 설계하고 만들었는지 모르지만... 구조가 조금 애매한 부분도 있다.  *^^*.   MZ HeaderPE Header 사이에 쓸데없는 빈 공간이 있다니... 정말 처음 접하는 사람은 해메일 수 밖에 없게끔 장난쳐둔(?) 느낌이랄까...


 
<PE File 의 구조>
는 크게 아래의 4개로 이루어진다.(WINNT.H 에 정의되어 있다.)

1. MZ Header(_IMAGE_DOS_HEADER) : 64 byte
    Old MS-DOS Header

  바로 이 부분에 MS-DOS stub
  < This program cannot be run in DOS mode >
  < This program must be run under Win32 > - 이걸 사용한 프로그램도 있다.

2. PE Header : 248 byte
  1) Signature "PE" : 4 byte
  2) _IMAGE_FILE_HEADER : 20 byte
  3) _IMAGE_OPTIONAL_HEADER : total 224 byte
    --> _IMAGE_DATA_DIRECTORY : 128 byte

3. Section Header(_IMAGE_SECTION_HEADER) : 40 byte * Section 갯수
  .text   .rdata   .data   .idata   .rsrc   .reloc .....
  각각에 SizeOfRawData 인자의 크기만큼 SECTION Table Data가 존재한다.

4. Section Body : _IMAGE_SECTION_HEADER의 SizeOfRawData 크기에 따라 달라짐


일반 Exe 파일들의 구조를 살펴보고, 해킹툴의 파일구조를 살펴본후 해킹툴만의 다른점을 찾아야 할 듯하다. 만약 다른점이 없다면.... ㅡㅡㅋ.

드디어 어제 금강기공사 홈페이지 대문을 만들었다. 아직 수정해야 할 께 산더미지만... 차근차근 해 나가는 맛이 있다.

오늘역시 3D 공부하고 일본어 공부를 소홀히 하고 있다. 분발하자.

Posted by 노을삼킨별
,