해외에서 접수된 packer mpress로 팩킹된것으로 해외자료를 토대로 unpacking을 시도 중이다.
해당파일을 처음에 올리에 올리게되면 다음과 같은 바이너리가 존재한다. 처음 시작부분은 PUSHAD로 시작되며 다음 코드로 CALL이 존재하고 있다.
여기서 우리는 COMMAND 명령으로 BP를 건다.
bp VirtualProtect
해당 BP에 BREAK가 걸리면 다음과 같은 바이너리가 존재하는것을 확인 할 수 있다.
7C801AD4 > 8BFF MOV EDI, EDI ; NoStealt.0040015F
7C801AD6 55 PUSH EBP
7C801AD7 8BEC MOV EBP, ESP
7C801AD9 FF75 14 PUSH DWORD PTR SS:[EBP+14]
7C801ADC FF75 10 PUSH DWORD PTR SS:[EBP+10]
7C801ADF FF75 0C PUSH DWORD PTR SS:[EBP+C]
7C801AE2 FF75 08 PUSH DWORD PTR SS:[EBP+8]
7C801AE5 6A FF PUSH -1
7C801AE7 E8 75FFFFFF CALL VirtualProtectEx
7C801AEC 5D POP EBP ; NoStealt.004076F3
7C801AED C2 1000 RETN 10
해당 바이너리에서 RETN 10을 통해 본래 코드로 돌아오게 되면 스크롤을 밑으로 내려가면서 특정 바이너리를 찾아야 한다. 거진 맨 밑 부분의 코드 부분에 다음과 같은 바이너리들이 존재하는것을 확인 할 수 있다.
0040774D E8 00000000 CALL 00407752
00407752 5F POP EDI ; NoStealt.0040015F
00407753 81C7 EEFEFFFF ADD EDI, -112
00407759 B0 E9 MOV AL, 0E9
0040775B AA STOS BYTE PTR ES:[EDI]
0040775C B8 1E010000 MOV EAX, 11E
00407761 AB STOS DWORD PTR ES:[EDI]
00407762 61 POPAD
00407763 ^ E9 8D9AFFFF JMP 004011F5
해당 바이너리는 OEP로 가기위한 JMP가 존재하며 JMP로 가면 OEP가 존재한다고 되어있는데...!!! 내가 보는건 OEP가 아니였다; 그래서 아직 진행중이다...ㅠㅠ
참조 사이트 : http://blog.kaffenews.com/2011/02/09/freeware-packers-mpress-part1/
---------------------------------------------------------------------------------
위에 글이 매우 써보니 길다...간단하게 확인하는 법
맨 아래 부분에서 이 바이너리를 찾으면 된다. 끝
00407762 61 POPAD
00407763 ^ E9 8D9AFFFF JMP 004011F5
'리버싱' 카테고리의 다른 글
yoda unpacking[1부] (0) | 2014.07.08 |
---|---|
이번에 분석을 하면서 느낀점... (0) | 2014.04.30 |
vb 분석할때 방법 (0) | 2014.04.21 |
관리자 그룹으로 권한 상승위함 코드(CreateWellKnownSid, EqualSid ) (0) | 2014.04.17 |
가상머신인지 확인하는 어셈코드 (0) | 2014.04.07 |