본문 바로가기

(Manual Unpacking 02) UPack Unpacking 작업환경 VersionHost PCWindows 7Guest PCWindows xp sp3Debugging ToolollydbgImport IAT ToolImport Restructor OEP 찾기 01 모든 압축된 파일을 Unpacking을 하기 위해서는 OEP를 찾아야합니다. 02 ollydbg로 packing된 notepad.exe를 실행 시키면 과 같은 에러가 뜨는데 이는 ollydbg가 자동으로 Entry Point를 찾지 못해서 일어나는 에러이므로 그냥 확인을 누르도록 합니다. 03 Entry Point 찾기stud_PE라는 PE-View를 통해 해당 파일의 EntryPoint를 계산하면 [EntryPoint의 RVA + ImageBase] 이므로 결과 값은 0x1001018라는 주소 값이 나.. 더보기
(이론 01) PE File Format 작업 환경분류이름Host PCWindows 7Guest PCWindows xp sp3Tool -1 HxD EditorTool -2PE-ViewTargetnotepad PE File Format: Portable Excutable File Format 로서 Window 계열의 운영체제에서 사용하는 실행파일의 형태를 말합니다.(winnt.h 에 정의) PE file Format의 전체적인 구조: 과 같은 구조로 실행 파일 내에 있다가 실행하는 순간 약간의 크기만 늘어나면서 Memory에 올라가게 됩니다. 각 구조체 별 설명1. _IMAGE_DOS_HEADER : 총 0x40 Byte로 이루어져 있으며 DOS 파일의 호환성을 위해 만들어 졌으나 현재에는 실제로 사용되는 부분은 e_magic와 e_lfanew .. 더보기
(Manual Unpacking 01) UPX Unpacking 작업 환경 VersionHost PCWindows 7Guest PCWindows xp sp3Debugging ToolollydbgImport IAT ToolImport Restructor OEP 찾기 01. Unpack을 하기 위해서는 우선 OEP의 위치부터 찾아야 하는데 UPX Packing은 EP Code가 PUSHAD와 POPAD 명령어로 싸여있기 때문에 이 점을 이용하면 간단히 OEP를 확인할 수 있습니다. 02. 0x0006FFA4에 Hardware Breakpoint를 걸도록 하겠습니다. 03. 이제 F9를 눌러서 실행하면 정확히 POPAD에 멈추게 되며 OEP로 이동하는 JMP 구문 역시 확인할 수 있습니다. 04. 이제 JMP에 Breakpoint를 걸고 실행하면 JMP 구문에서 멈추고 이.. 더보기