무민이의 반반무많이

PE 파일 Patch(패치) 본문

Reversing/Basic

PE 파일 Patch(패치)

M00min 2016.10.27 15:39

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


단순히 Hello world!를 출력하는 PE 파일에 계산기를 실행하는 Shell 코드를 추가하여, Hello World!를 출력하기 전에 계산기가 실행되도록 Patch(패치)하는 방법에 대해 알아보도록 하자.

Tiny PE를 통해 용량을 줄여놓은 파일( helloworld.exe)과 아래의 계산기를 실행하는 Shell 코드를 사용할 것이다.



1. 실행과 동시에 계산기를 실행하는 Shell 코드가 있는 부분으로 Jump 시키기 위해, txt Section의 값들을 뒤로 2바이트 밀고, nop를 의미하는 90으로 채워놓는다.


2. txt Section의 맨 뒷부분에 계산기를 실행하는 Shell 코드를 붙여넣는다.


3. 계산기를 실행하고, Hello World!를 출력하는 부분으로 Jump 시키기 위해, txt Section 맨 뒤에 5바이트를 추가하고 nop를 의미하는 90으로 채워놓는다.


4. 1번에서 90으로 채워놓은 맨 앞의 2바이트에 계산기를 실행하는 Shell 코드가 있는 부분으로 Jump 시키는 코드를 넣는다.


5. 3번에서 90으로 채워놓은 맨 뒤의 5바이트에 Hello World!를 출력하는 부분으로 Jump 시키는 코드를 넣는다.


6. 파일의 크기는 기존의 548 바이트에서, 124 바이트 만큼 증가한(Jump 코드 2 바이트, 5 바이트, 계산기를 실행하는 Shell 코드 117 바이트) 672 바이트이고, 계산기와 출력문이 정상적으로 실행되는 것을 확인할 수 있다.


최종 실행 파일 :  helloworld.exe

'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) ②  (1) 2016.10.04
PE 파일 줄이기(Tiny PE) ①  (0) 2016.10.03
0 Comments
댓글쓰기 폼