개발세발보안중
Codeengn Basic RCE L10 본문
정답인증은 OEP + OPCODE
EX) 00400000EB03
OEP : Original Entry Point
패킹된 파일을 실행할 때 자동적으로 시스템 내부에서 언패킹을 한다. 언패킹이 끝나면 복구한 원본코드를 동작시켜야 하는데 이 원본코드의 Entry Point를 OEP라 한다.
Opcode(operation code,명령코드) 기계어 명령어


OEP=Entrypoint=00056001
ASPack 임을 확인

PUSHAD라는 문자열을 확인할 수 있다
PUSHAD는 범용 레지스터에 저장된 값들을 스택에 저장하는 명령어이다.
현재의 레지스터값을 스택에 저장하고 원본 코드로 복구한 다음, POPAD를 이용하여 원래의 레지스터 값으로 되돌린 다음, 복구한 OEP로 분기한다.
F8을 누르면 PUSHAD명령어가 실행되어 EAX ECX와 같은 레지스터가 들어간다

Dump창의 주소가 19FF64로 되어있다

4바이트를 드래그 해서 해당 주소에 브레이크포인트를 걸어준다.
Dword => 메모리 크기를 4바이트로 지정
이 후 실행 시키면 JNZ명령에서 브레이크 됨

3줄 밑 PUSH에 있는 00445834가 OEP이다 ... 왜?!!?

F8 3번, ctrl+A 를 눌러서 EOP가 00445834임을 알 수 있다..

우클릭 > search for > all referenced text strings
"ASCII "Registered... well done!"

빨간색 줄이 있는 부분부터
33C0까지 점프문이 있다고한다..!
그래서 OP CODE는 75 55 이다
OEP+ OPCODE: 004458347555
인데
10.exe파일에 입력이 안된다
하
하
하아
'CTF' 카테고리의 다른 글
| Webhacking.kr 15 (0) | 2022.10.03 |
|---|---|
| Webhacking.kr 34번 (0) | 2022.09.26 |
| Codeengn Basic RCE L09 (0) | 2022.09.26 |
| webhacking.kr challenge 42 (0) | 2022.09.25 |
| Wargame Challenges 6 (0) | 2022.09.25 |