Reverse L09
'Wargame > CodeEngn (Basic)' 카테고리의 다른 글
Reverse L10 (1) | 2012.11.20 |
---|---|
Reverse L08 (0) | 2012.11.18 |
Reverse L07 (0) | 2012.11.17 |
Reverse L06 (0) | 2012.11.17 |
Reverse L05 (0) | 2012.11.17 |
Reverse L09
Stolen-Byte를 구하랍니다.
문제 파일을 받고 실행해봅니다.
Key file 확인좀 하겠답니다.
Key file을 찾을수 없다고 뜹니다.
Stolen-Byte에 대한 개념을 모르시면 다음 글을 읽고 오세요.
->
문제 파일은 UPX로 packing 되어 있습니다.
OllyDbg로 열어봅니다.
친숙한 PUSHAD가 보입니다.
MUP 해줍니다.
MUP를 하다보면 위와같이 Stolen-Byte가 눈에 띕니다.
JMP를 따라가면 OEP가 보입니다.
하나씩 따라가며 분석해 보겠습니다.
제일 먼저 CreateFileA 함수를 통해 "abex.l2c" 파일을 엽니다.
File이 존재하지 않는 경우 file을 찾을수 없다고 뜨고 종료합니다.
CreateFileA 함수의 원형입니다.
lpFileName으로 넘어간 file을 설정에 맞게 엽니다.
File을 여는데 성공하면 해당 file의 handle을 return합니다.
위에서 넘겨받은 file handle을 통해 file의 size를 구합니다.
File의 size가 0x12(18)이 아니면 key file이 잘못됐다고 뜨고 종료합니다.
위의 조건들을 다 만족한 경우 key file이 맞다고 뜹니다.
18-byte 크기의 abex.l2c 파일을 만들고 실행해봅니다.
Key file이 맞다고 떴습니다.
Reverse L10 (1) | 2012.11.20 |
---|---|
Reverse L08 (0) | 2012.11.18 |
Reverse L07 (0) | 2012.11.17 |
Reverse L06 (0) | 2012.11.17 |
Reverse L05 (0) | 2012.11.17 |