무민이의 반반무많이

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

Reversing/Basic

PE 파일 줄이기(Tiny PE) ①

M00min 2016.10.03 23:11

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


PE 파일의 불필요한 부분을 삭제하고, 구조를 변경하는 등의 방법을 이용하여 크기를 줄일 수 있다. 크기를 줄임으로써 네트워크를 통해 배포하는 시간을 단축할 수 있다는 장점 때문에 악성 코드 등에서 많이 사용된다.

간단하게 Hello World! 를 출력하는 파일을 이용하여, Tiny PE를 해보도록 하겠다.

helloworld.exe


PE 파일 줄이기(Tiny PE) ① : http://moomini.tistory.com/98

PE 파일 줄이기(Tiny PE) ② : http://moomini.tistory.com/99

PE 파일 줄이기(Tiny PE) ③ : http://moomini.tistory.com/100

PE 파일 줄이기(Tiny PE) ④ : http://moomini.tistory.com/101

PE 파일 줄이기(Tiny PE) ⑤ : http://moomini.tistory.com/102


■ 파일 전체 구조


■ 마지막 Section 끝 부분의 남는 영역 삭제

1. helloworld.exe의 최초 크기는 2,048 바이트 이고, 실행하면 Hello World!를 출력한다.


2. 가장 마지막에 있는 data Section을 보면, 600부터 시작하고, 하단에 남는 공간을 00 으로 채우고 있음을 확인할 수 있다.


3. 하단에 00으로 채워진 불필요한 부분을 삭제하면, data 영역은 15h 크기만큼만 남게 된다.


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


5. 해당 위치로 이동하여, 불필요한 부분을 제거한 이후 크기인 15h로 바꿔준다. (Little Endian 표기법 주의!)


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

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

PE 파일 줄이기(Tiny PE) ③  (0) 2016.10.12
PE 파일 줄이기(Tiny PE) ②  (0) 2016.10.04
PE 파일 줄이기(Tiny PE) ①  (0) 2016.10.03
PE 파일의 구조와 이해 ④  (0) 2016.09.23
PE 파일의 구조와 이해 ③  (0) 2016.09.22
PE 파일의 구조와 이해 ②  (0) 2016.09.21
0 Comments
댓글쓰기 폼