鱼C论坛

 找回密码
 立即注册
查看: 4153|回复: 4

[技术交流] 16进制编写编写PE文件显示hello,fishc(原创)

[复制链接]
发表于 2011-10-20 15:13:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本人菜鸟一只,最近觉得自己对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:}
HelloFishc.rar (367 Bytes, 下载次数: 16)



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-20 19:06:35 | 显示全部楼层
楼主这贴子和吾爱破解的一篇贴子惊人的相似
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-10-20 22:03:23 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-21 19:18:13 | 显示全部楼层
willjhw 发表于 2011-10-20 22:03
那个人也是我

。。。。。。。。。。。。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-10-22 09:31:38 | 显示全部楼层
掌心的呵护 发表于 2011-10-21 19:18
。。。。。。。。。。。。。。。。。

经常去看雪,吾爱破解的,多学习下他们
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-8 22:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表