반응형

Easy_UnpackMe.exe
0.05MB
ReadMe.txt
0.00MB

 


파악

 

ReversingKr UnpackMe


Find the OEP

ex) 00401000

 

문제 파일과 같이 들어있는 ReadMe 파일을 열어보면 위와 같이 적혀있다.

 

OEP는 쉽게 말해 Original Entry Point라는 것이다.

 

패킹과 언패킹에 대해서는 아래의 글을 참고하면 도움이 될 것이다.

 

 

프로그램을 실행하면 위와 같은 화면이 뜬다.

 


분석

 

 

 

위는 exeinfo와 Detect It Easy 프로그램에 문제 파일을 올려본 결과이다.

 

패킹할 때 쓴 패커의 정보가 안나오는 것으로 보아 UPX 같은 패커는 아닌 듯 하다.

 

 

위는 패킹된 상태의 EP 부분이다.

 

패킹된 파일은 언패킹 하는 과정에서 수많은 루프를 거치게 된다.

 

 

위의 사진과 같이 스크롤을 조금 내려보면 많은 je 명령이 있다.

 

패킹된 파일을 언패킹 하는 방법에는 여러가지가 있지만, 이 문제에는 루프들 다음 주소에 BP를 걸고 F9 키를 눌러 OEP로 점프하는 부분을 찾을 것이다.

 

 

F8 키를 계속 누르다 보면 위와 같이 40A099 ~ 40A0C1 루프를 만나게 된다.

 

40A0C3 주소에 F2 키로 BP를 걸고 F9 키를 눌러 첫 번째 루프를 건너뛴다.

 

 

F8 키를 누르다 보면 위와 같이 40A0FA ~ 40A109 루프를 만나게 되는데, 40A10B 주소에 BP를 걸고 두 번째 루프도 건너뛴다.

 

 

이어서 F8 키로 실행하다가 보면 40A136 ~ 40A13C 루프를 만나게 된다.

 

40A13E 주소에 BP를 걸고 세 번째 루프도 건너뛴다.

 

 

40A154 ~ 40A15A 루프를 만나게 되는데, 40A15C 주소에 BP를 걸고 네 번째 루프도 건너뛴다.

 

 

바로 이어서 40A11D ~ 40A163 루프를 만난다.

 

다섯 번째 루프는 엄청 큰 루프이다.

 

이전과 똑같이 40A165 주소에 BP를 걸고 F9 키를 눌러 다섯 번째 루프도 건너뛴다.

(이전의 루프들과는 달리 F9 키를 EIP가 40A165 주소에 도착할 때까지 계속 눌러야한다.)

 

 

다섯 번째 루프를 건너뛴 후 F8 키로 진행하다보면 40A186 ~ 40A1AE 루프를 만난다.

 

이 역시 40A1B0 주소에 BP를 걸고 F9 키를 이용해 여섯 번째 루프를 건너뛴다.

 

 

F8 키를 이용해 진행하다보면 위와 같이 40A1D1 ~ 40A1F9 루프를 만나게 되고, 이 역시 이전과 동일하게 40A1FB 주소에 BP를 걸고 F9 키를 눌러 실행한다.

 

 

F8 키로 40A1FB에 있는 401150 주소로 점프하는 명령을 실행하면 위와 같이 함수 스택 프레임을 구성하는 함수 프롤로그가 보인다.

 

총 7개의 루프를 실행하고 나서 OEP 주소로 점프한 것이다.

 


인증

 

반응형

'전쟁 > reversing.kr' 카테고리의 다른 글

[reversing.kr] Replace  (0) 2023.12.17
[reversing.kr] Music Player  (0) 2023.06.23
[reversing.kr] Easy_KeygenMe  (0) 2023.06.22
[reversing.kr] Easy Crack  (0) 2023.06.21

+ Recent posts