티스토리 뷰

Challenges : Basic 10


Author : ArturDents


Korean :
OEP를 구한 후 "등록성공"으로 가는 분기점의 OPCODE를 구하시오. 정답인증은 OEP + OPCODE
EX) 00400000EB03

English :
After finding the OEP, find the OPCODE of the branch instruction going to the "goodboy routine"
The solution should be in this format : OEP + Serial
EX) 00400000EB03 

1)

가장 먼저 할것은 PEid툴을 이용하여 패킹여부를 확인 ->  AsPack을 사용하여 패킹된것을 확인할 수 있음


2) 이제,  pushad 부분을  dump 를 뜬후  PElord 를 사용하여  언패킹을 한다.


3) 언패킹을 뜬후

올리디버거로 다시 들어가서, popad 부분을 찾으면  JNZ,  RETN OC   부분이 있다. 이부분이 실제 프로그램으로 가는  OEP 가 있는 부분이다. 이제  F8 로 진행하다보면,  OEP 부분으로 진입하게 된다. 여기서  OEP 코드를 구할 수 있는데,  OEP= 00445834


4)  Ctrl+A 로 코드를 재분석하여 코드를 정렬시킨다.

이제, 문자열  search 를 통하여 분기점의 OPCODE 를 구한다.

여기서,  ASCII  "resgister well done" 부분을 찾을 수 있다. 조금 위로 가다보면, JNZ 라는 분기

문을 확인 할 수 있다. 

5)  

JNZ 부분에서 분기문이기때문에,  OPCODE = 7555이 된다.



생각보다 구조가 복잡해보여서, 실제 프로그램의 OEP  부분과 아닌부분을 잘 구별하는 능력이 필요해보인다.



공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함