一周总结之整理PE文件分析其数据结构
这段时间开始慢慢接触逆向工程,逆向的第一步就是将执行文件反汇编成指定的汇编文件,然后再通过相关逻辑算法将汇编转换成其他语言(任何语言都可以互相转换)。在Windows下执行文件就是PE格式,这几天搜索到pexports、libpe及其他相关代码,通过阅读网上的资料和代码。已经基本上理解了其大致的原理。
接下来还要阅读分析binutils代码,只要能弄懂objdump的代码逻辑就可以输出自己想要的反编译文件。下面是objdump -d nm.exe > nm.txt反编译的部分代码试过其他软件基本上与OllyDBG差异不大,只是汇编语法上存在差异而已(Intel和AT&T)。
【Intel】
【AT&T】
nm.exe: file format pei-i386
Disassembly of section .text:
00401000 <.text>:
401000: 53 push %ebx
401001: 83 ec 18 sub $0x18,%esp
401004: 8b 44 24 20 mov 0x20(%esp),%eax
401008: 8b 00 mov (%eax),%eax
40100a: 8b 00 mov (%eax),%eax
40100c: 3d 91 00 00 c0 cmp $0xc0000091,%eax
401011: 77 45 ja 0x401058
401013: 3d 8d 00 00 c0 cmp $0xc000008d,%eax
401018: 73 53 jae 0x40106d
40101a: 3d 05 00 00 c0 cmp $0xc0000005,%eax
40101f: 0f 85 83 00 00 00 jne 0x4010a8
401025: c7 44 24 04 00 00 00 movl $0x0,0x4(%esp)
40102c: 00
40102d: c7 04 24 0b 00 00 00 movl $0xb,(%esp)
401034: e8 db 1f 07 00 call 0x473014
如果能够全部把binutils消化了估计要花点时间,现在生活压力非常大还是要先找一份工作稳定下来再慢慢搞这些研究!