手工用16进制编辑器编一个PE,做到弹出一个MessageBox并且尽量缩小大小。
1. 可以缩减的地方
PE头可以缩减,因为是重新构建的关系,所以可以把3C处偏移到Nt头的节对齐大小位置,然后后面内容就按照这个节大小值去设置就行了,偏移位置有0x02、0x04,0x02的0x3C处在值的中间,导致对齐大小太大,所以选择0x04,这是节对齐正好就是4。设置可选头大小和数据目录大小,这样也可以缩减,但是缩减后OD调试会有问题,所以还是保留原来大小。去掉重定位,如果有间隙就在间隙里写导入表的一些东西,代码也写在间隙里。对于需要的字符串,看看有什么不用的或者保留字段,放进去就行了。
2. 开始编辑
对齐大小写的是4,不用重定位,先写到节表,导入表没写,代码没写,入口点写了0x04用来调试,先用0xEE填充可以乱填的部分(那几个地方太短了
基本上什么都不能存),一会往里面塞东西。对话框显示的标题和内容和导入的dll名称我已经先放进去了(都是可以乱改的字段)。节大小不要超过文件大小,不然会出错。