[转载]软件自保护程序设计
信息来源:邪恶八进制信息安全团队([url]www.eviloctal.com[/url])要求:
熟悉“校验和”的思想与实现
参考课程给出的实例
用程序实现“校验和”算法
对所编写程序自身进行校验
给出校验成功与否的提示
进一步的先进功能
校验和是一种常用的代码完整性保护措施,可用于各种代码存储、传输和运行过程。在程序体中嵌入一小段计算程序代码值的“逻辑和”,运行时如果“逻辑和”不正常,该程序代码被改动过。这个“逻辑和”被称为“校验和”,导致正确校验和的互补值被称为“校验和值”。
1)在程序中设置一个校验和位,其初始代码值为00,确定一个代码计算起始位置和终止位置,从该位置开始对所有后继字符代码值进行“逻辑加”(二进制加法,进位丢掉),一直进行到终止位置为止。此时得到一个代码值,取其补数作为校验和值,填入校验和位。例如:
用作减法求补: 100
逻辑加结果: - 5A
得到互补数: A6 <--------- 校验和值
2)在程序中用一个小程序,从预先确定的代码计算起始位置开始对所有后继字符(含校验和位)的代码值进行“逻辑加”(二进制加法,进位丢掉),一直进行到终止位置为止。此时如果结果为00,表示校验正常,否则,代码有可能被改动,例如:
代码逻辑加结果: 5A
互补的校验和值:+ A6
校验和结果: 100
丢掉
校验和的设置过程:见附件
增强功能:
? 校验和值可以由用户自行设置
? 校验和位可以设一个,也可设多个有的固定,有的经计算后产生
? 校验和位在程序中的位置可以任意
? 校验和计算的范围可以预先设定
? 对现有可执行程序,采用外加法保护类似病毒附着法
提交:
? 实现语言:c语言
? 实现平台:MS Windows平台
? 提交结果
。 可执行程序
? 语言源程序
? 软件文档(程序说明)
页:
[1]