Q11. OEP를 찾으시오. Ex) 00401000 / Stolenbyte 를 찾으시오. Ex) FF35CA204000E84D000000 정답인증은 OEP+ Stolenbyte Ex ) 00401000FF35CA204000E84D000000


key 파일을 검사하는 프로그램인 것 같다.
문제에서 OEP를 찾으라고 했으므로 이번 프로그램 역시 패킹되어 있다는 것을 유추해볼 수 있다.

Exeinfo PE를 통해 11.exe의 파일구조를 확인해본 결과 UPX 패킹으로 된 프로그램임을 확인했다.

upx -d 11.exe
UPX 언패킹 툴을 통해 11.exe를 언패킹을 진행해주었다.

OllyDbg로 UPX 언패킹한 11.exe를 열어보면 EP를 401000주소로 하는 것을 확인할 수 있다.
패킹한 위치의 EP는 OEP와 같으므로, OEP는 00401000 이다.
401000 ~ 40100B 까지 NOP로 보이는 구간이 있다. MessageBox의 들어가는 내용이므로, 실행해보면 글자가 깨질 것이다.

OllyDbg로 다시 원본 11.exe로 열어서 분석을 진행했다.
POPAD는 40736D 주소에서 찾을 수 있었으며, 407387주소에서 OEP 주소를 찾아볼 수 있었다.
문제에서 제시한 Stolen Byte를 찾기 위해서는 POPAD와 OEP 사이의 연속되는 PUSH를 찾아야 했다.
Stolen Byte는 40736E ~ 407375에서 연속되는 PUSH 명령어를 확인할 수 있었고,
Stolen Byte의 12바이트인 데이터를 추출해보면 6A 00 68 00204000 68 12204000 이다.
다시 정답을 위해 조합을 해보면
OEP + Stolen Byte = 004010006A0068002040006812204000
'Reversing > CodeEngn' 카테고리의 다른 글
| [CodeEngn] RCE basic L13 풀이 (0) | 2025.09.01 |
|---|---|
| [CodeEngn] RCE basic L12 풀이 (1) | 2025.09.01 |
| [CodeEngn] RCE basic L10 풀이 (3) | 2025.09.01 |
| [CodeEngn] RCE basic L09 풀이 (2) | 2025.09.01 |
| [CodeEngn] RCE basic L08 풀이 (0) | 2025.09.01 |