무민이의 반반무많이

PE 파일 줄이기(Tiny PE) ④ 본문

Reversing/Basic

PE 파일 줄이기(Tiny PE) ④

M00min 2016.10.13 22:04

(공감과 댓글 하나는 글쓴이에게 큰 힘이 됩니다.)


■ txt Section 끝 부분의 남는 영역 삭제

1. txt Section을 확인하면, 200부터 3FF까지의 영역에 값이 채워져 있는 것을 확인할 수 있다. 65 6D 00 00 이후에 오는 값들은 txt Section의 남는 영역을 채워주기 위한 불필요한 값이다.


2. 65 6D 00 00 이후의 값들을 모두 삭제한다. 200부터 2C7까지 총 C8h 크기만 남게 되었다.


3. txt Section Header에서 txt 영역의 크기를 나타내는 부분의 주소를 확인한다. 188 위치에 txt 영역의 크기가 존재함을 알 수 있다.


4. 해당 위치로 이동하여, 불필요한 부분을 제거한 이후 크기인 C8h로 바꿔준다.


5. 변경 결과 helloworld.exe 파일의 크기는 712 바이트이고, 정상적으로 실행되는 것을 알 수 있다.


■ IDT(Import Directory Table), IAT(Import Address Table) 위치와 크기 지정하기

1. txt Section 안에있는 IDT의 크기를 확인한다. 224h부터 24Bh까지 28h의 크기인 것을 확인할 수 있다.


2. IMAGE_OPTIONAL_HEADER에서 IMPORT Table의 크기가 존재하는 위치를 확인한다.


3. 2번에서 확인한 104h 위치로 이동해서 IDT의 크기인 28h로 값을 변경한다.


4. txt Section 안에있는 IAT의 크기를 확인한다. 284h부터 28Ah, 2A8h부터 2B3h까지 총 10h의 크기인 것을 확인할 수 있다.


5. txt Secetion 안에 있는 IAT의 시작 RVA값을 확인한다. 1084h에서 시작되는 것을 확인할 수 있다.


6. IMAGE_OPTIONAL_HEADER에서 IAT의 시작 RVA 위치와 크기가 존재하는 위치를 확인한다. 


7. 6번에서 확인한 157h와 15Ch로 이동해서 IAT의 RVA 값인 1084h, 크기인 10h로 값을 변경한다. 


8. 저장 후 결과를 확인하면, 정상적으로 실행되는 것을 알 수 있다.

'Reversing > Basic' 카테고리의 다른 글

PE 파일 Patch(패치)  (0) 2016.10.27
PE 파일 줄이기(Tiny PE) ⑤  (0) 2016.10.16
PE 파일 줄이기(Tiny PE) ④  (0) 2016.10.13
PE 파일 줄이기(Tiny PE) ③  (0) 2016.10.12
PE 파일 줄이기(Tiny PE) ②  (0) 2016.10.04
PE 파일 줄이기(Tiny PE) ①  (0) 2016.10.03
0 Comments
댓글쓰기 폼