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 값이었음!