Without a Break

[CodeEngn] Basic RCE L10 본문

Reversing/Wargame

[CodeEngn] Basic RCE L10

와븨 2023. 5. 7. 19:23

OPCODE : 명령어에서 실제로 어떤 동작을 하는지 나타내는 부분

 

실행 파일을 peid로 확인해보니 ASPack 형태로 패킹되어 있는 것을 확인할 수 있었다.

ASPack은 PUSHAD > 복호화 코드 실행 > POPAD > Return 0C > OEP 값 PUSH > Return으로 OEP 주소로 이동하는 특징이 있다.

 

실행 파일을 열면 L09 문제에서와 같이 PUSHAD 명령어가 있는 것을 확인할 수 있었다.

 

오른쪽 마우스 > search for > all commands 에서  POPAD를 검색했더니 결과가 너무 많았다.

 

이번엔 RETN 0C를 검색했다.

 

RETN 0C 다음에 BP를 걸어주고 RETN 0C를 실행해주면 RETN 0C 다음에 OEP가 나타난다.

OEP = 00445834

 

 

OEP로 이동해서 text strings를 살펴보니 "Registered.. well done!"을 찾을 수 있었다.

코드 위에 있는 JNZ의 실행 여부에 따라 결과값이 분기되는 것을 확인할 수 있었으므로, JNZ의 값이 OPCODE이다.

 

따라서 답은 004458347555

 

'Reversing > Wargame' 카테고리의 다른 글

[CodeEngn] Basic RCE L12  (0) 2023.05.09
[CodeEngn] Basic RCE L11  (0) 2023.05.09
[CodeEngn] Basic RCE L09  (0) 2023.05.07
[CodeEngn] Basic RCE L08  (0) 2023.05.07
[CodeEngn] Basic RCE 07  (0) 2023.03.30