Stolenbyte란, 패킹 시 packer가 보호 목적으로 옮겨 놓은, 프로그램 코드라고 정의된다.
처음 Ollydbg로 로드하면, 이렇게 나온다. 위의 DB 90이 여럿 보일텐데, 아무데서나 Ctrl+A(Analyze Code)를 눌러보자.
\x90에 해당하는 NOP instruction으로 바뀌는 것을 알 수 있다.
이 프로그램은 UPX 패커로 패킹되어 있으니, 코드의 마지막 위치를 확인해보도록 하자.
POPAD로 모든 register를 pop한 후, push 3번, 루프 끝에 마지막으로 JMP문에 도달하는 방식으로 되어 있다.
상자로 표시된 곳이 Stolenbyte이며, 마지막에 JMP하는 곳이 OEP이다.
이제 위에서 봤던 NOP(401000~)를 Stolenbyte로 덮어보자.
공간이 딱 맞다.
작업이 끝났다면, 401000을 New Origin으로 설정하고 실행해보자.
정상적으로 실행될 것이다.
정답: 6A0068002040006812204000
'[Wargame Write-up] > Simples.kr Season 1' 카테고리의 다른 글
[Simples.kr] [Season 1] Unpackme 05 (0) | 2018.03.03 |
---|---|
[Simples.kr] [Season 1] Unpackme 04 (0) | 2018.03.02 |
[Simples.kr] [Season 1] Unpackme 02 (0) | 2018.03.02 |
[Simples.kr] [Season 1] Unpackme 01 (0) | 2018.03.01 |
[Simples.kr] [Season 1] Crackme 16 (0) | 2017.10.08 |