willjhw 发表于 2011-10-20 15:13:44

16进制编写编写PE文件显示hello,fishc(原创)

本人菜鸟一只,最近觉得自己对PE不是很了解:'(,就查看了很多资料用16进制编辑器写了一个简单的hellofishc的PE程序,希望大牛们以后多多指教,现在分享下我的学习:


MZ-DOS MZ头部(大小:64字节)


MS-DOS(大小112字节)


PE文件标志(4字节)


PE文件头(20字节)


PE文件可选头(224字节)


各段头部(i*40字节)


各段实体数据
所有的PE文件必须有一个DOS MZ头部,这是考虑到对DOS系统一个兼容性问题,有了这个头才能在DOS下识别是一个可执行文件,然后运行紧跟的MS-DOS。MS-DOS在PE文件中只是实现一句话“This program cannot run in DOS mode”来提醒用户,在编写时我直接00填充了。PE文件标志是PE结构的起始标识,就是50450000
ASCII为PE。PE文件头是IMAGE_NT_HEADERS的简称,其中包含了重要信息,当PE可以运行时可以直接跳过MS-DOS定位到PE文件头。PE可选头虽然取的名字是可选,但是是必须的,而且有重要信息,所有必须编写。各段节头部,做病毒分析时,打开lordPE里有个区段就可以看见了,Windows NT典型的拥有9个区段:.text .bss .rdata .data .rsrc .edata.idata.pdata .debug。我们也可以自己定义一些区段加入PE中,病毒感染PE就是加了自己的区段,加入代码,修改入口点执行的。大体可以看出PE可以分为4个部分:DOS部分,PE部分,各段头部,各段实体部分。下面是写的一个Hello,fishc!的程序,非常简洁,只有重要数据,大家可以用16进制编译器(C32ASM,WinHex等)打开看看。多有总结不当,还望大牛们多多指出{:2_28:}


qepn 发表于 2011-10-20 19:06:35

楼主这贴子和吾爱破解的一篇贴子惊人的相似

willjhw 发表于 2011-10-20 22:03:23

qepn 发表于 2011-10-20 19:06 static/image/common/back.gif
楼主这贴子和吾爱破解的一篇贴子惊人的相似

那个人也是我:lol

掌心的呵护 发表于 2011-10-21 19:18:13

willjhw 发表于 2011-10-20 22:03 static/image/common/back.gif
那个人也是我

。。。。。。。。。。。。。。。。。

willjhw 发表于 2011-10-22 09:31:38

掌心的呵护 发表于 2011-10-21 19:18 static/image/common/back.gif
。。。。。。。。。。。。。。。。。

经常去看雪,吾爱破解的,多学习下他们
页: [1]
查看完整版本: 16进制编写编写PE文件显示hello,fishc(原创)