(高手勿进)为pe文件添加CRC32自效验的小程序(vc)
2008-08-09 09:36
288 查看
标 题: 【原创】(高手勿进)为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 |
CRC32源码.rar (2007-05-23 00:53 , 175.9 KB, 239 次下载) | |
已添加CRC32效验的记事本.rar (2007-05-23 00:49 , 33.5 KB, 142 次下载) | |
静态mfcCRC32.rar (2007-05-23 00:53 , 401.3 KB, 168 次下载) | |
CRC32.rar (2007-05-23 00:55 , 28.1 KB, 177 次下载) |
被 sdzbyy 编辑.
相关文章推荐
- 为pe文件添加CRC32自效验的小程序(vc)
- 为PE文件添加CRC32自效验
- 为PE文件添加CRC32自效验
- 如何在VC中通过添加资源文件,使程序在Vista上用管理员权限运行
- 如何在VC中通过添加资源文件,使程序在Vista上用管理员权限运行
- VC读取PE文件的OEP(程序入口)
- 写了一个添加节感染Intel X86 PE文件的程序(Virus)
- VC中改变PE文件中Dos Stub程序(显示This program cannot be run in DOS mode)那一段程序.
- 在vc程序中添加 chm类型帮助文件
- 如何在VC中通过添加资源文件,使程序在Vista上用管理员权限运行
- VC6.0打开文件以及向工程中添加文件时程序崩溃自动退出
- 在程序编译的时候,头文件不参与编译,源文件单独编译(VC),但编译源文件时,会展开其包含的头文件
- vc release错误追踪位置,程序不弹错直接退出,后生成日志文件。
- 给MFC程序添加文件拖放处理功能
- VC直接编译数据文件到程序中。
- 通过reg文件给vc7.1添加环境变量
- vc++实现无进程无DLL无硬盘文件无启动项的ICMP后门后门程序
- 在VC程序中调用exe文件或者批处理文件方法总结
- 为自己的程序添加接受文件管理器拖放文件支持
- 解决VC++ MFC程序resource.h头文件中ID重复问题