首页
社区
课程
招聘
[原创](高手勿进)为pe文件添加CRC32自效验的小程序(vc)
发表于: 2007-5-23 00:49 15233

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

2007-5-23 00:49
15233

学习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


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (12)
雪    币: 538
活跃值: (460)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
2
不懂CRC,下来学习。。。。
2007-5-23 01:36
0
雪    币: 1969
活跃值: (46)
能力值: (RANK:550 )
在线值:
发帖
回帖
粉丝
3
跟着楼主学习CRC
2007-5-23 19:16
0
雪    币: 255
活跃值: (207)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
4
喀吧,norton,macfee等软件都对感染型病毒有特殊检测,如果发现oep在pe头部,或者PE的最后一个section的时候,就提示未知病毒威胁。
所以简单的方法就是在后面增加一个空的section,raw size为0,virtual size随便指定一个,比如0x1000,就可以了。
上传的附件:
2007-5-23 19:54
0
雪    币: 405
活跃值: (10)
能力值: ( LV9,RANK:1130 )
在线值:
发帖
回帖
粉丝
5
自校验,我喜欢~~。多谢分享
2007-5-24 12:18
0
雪    币: 236
活跃值: (11)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
6
多谢指点!
2007-5-24 12:39
0
雪    币: 314
活跃值: (15)
能力值: ( LV12,RANK:410 )
在线值:
发帖
回帖
粉丝
7
支持一下,学习!
2007-5-24 18:42
0
雪    币: 106
活跃值: (255)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
测试了下 加了校验不能运行 闷
2007-5-24 21:07
0
雪    币: 236
活跃值: (11)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
9
程序没有通用性,只为了学习crc32效验算法,你只要看懂了算法,自己改改就ok了!
2007-5-24 22:55
0
雪    币: 246
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
支持一下,学习CRC!
2007-5-26 08:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
因为很多嵌入式病毒就是这么干的
2007-9-14 14:15
0
雪    币: 91
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
支持一下``学习ing``
2007-9-15 08:50
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ltr
13
下来学习,谢谢分享。
2007-11-11 14:56
0
游客
登录 | 注册 方可回帖
返回
//