W4RG4M3/R3V3RS1NG
[CodeEngn] Basic RCE L10 문제 풀이
HackChang
2019. 11. 20. 00:07
OEP를 구한 후 '등록성공' 으로 가는 분기점의 OPCODE를 구하시오.
정답인증은 OEP + OPCODE
EX) 00400000EB03
프로그램을 실행하면 이와같이 나온다.
OEP를 구한다는 것은 패킹을 한다는 것으로 생각하면 될 것 같다.
PEID를 통해 열어보았다.
ASPack으로 패킹이 된 것을 볼 수 있다.
ASPack의 경우 OEP를 알아내는 방법은 다음과 같다.
검색을 통해 POPAD를 검색하여
POPAD가 있는 부분을 찾아 BP를 걸고, F9를 누르게 되면
00445834라는 OEP를 찾을 수 있게 된다. RETN부분에 BP를 한번더 걸고 F9로 실행 후 F8을 눌러 OEP(00445834)에 도달한다.
이게 정말 OEP인가 하겠지만 Ctrl+A 를 통해 코드를 다시 읽고, 스트링을 검색해본다.
성공메세지가 출력되는 곳을 들어가본다.
해당 점프문이 등록성공으로 가는 분기점이므로 OPCODE를 구할 수 있다.
OEP+OPCODE를 통해 정답을 인증한다.