加密狗技术网 加密狗破解 破解彩虹狗GS-MH

破解彩虹狗GS-MH

我们先看看彩虹GS-MH狗,这个狗的API定义如下: 所有数据都定义在MH_DLL_PARA中typedef …

我们先看看彩虹GS-MH狗,这个狗的API定义如下:

所有数据都定义在MH_DLL_PARA中
typedef struct _MH_DLL_PARA
{
WORD Command; //命令码
WORD Cascade; //级联顺序号
WORD DogAddr; //首地址
WORD DogBytes; //操作字节数
DWORD DogPassword; //读写密码
DWORD DogResult; //变换结果
DWORD NewPassword //新密码
BYTE DogData[200]; //输入输出数据
} MH_DLL_PARA;

结构成员Command是命令码,定义如下
DogCheck 1 查狗
ReadDog 2 读狗
WriteDog 3 写狗
DogConvert 4 变换
GetCurrentNo 5 取流水号
EnableShare 6 允许共享
DisableShare 7 停止共享
SetDogCascade 8 设置级联码
SetNewPassword 9 设置新密码

破解关键是200字节数据和狗变换,也就是2号功能和4号功能。和以前讨论过的R4狗一样,这个狗的API也是多功能函数,根据参数完成不同功能。此文重在讨论破解方法而不是具体怎么破解,所以不给出怎么找到狗操作的CALL地址以及相应数据地址方法。

找到任何一个读狗的CALL,将DogAddr改为0,DogBytes改为200,读完狗在DogDat就可以得到200字的狗内数据,破解时将读狗操作转为查这个数据表就可以了。

关于4号功能,如果频繁使用,那一定加密程序中会有一个码表,如果使用不多,可以直接记录变换前后数据形成自己的码表。

关于写狗等操作的处理相对简单,不再赘述。

当完成上述工作后,我们的破解程序一定是按照有狗时的流程在运行,而不会是被强行修改执行。

简单举个例子,比如我的加密程序要用到一个公式:y=k*x+1,而加密者将常量K放到了狗中,调用公式前读狗,成功返回数据及一个标志,前文提到的爆破方法修改程序流程,必然导致得到错误的y值!

所以对软件狗的破解,了解其API是绝对第一重要的,在API中能看到程序与狗的数据交换。(除外S4,R5这些将程序放到狗中执行的新一代加密狗),追踪到狗操作的API,整理出(或者无狗时猜测出)重要的数据,完全仿真API操作,这才是我认为软件狗的破解方法。
本文来自网络,不代表加密狗技术网立场,转载请注明出处:http://www.crackgou.com/pojie/64.html

作者: admin

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

联系我们

000-00000000

在线咨询: QQ交谈

邮箱: wolfree@qq.com

工作时间:8:00-23:00

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部