最小的PE文件

最小的PE文件入门

因为做的比较仓促,有些部分尤其是标色部分可能不太完整具体结构内容请参照文中链接或其他文章。
最小的PE文件_第1张图片
最小的PE文件_第2张图片
工具用的是winhex

最小的PE文件_第3张图片
工具用的是IDApro6.6

汇编代码找的方法是在000000E8的位置有四个字节20020000表示汇编代码在00000220位置,或者直接在IDA中找
根据最开始的PE结构我们一步步分析
最小的PE文件_第4张图片
这里要提一点,在存每个结构的时候字节间按照低位在前高位在后,也就是说,以最后的c0 00 00 00为例,我们读的地址应该为00 00 00 c0。

具体的结构定义(只给出DOS头的为例,其他部分不详细给出,参考其他大神的详细文章。
点这里查看其他部分的结构定义
或者这里
最小的PE文件_第5张图片
最小的PE文件_第6张图片

PE文件头和节表(目录表)
最小的PE文件_第7张图片

最小的PE文件_第8张图片

剩下的部分就不详细介绍了,要写最小的PE文件的话都是不需要的,是块的部分
最小的PE文件_第9张图片
这个IAT和INT表就是存当前程序运行需要的其他函数和程序,我们可以看到messageBoxA,一个弹框的系统调用,和他所在的USER32.dll

我们要打造最小的PE,就是要将有用的东西(程序代码等)塞进这些结构中一些修改后不影响运行的部分

源文件,每次修改后的程序,修改过程已经打包了需要自取,在XP下运行
最小的PE文件_第10张图片
下载程序

你可能感兴趣的:(pe)