SMALL
먼저 ReadMe를 읽어 보았다.
파일을 실행하면 이런식으로 아무화면이 뜨지않는다.
ReadMe에서 보시다 시피 OEP를 조사하던 와중 이 문제에서 필요한 지식을 검색해보았다.
EP(Entry Point)
- 실행파일의 코드 시작점
- 프로그램이 실행될 때 CPU에 가장 먼저 실행되는 코드 시작 위치
- 헤더를 가리킴
OEP(Original Entry Point)
- 패킹된 파일의 실제 프로그램 시작 부분
- JMP
패킹(Packing)
- 실행 파일을 암호화하거나, 압축하여 소스코드를 볼수 없도록 하는 것
- 분석하기에 어려움이 존재함(언패킹이 필요하기 때문에)
정적분석을 위해 이뮤니티디버거를 사용해주었다.
응 파일을 켰는데 오류가 난다. (아마 패킹이 되어서 제대로 안되나 보다)
걱정을 한움큼 가지고 무시한후 분석을 하였다.
라이브러리 들이 지나가면서 반복문들이 지나간다.
삽질을 계속 하던중 이상한 부분을 발견했다.
이쪽 반복문인데 ECX에 406000, EDX 409000 을 넣어놓고 하나하나씩 증가하면서 비교하는 반복문이다.
쭉쭉 돌려보니 Dump Windows 창의 헥스값이 변한다! 추측하는데 언패킹하는가보다 라고 생각을 했다.
쭉쭉쭉 진행해보았다. 어느정도 지나고 보니 약간쓰레기값(?) 같은 부분을 00으로 채우는게 보였다. 그래서 그냥 넘어가도록 한다. 근데 여기서 또 의문인게 409000 까지 돈다고 하는데
여기까지 주소까지만 보여진다. 그래서 [Ctrl+G]를 통해 확인해보았다.
오 먼가 보인다.
내려보니 언패킹을 한 흑적인가 추측을 해보았다. 그러고 나서 너무 길어서 다음 명령어로 break point를 걸어서 넘어가니
이쪽으로 JMP를 하였다. 먼가 수상한데 일단 넘어갔다.
다시 돌아가서 디버깅을 해보니 409000부터 4094EE 까지 반복문을 도는것을 볼 수 있는데
반복하는 동안 이상한 값들이 볼수있는 문자로 바뀐다!
자세히 보니 많다.
아까봤던 JMP문
의미없는 값이라고 했던 것들이 재분석을 통해 보니 코드가 나오는 것을 확인해 볼 수 있다!
쭉쭉 내려보다 보니
프로그램이 실행되는 것을 보아 여기가 진또배기이구나 생각이 들었다.
그러면 OEP는 00401150 ! 이라고 생각이 들었다.
(감각으로 풀었는데 더 자세히 공부해야겠다.)
'Reversing > Reversing.kr' 카테고리의 다른 글
[Reversing.kr]ImagePrc (0) | 2019.07.26 |
---|---|
[Reversing.kr]Ransomware (0) | 2019.07.25 |
[Reversing.kr]Easy_KeygenMe (0) | 2019.07.25 |
[Reversing.kr]Position (미완성) (0) | 2019.07.24 |
[Reversing.kr]Easy_CrackMe (0) | 2019.07.24 |