워게임/Reversing.kr

[Reversing.kr] Easy Unpack 풀이

name2965 2022. 6. 29. 21:15
728x90

 

주어진 문제파일을 열어보면 다음과같은 파일이 주어집니다.

 

 

 

readme.txt 파일을 열어보면

 

 

 

다음과 같이 프로그램의 OEP를 찾으라고 합니다.

이 문제의 정답은 OEP의 주소인것으로 보입니다.

 

 

우선 exeinfope로 열어보면

 

 

 

32비트 기반에 어떤 패킹이 되어있다는것을 알수 있습니다.

 

그리고 stud_pe를 통해서 열어보면

 

 

 

rva값이 A04B이고 imagebase는 400000이므로 40A04B가 EP인것을 알수 있습니다.

 

동적분석을 하기 위해서 x32dbg를 통해서 분석할것입니다.

 

 

 

x32dbg를 통해서 연뒤에 F9로 실행시켜주면 예상과 같이 40A04B에서 멈추는것을 볼수 있습니다.

 

이 부분이 패킹한 실행파일을 다시 디코딩하는 루틴인것으로 보입니다.

보통 이러한 디코딩루틴에서 OEP를 찾는 방법으로는

 

OEP로 점프하는 코드를 찾는것인데, 이러한 코드들 다음에는 보통 널바이트로 채워져있는 경우가 많습니다.

 

그러므로 이런 조건에 맞는 점프문을 찾아보면

 

 

 

 

다음과 같은 구문을 찾을수 있는데

이 부분에 breakpoint를 설정하고 F9로 실행한뒤 F7로 진입해보면

 

 

 

다음과 같이 OEP 인것으로 보이는 부분으로 진입한것을 확인할수 있습니다.

 

그러므로 이 프로그램의 OEP는 00401150 이란것을 알수있습니다.

 

 

일단 OEP를 찾긴 했지만 저는 추가적으로 메모리 덤프를 통해서 OEP를 복구해보겠습니다.

 

우선 EIP가 OEP를 가리키고 있을때 Scylla 라는 플러그인을 사용할것입니다.

 

 

 

 

EIP가 OEP를 가리키고 있으면 플러그인에서 자동으로 OEP를 잡아줍니다.

 

우선 IAT Autosearch 버튼을 클릭해줍니다

 

 

 

그러면 자동으로 IAT 정보가 업데이트됩니다.

 

 

 

그다음에는 Get Inports 버튼을 클릭해서 Imports 정보를 업데이트해줍니다

 

 

 

그다음에는 Dump 버튼을 누르면 덤프한 파일을 저장할수 있습니다.

 

 

 

그리고 Fix Dump 버튼을 눌러서 아까전에 저장한 ~~~_dump.exe 파일을 가져옵니다.

 

 

 

 

그러면 뒤에 _SCY 가 붙은 파일이 생성됩니다.

이 파일이 바로 최종 실행파일입니다.

이 프로그램을 x32dbg로 확인해보면

 

 

 

F9로 실행시켰을때 바로 OEP로가고 EntryPoint라고 나오는것을 확인해볼수 있습니다.

 

 

728x90

'워게임 > Reversing.kr' 카테고리의 다른 글

[Reversing.kr] ImagePrc 풀이  (0) 2022.07.02
[Reversing.kr] Replace 풀이  (0) 2022.06.30
[Reversing.kr] Music Player 풀이  (0) 2022.06.29
[Reversing.kr] Easy Keygen 풀이  (0) 2022.06.29
[Reversing.kr] Easy Crack 풀이  (0) 2022.06.29