상세 컨텐츠

본문 제목

[Write-up] CodeEngn Basic RCE 10

Reversing Write-Up/02.CodeEngn Basic

by RACC8N 2020. 1. 19. 18:08

본문

문제 : OEP를 구한 후 '등록성공' 으로 가는 분기점의 OPCODE를 구하시오

 

풀이 : 

프로그램 실행 모습이다.

 

디버거를 켜서 확인해 보자.

 

PUSHAD를 확인할 수 있다. POPAD를 찾아보자.

 

UPX 패커인경우 POPAD 아래에 보통 JMP OEP 명령어가있는데 조금 다른 모습을 볼 수있다.

 

PEID로 파일을 확인해 보자.

 

ASPack으로 패킹되어있는것을 알 수 있다. 

 

ASPack도 UPX와 비슷하다.  

 

참고)

자 그럼 POPAD 바로 밑에서부터 StepOver로 계속 넘어가보자.

 

ASPack은 POPAD뒤의 push, ret 문으로 인해 OEP로 이동하게 되므로 쉽게 OEP를 찾을수 있다.

 

그럼 성공했다는 분기문의 OPCODE를 찾아보자. 먼저 문자열 검색을 해보자.

 

Register well done이라는 문자열을 찾았다.

 

해당 문자열은 등록이 성공했을 때 볼 수있는 문자열임을 예상할 수 있다.

 

해당 위치로 들어가는 방법은 분기문 JNE 44552B를 통과해야 한다.

 

따라서 등록 성공으로 갈수있는 분기문의 OPCODE는 7555이다.

 

'Reversing Write-Up > 02.CodeEngn Basic' 카테고리의 다른 글

[Write-up] CodeEngn Basic RCE 12  (0) 2020.01.19
[Write-up] CodeEngn Basic RCE 11  (0) 2020.01.19
[Write-up] CodeEngn Basic RCE 9  (0) 2020.01.17
[Write-up] CodeEngn Basic RCE 8  (0) 2020.01.17
[Write-up] CodeEngn Basic RCE 7  (0) 2020.01.17

관련글 더보기

댓글 영역