加密锁(加密狗)使用技巧
来源:互联网 发布:手机注册淘宝店铺流程 编辑:程序博客网 时间:2024/05/01 02:27
本文基于坚石诚信ET99软件加密锁来介绍软件加密锁的一些编程应用技巧,以及软件开发者如何编写安全可靠的代码,如何解决各种各样的加密狗破解,编写加密程序时产生的一些问题。
一、加密狗加密的基本原理
开发商程序通过调用硬件加密狗的接口对硬件加密狗操作,硬件加密狗响应该操作并通过接口将相应数据返回给开发商的应用程序。开发商的应用程序可以对返回值进行判定并采取相应的动作。如果返回无效的响应,表明没有正确的狗,开发商可以将应用程序终止运行,或者让应用程序以错误的方式执行。
二、常用的解密方法
1、反汇编后静态分析: W32Dasm、IDA Pro
2、用调试工具跟踪动态分析:SoftICE、TRW2000
3、针对各种语言的反汇编工具:VB、Delphi、Java等
4、其他监视工具:FileMon、RegMon 等
三、如何提高加密强度
下面,详细介绍一下如何使用坚石ET99在编程的过程中提高加密强度的方法。
1、反DEBUG解密的编程方法和技巧
查找、打开狗之后不要立即做判断,判断狗不正确后,不要立即提示,或者不提示。开发商在程序各个部分插入校验算法的代码,用以增加程序代码的复杂性,防止解密者轻易跟踪发现全部的校验代码。校验代码插入程序的频率越高,破解难度越大,软件就越安全。
在不影响程序效率的情况下,尽量多写一些查狗的函数,彼此要有区别,使用不同的算法,多一些查狗出错的标志,让这些标志参与运算,在不同的程序模块中,使用不同的查狗或校验逻辑。
针对某一具体查询校验,都有三步骤组成:查询得到检验数据;比较校验信数据和校验数据是否匹配;根据校验结果执行相应的步骤。建议三个步骤要延时执行。最好将三步骤相互远离些,甚至放到不同的子程序或函数中。例如:执行“查询得到校验数据”后,相隔50行执行“比较校验数据是否匹配”,假如程序需要调用一个函数。那么就在这个函数里执行“执行相应的步骤”。解密者在跟踪过程中,即使发现了其中一部分程序代码,但很难发现另外两部分代码和全部三部分之间的关联。程序难于被破解。
程序在验证加密算法过程中,一般情况下验证数据不正确程序就会选择退出。这样一来很容易被解密者发现代码特征,跳过查询校验部分。开发商设计查询校验部分时,如果程序校验数据不正确,程序也不退出可以继续执行一些无用的操作使程序紊乱,用以隐蔽代码迷惑解密者。
试用版与正式版要分开,使得不可能利用试用版破解得到正式版。
在大多数情况下,破解是通过更改exe 或 dll 文件实现的,要在程序中检查exe或dll文件的完整性,即利用某种算法计算出整个文件的校验和,例如使用ET99提供的MD5消息摘要算法,在程序中比较,如果文件被更改,校验和就会变化。另外,exe和dll之间要相互认证,一方面防止dll被替换,另一方面防止非法exe访问dll。
小结:应该尽量避免的问题
1)访问狗、做判断、提示用户写在一起
2)重要的字符串在程序中以明文出现
3)在狗中存放字符串,程序中读出比较
4)调用同一函数或判断同一个全局标志查狗
5)试用版软件同正式版软件是同一份
7)程序无随机性,每次运行执行路径都一样
8)没有检查exe 或 dll 文件的完整性,exe 和 dll 之间也没有相互认证
酷贝网
- 加密锁(加密狗)使用技巧
- 加密锁的使用技巧
- 软件加密锁加密技巧
- 加密狗原理-高强度加密-程序加密技巧
- 加密锁应用技巧浅析
- 加密锁应用技巧简介
- IA300加密狗使用
- Vim使用技巧の快速加密
- PHP加密解密技巧
- PHP 加密技巧
- 加密操作技巧总结
- 关于加密狗的使用
- 加密
- 加密..................
- 加密
- 加密
- 加密
- 加密
- 去除maven compile 警告 [WARN] Using platform encoding (GB18030 actually)
- Matlab注释技巧
- C#操作sql server 数据库访问类
- 变态的SONY
- FreeTextBox
- 加密锁(加密狗)使用技巧
- 在BIOS中开启vt-x无效的解决方法
- 很讨厌专业英语
- 从硬盘安装Fedora12
- jQuery对select操作
- 浅谈对OneNAND的认识
- Difference between ${requestScope} and ${pageContext.request}
- suse安装Joomla
- 通用数据库操作辅助类DbHelper