상세 컨텐츠

본문 제목

[Write-up] CodeEngn Basic RCE 15

Reversing Write-Up/02.CodeEngn Basic

by RACC8N 2020. 1. 20. 11:55

본문

문제 : Name이 CodeEngn일때 Serial을 구하시오

 

풀이 : 

프로그램을 실행시킨 모습이다.

 

디버거를 켜보자.

 

패킹되지않아 바로 OEP를 찾을 수 있었다.

 

문자열 검색을 해보자.

 

실패했을 때 봤던 Try Again을 찾았다. 해당 위치로 가보자.

 

JNE 458854분기문을 통해 진입하는 것을 알 수 있다.

 

CMP eax, [0x45B844] 이므로 해당 주소의 값을 확인해보자.

 

이름이 CodeEngn일 경우 해당 주소의 값은 00006160임을 알 수 있다. 따라서 Key값은

 

24928임을 알 수 있다.

 

 

자 그럼 어떻게 Key가 생성되는지 알아보자.

 

해당 부분이 Key값을 만드는 로직이다. 다음과 같은 연산을 한다.

 

1) 45B844 = 45B844 + (C * 2^3)   ( C o d e E n g n ) 8번 반복.

 

2) 45B844 = (1) + (8(CodeEngn개수)  * 2^3) 

 

3) 45B844 = (2) * 2^2

 

 

관련글 더보기

댓글 영역