(高手勿进)为pe文件添加CRC32自效验的小程序(vc)

 
标 题: 【原创】(高手勿进)为pe文件添加CRC32自效验的小程序(vc)
作 者: sdzbyy
时 间: 2007-05-23,00:49
链 接: http://bbs.pediy.com/showthread.php?t=45074

学习CRC32的一个习作,老实说,对CRC的原理还是不太明白,我是菜鸟,请大家不吝赐教。  QQ:406670611
原理:http://www.pediy.com/tutorial/chap6/Chap6-2-4.htm还有www.luocong.com上也有很好的讲解。
步骤:pe文件通过比较自己的CRC32效验值,来判断自己是否被改写。
     (1)为原pe文件添加一个新的节,将自效验部分(Loader)写入该新节。
     (2)将原pe文件的ep改为新节的开始。
     (3)计算原pe文件部分(在程序里计算的是从pe文件的开头到+0xe5)的CRC32效验值,并将该效验值保存在Loader中。
     (4)修改后的pe文件开始运行时,先计算相应部分的(在程序里计算的是从pe文件的开头到+0xe5 )CRC32效验值。与原pe文件的CRC32效验值比较,若相等则跳转到原pe的ep,否则直接调用ExitProcess退出。
测试:(1)打开程序CRC32为记事本添加自效验。
   (2)运行已添加自效验的记事本,能正常运行。
   (3)修改从记事本开头到0xe5范围内的任意一个字节(不要修改关键数据,如“MZ“),再运行,记事本直接ExitProcess,退出。
        此图已经缩小,点击察看原图。
几点说明:
   (1)源码在vc7+xp_xp2下编译通过。
   (2) 卡巴斯基会将已添加自效验的记事本误报为病毒。
   (3)因为图简单所以将自效验的范围定为"MZ"到0XE5。(添加了新的节以后,记事本的头部会改变,但0xe6之前的不会变)
   (4)在调用ExitProcess时使用了硬编码:mov eax,07c81caa2h(Kernel32.ExitProcess),call eax
参考文献:
  (1)bbs.pediy.com
  (2)www.luocong.com
上传的附件
文件类型: rar CRC32源码.rar (2007-05-23 00:53 , 175.9 KB, 239 次下载)
文件类型: rar 已添加CRC32效验的记事本.rar (2007-05-23 00:49 , 33.5 KB, 142 次下载)
文件类型: rar 静态mfcCRC32.rar (2007-05-23 00:53 , 401.3 KB, 168 次下载)
文件类型: rar CRC32.rar (2007-05-23 00:55 , 28.1 KB, 177 次下载)

 


此帖于 2007-05-23 19:54 被 sdzbyy 编辑.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值