TEL:130-669-36900

>
>

SafeNet软件加密狗破解的技术应用

SafeNet软件加密狗破解的技术应用
 

SafeNet软件加密狗即彩虹加密狗系列,还是加密狗行业中的老大哥,出现的时间最早,市面上用得最多的一种加密技术。

一:软件加密中的注意事项:

1.访问狗之后不要立即做判断,可以适当加入一些“垃圾代码”,在判断狗不正确后,不要立即提示或不提示。例如,许多共享软件是重启程序后进行验证。

2.重要的字符串不要在程序中以明文出现,应该使用算法动态生成。

例如MyDoom蠕虫的做法:

char rot13c(char c)
{
char u[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char l[] = "abcdefghijklmnopqrstuvwxyz";
char *p;
if ((p = xstrchr(u, c)) != NULL)
return u[((p-u) + 13) % 26];
else if ((p = xstrchr(l, c)) != NULL)
return l[((p-l) + 13) % 26];
else
return c;
}

void rot13(char *buf, const char *in)
{
while (*in)
*buf++ = rot13c(*in++);
*buf = 0;
}
/* "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ComDlg32\\Version" */
rot13(tmp, "Fbsgjner\\Zvpebfbsg\\Jvaqbjf\\PheeragIrefvba\\Rkcybere\\PbzQyt32\\Irefvba");
3.应该将从加密狗中读出的数据进行一定运算后,再和相应的数据做比较。

4.在不影响程序效率的情况下,尽量多写一些查狗的函数,彼此要有区别而且要使用不同的算法,多一些查狗出错的标志,让这些标志参与运算,在不同的模块中,使用不同的查狗函数。

5.试用版和正式版要分开,试用版不提供的功能,代码要删掉,使得不可能利用破解试用版来得到正式版。

6.不要使用明显的接口名称,这样会使解密者更容易找到加密点。可以利用一些没有明显含义或含义相反的名字来迷惑解密者,尤其是Dll,引出函数时甚至可以不用函数名。

7.不要固定加密点。固定的加密点容易被解密者跟踪和破解。要给查狗函数加入一定的随机性,例如,随机的执行某一API函数,或者在狗的存储区中划定一小块区域作随机读写,读写地址,读写内容,读写长度都可以是随机取值。

8.加密时要把API方式和Shell方式联合使用,这样,能够达到更高的加密强度。

(API方式:即使用加密接口函数的方式。加密接口函数主要是指调用硬件的接口函数。调用API函数进行加密,可以灵活的设置加密点,隐蔽性较好,可以具有很高的加密强度。调用API函数进行加密又称内嵌式加密。采用内嵌式加密还能够方便的做成限制使用次数,使用时间等功能的试用版软件。

接口函数的文件类型包括:OBJ,DLL,OCX,ARX。

Shell方式:外壳技术主要是针对可执行程序而言,使用外壳工具直接对可执行文件处理后,可执行程序运行时必须依赖某种安全硬件或者许可证,这种方式同时支持加密重要代码,数字常量和字符串。)

二.安全厂商建议的好的加密方案:

1.作为软件设计的一部分以文字的形式体现出来。即作为软件配置的一部分。

2。文档中要详细说明所使用的软件保护产品情况以及加密点如何设置。

3.文档中要说明使用的加密技巧。

4.能够有效控制硬件狗的初始化过程。

5.能够有效控制硬件狗的分发过程。

三.我自己的一个防止解密者分析程序的方法:

1.将真正的程序加壳(最好是少见的壳或自己写的壳,一般不要用aspack或UPX之类)后,改掉文件名和相应的扩展名,例如,改为index.dat。

2.写一个引导程序main.exe,调用WinExec函数或CreateProcess函数来运行index.dat程序,然后引导程序退出,真正的主程序index.dat开始运行。

可将此引导程序中加入大量垃圾数据例如在资源中加入多媒体数据(mp3,jpeg图片等),尽量使程序看起来大一些,然后再把此引导程序加壳,最好是和index.dat文件不一样的壳。

3.制作安装程序时,将main.exe设为主程序,包括各种快捷方式等都指向它,而index.dat只作为一个附带数据文件。


公司地址:深圳市龙岗区横岗镇
服务热线:130-669-36900   邮箱:1994226@qq.com
客服QQ:1994226  联系人:张总
版权所有:深圳卓泰科技有限公司