软件使用加密锁常见加密方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1,使用算法动态生成 重要的字符串。
2,查询得到响应串;比较响应串和查询串是否匹配;根据校验结果执行相应的步骤。建议三个步骤要延时执行。最好将三步骤相互远离些,甚至放到不同的子程序或函数中。
3,将加密锁返回的“响应串”作为程序中的参数使用。例如:算法单元返回“响应串”是“87611123”,而程序中需要使用“123”这个参数。程序中得到“响应串”后,将“响应串”减去“87611000”得到参数。
4,程序在验证加密算法过程中,一般情况下验证数据不正确程序就会选择退出。
5,给查狗函数加入一定的随机性,例如,随机地执行某一API函数,或者在狗的存储区中划定一小块区域作随机读写,读写地址、读写内容、读写长度都是随机取的,这样可以很好地防止那些模拟工具。
6, 在大多数情况下,破解是通过更改exe 或 dll 文件实现的,要在程序中检查exe或dll文件的完整性,即利用某种算法计算出整个文件的校验和,在程序中比较,如果文件被更改,校验和就会变化,这类算法网上有很多,可以查得到。另外,exe和dll之间要相互认证,一方面防止dll被替换,另一方面防止非法exe访问dll。
7,软件每次运行时,都可能使用新的查询响应校验数据
8,比如:1200 对校验数据可分为12组,每100对一组。程序在一年中的第一月使用第一组校验数据,第二月使用第二组校验数据,以此类推。
9,在程序中随机产生查询数据,随机数据和真实数据混合在一起。
小结:应该尽量避免的问题
1)访问狗、做判断、提示用户写在一起
2)重要的字符串在程序中以明文出现
3)在狗中存放字符串,程序中读出比较
4)调用同一函数或判断同一个全局标志查狗
5)试用版软件同正式版软件是同一份
6)查狗的模块或接口名字太明显
7)程序无随机性,每次运行执行路径都一样
8)没有检查exe 或 dll 文件的完整性,exe 和 dll 之间也没有相互认证