1、其实做为软件开发者,研究好软件加密的确很重要,不过也很有必要多了解一些关于加密狗解密和破解的知识,加密和破解就像矛和盾一样,对于解密知识了解的越多,那么编写的加密代码就越好,要知道加密永远都比解密要容易的多,只有知己知彼,方能百战百胜。
2、硬件加密锁,俗程“加密狗”,对于加密狗的破解大致可以分为三种方法,一种是通过硬件克隆或者复制,一种是通过SoftICE等Debug工具调试跟踪解密,一种是通过编写拦截程序修改软件和加密狗之间的通讯。
3、硬件克隆复制主要是针对国产芯片的加密狗,因为国产加密狗公司一般没有核心加密芯片的制造能力,因此有些使用了市场上通用的芯片,破解者分析出芯片电路以及芯片里写的内容后,就可以立刻复制或克隆一个完全相同的加密狗。
4、不过国外的加密狗就无法使用这种方法,国外加密狗硬件使用的是安全性很好的自己研制开发的芯片,通常很难进行复制,而且现在国内加密狗也在使用进口的智能卡芯片,因此这种硬件克隆的解密方法用处越来越少。
5、对于Debug调试破解,由于软件的复杂度越来越高,编译器产生的代码也越来越多,通过反汇编等方法跟踪调式破解的复杂度已经变得越来越高,破解成本也越来越高,目前已经很少有人愿意花费大量精力进行如此复杂的破解,除非被破解的软件具有极高的价值。
6、目前加密锁(加密狗)的解密破解工作主要集中在应用程序与加密动态库之间的通讯拦截。
7、这种方法成本较低,也易于实现,对待以单片机等芯片为核心的加密锁(加密狗)具有不错的解密效果。
8、由于加密锁(加密狗)的应用程序接口(API)基本上都是公开的,因此从网上可以很容易下载到加密狗的编程接口API、用户手册、和其它相关资料,还可以了解加密狗技术的新进展。
9、例如,某个国内知名的美国加密狗提供商的一款很有名的加密狗,其全部编程资料就可以从网上获取到,经过对这些资料的分析,我们知道这个加密锁(加密狗)有64个内存单元,其中56个可以被用户使用,这些单元中的每一个都可以被用为三种类型之算法、数据值和计数器。
10、数据值比较好理解,数据值是用户存储在可读写的单元中的数据,就和存储在硬盘里一样,用户可以使用Read函数读出存储单元里面的数据,也可以使用Write函数保存自己的信息到存储单元。
11、计数器是这样一种单元,软件开发商在其软件中使用Decrement函数可以把其值减当计数器和某种活动的(active)算法关联时,计数器为零则会封闭(deactive)这个算法。
12、算法单元较难理解一些,算法(algorithm)是这样一种技术,你用Query(queryData)函数访问它,其中queryData是查询值,上述函数有一个返回值,被加密的程序知道一组这样的查询值/返回值对,在需要加密的地方,用上述函数检查狗的存在和真伪。
13、对于被指定为算法的单元,软件上是无法读和修改的,即使你是合法的用户也是如此,我理解这种技术除了增加程序复杂性以外,主要是为了对付使用模拟器技术的破解。
14、此加密锁(加密狗)的所有API函数调用都会有返回值,返回值为0的时候表示成功。
15、因此,破解思路就出来了,就是使用我们自己的工具(如VB、VC等)重新编写构造一个和加密狗API一样的DLL动态库文件,里面也包含Read、Write等全部API中包含的函数,使用的参量及返回值和原来的函数一样,所有函数返回零。
16、然后对Query、Read函数进行处理,返回应用软件需要的数值即可。
17、这个新的DLL文件编写成功后,直接替换掉原来的DLL文件,这时候再运行应用软件,软件访问加密狗的操作就全部会被拦截,拦截程序永远会返回正确的数据给软件,从而实现了模拟加密狗的运行。
二、CANdelaStudio加密狗key复制破解模拟【三维扫描吧】1、欢迎交流。
三、【图片】superdog 超级狗复制模拟 Sentinel加密狗复制模拟【加密狗破解吧】1、你好,你vx是?方便加下你吗?。
2、欢迎咨询加密狗---1667767688或者邮箱来信。
3、1667767688QQ.com。
四、一般的软件加密狗怎么破解啊?1、你好,你vx是?方便加下你吗?。
五、加密狗如何破解?1、闪电国际调查对于加密狗的破解大致可以分为三种方法,一种是通旅历过硬件克隆或者复制,一种是通过SoftICE等Debug工具调试跟踪解密,一拆模搜种是通过编写拦截程序修改软件和码穗加密狗之间的通讯。
六、加密狗模拟破解1、一、拆解文件,寻找验证脱壳这个很简单扔到de4dot神器自动脱掉了。把处理后的文件扔到.NETReflector里面,右键模组->GoToEntryPoint进入入口点。
2、观察代码,程序在入口点通过建立互斥体检测程序是否已经运行,然后进入「MainForm」窗口。。
3、在主窗口初始化的代码内,「初始化运行环境」的下面有一行很可疑,「InitLicense初始化授权」:。
4、看到代码后,可以发现我们没有找错,许可授权在这里读取:。
5、SN全名SerialNumber[序列号],这个类名也很直白,就是我们研究的目标了。。
6、二、拆解验证,糊点代码点进去SN这个类,然后单击Reflector界面底部的「ExpandMethods」展开这个类所有代码,方便分析:。
7、把全部文件拷贝到VisualStudio或文字编辑器备份,定位到Registered这个方法:。
8、这段代码,表示程序会优先检查加密狗内部的授权。若是加密狗不存在,则进行序列号的校验。把狗相关的函数提取出来,分析一下调用:。
9、NTFind: 调用API「NTFindFirst」查询第一个加密狗的存在,返回0表示成功。NTLogin: 调用API「NTLogin」尝试登录,返回0表示成功(加了容错处理,所以代码看起来比较怪),方法返回true表示成功。NTReadIv:调用API「NTRead」 读入加密狗数据,并与内置的密文进行比对验证,方法返回true表示获取成功并验证通过。NTReadLicense:读取狗上面的数据,根据数据返回相应的授权信息。前两个,直接在DLL修改为返回0即可:。
10、后面一个有点麻烦,因为需要读取数据到内存进行验证,而数据又不能凭空出现。把「NTReadIv」这个方法的功能翻译成白话大概就是:申请7个字节的数据块。读取狗的数据:从0开始读取7个字节,读到的内容写到刚才申请的数据块里面。如果数据块的内容与「NTIv」这个变量的内容一致则验证成功,否则失败。而在此之前,我们需要知道所谓的密文是什么内容;回到构建函数(SN->.cctor)。
11、到这里就比较简单了,进去EncryptString这个类全部拷贝到IDE,然后简单做一个界面[自行美化吧~]:。
12、解密按钮的事件代码按照程序里的写法糊进去就行:。
13、解密后,可以看到这样的内容:NTCode:1234567890arctilerstring_0:3eee0d60fbb583e1bf33c6990d5f9e0dNTIv:azmap09顺便:SN.RegisterProductCode的文字解密后是「desktop」,可理解为桌面版。此时,可以知道加密狗从0到7的内容是azmap09这一串字符了,记录下来:。
14、当这三个验证都通过后,程序就会调用NTReadLicense读取狗上面记录的内容;。
15、又看到了熟悉的NTRead函数。此时,读取的是0x10(16)开始的两个字节一直到0x12的位置。接着往下看,一系列的判断分支,根据分支内容判断授权版本。在此之前,调查一下程序定义的授权类型:。
16、目标很清晰,就是我们功能多、全的「企业版」。因此,把代码优化、精简一下:。
17、而当我把数据库用工具打开时,却提示我数据库被加密或无效..走进去「GetSQLiteConn」看看怎么处理:。
18、熟悉的加密文字,扔到工具里解密看看,还真是这个「azmap09」。于是糊了几行代码,取得数据库储存的代码号是0。因此如果想让版本为企业版,加密狗的内容必须是-1了。。
19、三、戏弄程序,编写狗狗首先摸清目标狗的导出函数:。
20、然后编写个相同的导出函数;我这里首先用的是C++。
21、后带上修正导出表的def文件:LIBRARYFakeLibEXPORTS NT3DESCBCDecrypt=_NT3DESCBCDecrypt NT3DESCBCEncrypt=_NT3DESCBCEncrypt NTCheckLicense=_NTCheckLicense NTFindFirst=_NTFindFirst NTGetHardwareID=_NTGetHardwareID NTLogin=_NTLogin NTLogout=_NTLogout NTRead=_NTRead NTWrite=_NTWrite。
22、编译后更名NTdll,扔进去看看:。
23、企业版。嘛,就这样了。
七、怎样破解或复制USB加密狗?1、拆解文件,寻找验证脱壳这个很简单扔到de4dot神器自动脱掉了。
2、把处理后的文件扔到.NETReflector里面,右键模组->GoToEntryPoint进入入口点。
八、带“加密狗”的软件能不能破解1、这个不好说,软件商用加密狗主要目的就是加密软件防盗版、防破解,来只有花钱购买了正版软件才能用,但是如果软件商加密强度不够也是容易被破解的,还有就是目前的主流加密狗都是智能卡芯片的,目前无法被复制,只有比较老的单片机狗能被复制破解。
2、还有就是看软件用的人多不多,用的多才会有人花精力去破解。
转载请注明出处阿文说说网 » 加密狗模拟破解【加密狗破解】