Notice
Recent Posts
Recent Comments
Archives
04-26 12:33
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
관리 메뉴

줴림이 공부하줴림

[CodeEngine] Basic RCE L11 본문

Study/CodeEngine

[CodeEngine] Basic RCE L11

줴림 2025. 4. 24. 12:17

어느 새 10번을 지나 11번 문제를 풀고 있는 나. 이번 문제는 OEP랑 StolenByte를 찾는 문제이다. Stolen Byte는 저번 문제를 풀 때도 나왔었는데, 패커의 일부분처럼 동작하기 위해 패커 코드 내에 사용된 코드를 의미한다는 걸 다시 한 번 알고 가자. 그리고 POPAD와 JMP OEP 사이에서 PUSH 명령어를 통해 원래 OEP부터 실행되었어야 할 코드를 스택으로 빼돌리는 것도!

 

11.exe를 실행시키면 이런 창이 나오는데, 그대로 확인을 누르면 keyfile을 찾을 수 없다고 error가 뜬다. 얘도 패킹이 되어 있는지 HxD랑 PEiD를 통해 알아보도록 하자. HxD 쓰는 이유? 있어보이려고...

보니까 UPX로 패킹이 되어 있긴 하다. 바로 패킹을 풀어주고 Olly로 열어보자!

지금 찾아야 할 게, 일단 OEP였지? 여기서 알 수 있는건 OEP는 00401000라는 것이다. 그리고 0040100C에서 Push를 통해 스택을 밀어넣어주고 있다.

 

그럼 이제 다시 패킹된 파일을 열어서 stolen byte를 찾아보자. Search → Command를 열어서 POPAD를 검색하면 딱 한 개의 검색 결과가 나온다.

POPAD랑 JMP OEP 사이에서 PUSH로 코드를 빼돌리는 부분이 Stolen Byte다. 그럼 Stolen Byte는 6A0068002040006812204000일 것이다.

 

근데 정답인증은 OEP+Stolen Byte로 하라고 했으니, 코드엔진 사이트에 004010006A0068002040006812204000를 넣어보면 될 것이다. 왤케 길어

'Study > CodeEngine' 카테고리의 다른 글

[CodeEngine] Basic RCE L10  (0) 2025.04.23
[CodeEngine] Basic RCE L09  (0) 2025.04.22
[CodeEngine] Basic RCE L08  (0) 2025.04.21
[CodeEngine] Basic RCE L07  (0) 2025.04.18
[CodeEngine] Basic RCE L06  (0) 2025.04.17