Reversing/Wargame

[CodeEngn] Basic RCE L15

와븨 2023. 5. 17. 00:40

 

실행 파일을 디버거로 열어 프로그램을 실행해보면 위와 같이 Name과 Serial을 입력할 수 있는 창이 뜬다.

 

text string을 확인해보니 CRACKED라는 문자열이 성공 문자열 같아 해당 위치로 이동해봤다.

 

"CRACKED" 위쪽을 살펴보니 EAX의 값과 45B844 주소의 값을 비교하는 코드가 있었다.

45B844 주소의 Hex Dump 값이 serial임을 추측할 수 있다.

 

따라서 비교 코드가 있는 곳의 분기점에 BP를 걸어주고 Ctrl+F2로 초기화 후 프로그램을 다시 시작했다.

 

프로그램을 다시 실행 후,

CodeEngn일 때 Serial을 구해야하므로, CodeEngn을 Name으로 입력해주고 serial을 임의로 입력해준다.

입력하면 BP를 건 부분으로 이동하게 되는데 여기서 코드를 한 줄씩 진행하면서 EAX 값의 변화를 확인한다.

 

 

BP를 건 부분부터 계속 F8로 진행하다보면 위와 같은 주소로 이동된다.

주소를 확인하니 아까 CMP에서 EAX와 비교했던 45B844 주소이다.

=> 여기에 serial 값이 있는 것 같음

 

해당 주소의 Hex dump를 확인해보니 해당 주소의 값이 00 00 61 00 임을 확인할 수 있었다. (주소는 오른쪽에서 왼쪽으로)

 

16진수를 10진수로 변환해준 값이 serial 값이었음!

 

 

성공!