首页
社区
课程
招聘
[原创]驱动精灵2005简体中文专业版破解过程
发表于: 2005-12-21 15:20 13497

[原创]驱动精灵2005简体中文专业版破解过程

4nil 活跃值
13
2005-12-21 15:20
13497

【破文标题】驱动精灵2005 简体中文专业版破解过程
【破文作者】4nil
【作者邮箱】4nil@163.com
【作者主页】ak4nil.iblog.cn
【破解工具】PEID,OD,W32Dasm
【破解平台】WIN XP
【软件名称】驱动精灵2005 简体中文专业版
【软件大小】720 KB
【原版下载】http://www.onlinedown.net/soft/3450.htm
【保护方式】UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo
【软件简介】
驱动精灵是一款集驱动管理和硬件检测于一体的、专业级的驱动管理和维护工具。驱动精灵为用户提供驱动备

份、恢复、安装、删除、在线更新等实用功能。经常重装电脑的人一定有找驱动程序的经验,要不就原版驱动

程序已经不见了,就是事先没有备份起来,找起来相当费时;现在你只要利用驱动精灵的驱动程序备份功能,

在电脑重装前,将你目前电脑中的最新版本驱动程序通通备份下载,待重装完成时,再试用它的驱动程序还原

功能安装,这样,便可以节省掉许多许动程序安装的时间,并且在也不怕找不到驱动程序了。除了驱动备份恢

复功能,又提供了Outlook地址簿、邮件和IE收藏夹的备份与恢复。简体中文、繁体中文、英文、法文、西班牙

文、俄文用户界面供选择!驱动精灵对于手头上没有驱动盘的用户十分实用,用户可以通过本软件将系统中的

驱动程序提取并备份出来,达到“克隆”的效果。驱动精灵可以将所有驱动程序制作到一个可执行文件,用户

在重新安装操作系统后,可以使用这个文件一键还原所有的驱动程序。

------------------------------------------------------------------------
【破解过程】

PART 1:伪注册

Peid 查出来是UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo
用UPX通用脱壳脱之。
可以成功运行。又查了下是Borland Delphi 6.0 - 7.0的。
尝试注册,提示错误。
不管直接用OD载入
下bp MessageBoxA.
F9,运行。
用户名:4nil
注册码:12345678
确认后断了。
F8走,直到弹出消息,点个确定又回来。
继续F8,几下后就来到主程序领空了。
往上看,
0049DE62     BA 14E34900   mov edx,MyDriver.0049E314            ; ASCII "\System32

\spool\drivers\w32x86\2\riched20.dll SetActiveEditControlFont, Arial, 30"
0049DE67     E8 EC6DF6FF   call MyDriver.00404C58
0049DE6C     8D95 70FFFFFF lea edx,dword ptr ss:[ebp-90]
0049DE72     8B45 FC       mov eax,dword ptr ss:[ebp-4]
0049DE75     8B80 04030000 mov eax,dword ptr ds:[eax+304]
0049DE7B     E8 1C57FAFF   call MyDriver.0044359C
0049DE80     8B95 70FFFFFF mov edx,dword ptr ss:[ebp-90]        //假码
0049DE86     8B45 EC       mov eax,dword ptr ss:[ebp-14]        //真码
0049DE89     E8 2673F6FF   call MyDriver.004051B4
0049DE8E     85C0          test eax,eax
0049DE90     0F84 B2010000 je MyDriver.0049E048
0049DE96     8B45 FC       mov eax,dword ptr ss:[ebp-4]
0049DE99     8B80 04030000 mov eax,dword ptr ds:[eax+304]
0049DE9F     33D2          xor edx,edx
0049DEA1     E8 2657FAFF   call MyDriver.004435CC
0049DEA6     8D45 EC       lea eax,dword ptr ss:[ebp-14]
0049DEA9     E8 126DF6FF   call MyDriver.00404BC0
0049DEAE     6A 00         push 0
0049DEB0     68 68E34900   push MyDriver.0049E368               ; ASCII "Registration Success!"
0049DEB5     68 80E34900   push MyDriver.0049E380               ; ASCII " Thank you for your

support.
We will work even harder and
notify you future releases."
0049DEBA     8B45 FC       mov eax,dword ptr ss:[ebp-4]
0049DEBD     E8 7EBEFAFF   call MyDriver.00449D40
0049DEC2     50            push eax
0049DEC3     E8 849CF6FF   call <jmp.&user32.MessageBoxA>

看到了吗?这里有成功的提示,那我们看看
0049DE90     0F84 B2010000 je MyDriver.0049E048
这行判断,错误的注册码就会跳到我们刚才那里。
所以我们在0049DE80下个F2
F9运行出来再试一次,OK断下。
走到0049DE89就可以把EAX的东西复制出来了,那个就是真的注册码。
好了,第一部分搞定,为什么叫第一部分呢。。。。

PART 2:文件注册

重新启动程序,是否发现过了5秒钟又是那个注册的网址打开的,呵呵
接着程序关闭,重新开启又提示注册,说明我们的破解不完美。
它还有其他验证。

我们继续在成功的地方往下看。
0049DEC8     8B45 FC       mov eax,dword ptr ss:[ebp-4]
0049DECB     C680 45030000>mov byte ptr ds:[eax+345],0
0049DED2     B2 01         mov dl,1
0049DED4     A1 485B4600   mov eax,dword ptr ds:[465B48]
0049DED9     E8 6A7DFCFF   call MyDriver.00465C48
0049DEDE     8945 F8       mov dword ptr ss:[ebp-8],eax
0049DEE1     33C0          xor eax,eax
0049DEE3     55            push ebp
0049DEE4     68 FDDF4900   push MyDriver.0049DFFD
0049DEE9     64:FF30       push dword ptr fs:[eax]
0049DEEC     64:8920       mov dword ptr fs:[eax],esp
0049DEEF     BA 01000080   mov edx,80000001
0049DEF4     8B45 F8       mov eax,dword ptr ss:[ebp-8]
0049DEF7     E8 EC7DFCFF   call MyDriver.00465CE8
0049DEFC     B1 01         mov cl,1
0049DEFE     BA E0E34900   mov edx,MyDriver.0049E3E0            ; ASCII

"\Software\Microsoft\Windows\CurrentVersion\IPSec"
0049DF03     8B45 F8       mov eax,dword ptr ss:[ebp-8]
0049DF06     E8 457EFCFF   call MyDriver.00465D50
0049DF0B     84C0          test al,al
0049DF0D     74 0C         je short MyDriver.0049DF1B
0049DF0F     33C0          xor eax,eax
0049DF11     8945 F0       mov dword ptr ss:[ebp-10],eax
0049DF14     C745 F4 00000>mov dword ptr ss:[ebp-C],400E0000
0049DF1B     33C0          xor eax,eax
0049DF1D     55            push ebp
0049DF1E     68 7EDF4900   push MyDriver.0049DF7E
0049DF23     64:FF30       push dword ptr fs:[eax]
0049DF26     64:8920       mov dword ptr fs:[eax],esp
0049DF29     FF75 F4       push dword ptr ss:[ebp-C]
0049DF2C     FF75 F0       push dword ptr ss:[ebp-10]
0049DF2F     8D85 6CFFFFFF lea eax,dword ptr ss:[ebp-94]
0049DF35     E8 26DEF6FF   call MyDriver.0040BD60
0049DF3A     8B8D 6CFFFFFF mov ecx,dword ptr ss:[ebp-94]
0049DF40     BA 1CE44900   mov edx,MyDriver.0049E41C            ; ASCII "RISCx86"
0049DF45     8B45 F8       mov eax,dword ptr ss:[ebp-8]
0049DF48     E8 4782FCFF   call MyDriver.00466194
0049DF4D     8D95 68FFFFFF lea edx,dword ptr ss:[ebp-98]
0049DF53     8B45 FC       mov eax,dword ptr ss:[ebp-4]
0049DF56     8B80 00030000 mov eax,dword ptr ds:[eax+300]
0049DF5C     E8 3B56FAFF   call MyDriver.0044359C
0049DF61     8B8D 68FFFFFF mov ecx,dword ptr ss:[ebp-98]
0049DF67     BA 2CE44900   mov edx,MyDriver.0049E42C            ; ASCII "UserName"
0049DF6C     8B45 F8       mov eax,dword ptr ss:[ebp-8]
0049DF6F     E8 2082FCFF   call MyDriver.00466194

好像他把注册后的名字存放这里了前面的键存放的是系统的时间和软件安装的时间,
那我想肯定其他地方也有这个时间的验证把。我们就用OD查看字符串

搜索"RISCx86"果然还有,而且有很多,不过有一个地方比较特别,因为他后面也跟
了个"UserName"。直觉告诉我这里是重点,呵呵,因为一般的肯定是比较下时间什么
的。
那我们就进代码看看。

004C7F4F    .  B8 04814C00 mov eax,MyDriver.004C8104            ;  ASCII "windir"//这里下断

004C7F5C    .  BA 14814C00 mov edx,MyDriver.004C8114            ;  ASCII "\system.sys"

004C7FA8    .  BA 28814C00 mov edx,MyDriver.004C8128            ;  ASCII

"\Software\Microsoft\Windows\CurrentVersion\IPSec"

004C7FE8    .  BA 68814C00 mov edx,MyDriver.004C8168            ;  ASCII "RISCx86"

004C7FF7    .  BA 78814C00 mov edx,MyDriver.004C8178            ;  ASCII "UserName"

004C803C    .  BA 68814C00 mov edx,MyDriver.004C8168            ;  ASCII "RISCx86"

004C804B    .  BA 78814C00 mov edx,MyDriver.004C8178            ;  ASCII "UserName"

关于ASCII的几句代码。那就在最前面的地方下个断点。
这次要重新启动程序过了,我们刚才不是发现过了5秒左右系统出来注册的网站的码?
那我们就先给他注册下,然后CTRL+F2重新开始调试,F9运行,等了一会断下。

004C7F4F    .  B8 04814C00 mov eax,MyDriver.004C8104            ;  ASCII "windir" //这里断下
004C7F54    .  E8 076DF4FF call MyDriver.0040EC60
004C7F59    .  8D45 F0     lea eax,dword ptr ss:[ebp-10]
004C7F5C    .  BA 14814C00 mov edx,MyDriver.004C8114            ;  ASCII "\system.sys"
004C7F61    .  E8 1ACFF3FF call MyDriver.00404E80
004C7F66    .  8B45 F0     mov eax,dword ptr ss:[ebp-10]
004C7F69    .  E8 8217F4FF call MyDriver.004096F0
004C7F6E    .  84C0        test al,al
004C7F70    .  75 02       jnz short MyDriver.004C7F74

F8走,到004C7F70挑走就失败了。这说明什么呢,呵呵,看前面几个字符串应该知道些眉目了。
BINGO。"windir"不是系统目录吗?"\system.sys"应该就是他验证的文件把。
这个简单我们用ULTRA editor在系统目录创建一个文件叫system.sys,内容先随便写,我写了
"Crack by 4nil"。
(后面会发现其实程序没有检测其内容,所以可以新建一个记事本文件,然后改名即可)
CTRL+F2重新开始调试。
输入注册名:4nil
注册码:WDW222226-346E696C
再注册一次。
然后重新运行程序,又在刚才的地方断了,呵呵,F8走,果然不跳了,说明他没验证我们写了
什么就监测了下是否有这个文件存在。
好了这样第二部分完成了。。。。。
哈哈,还没完呢

PART 3:功能完善

的确,现在软件不会再提示你注册了,但是当你使用里面的一个功能叫“将驱动制作成EXE安
装程序”的时候,制作出来的文件在安装的时候提示要注册,
当我们输入“WDW222226-346E696C”提示不正确。呵呵,那就继续破解。

我生成一个安装程序。
查出来是UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo,
照样这样脱掉,OD载入,
运行后它的错误提示是中文的,我发现代码里面没中文,那我看看有没有英文,呵呵,发现如下
"Incorrect registration code, please verify.
Please Register, and then you may restore your

drivers"
肯定的错误提示拉,所以下个断,问我怎么找到的,呵呵,还是OD的字符串查看拉。

重新输入注册码,断了。
那我们看看上面点,有个字符串"WDW",这个不是我们那个的开头几位吗?下个断,重新输入注册码
断下

代码如下:
004635E0    .  B8 5C3D4600 mov eax,NVIDIA_G.00463D5C            ;  ASCII "WDW"
004635E5    .  E8 DE16FAFF call NVIDIA_G.00404CC8        //验证我们的注册码是否含"WDW"
004635EA    .  85C0        test eax,eax
004635EC    .  7E 3F       jle short NVIDIA_G.0046362D
004635EE    .  8D95 48FDFE>lea edx,dword ptr ss:[ebp+FFFEFD48]
004635F4    .  8B45 FC     mov eax,dword ptr ss:[ebp-4]
004635F7    .  8B80 000300>mov eax,dword ptr ds:[eax+300]
004635FD    .  E8 AA66FDFF call NVIDIA_G.00439CAC        //得到我们的假注册码
00463602    .  8B85 48FDFE>mov eax,dword ptr ss:[ebp+FFFEFD48]
00463608    .  50          push eax
00463609    .  8D95 44FDFE>lea edx,dword ptr ss:[ebp+FFFEFD44]
0046360F    .  B8 86170000 mov eax,1786        //这个是一个常数
00463614    .  E8 CB55FAFF call NVIDIA_G.00408BE4 //转换成字符串“6022”
00463619    .  8B85 44FDFE>mov eax,dword ptr ss:[ebp+FFFEFD44]
0046361F    .  5A          pop edx
00463620    .  E8 A316FAFF call NVIDIA_G.00404CC8 //验证我们的注册码是否含“6022”
00463625    .  85C0        test eax,eax

OK,这下知道了吧,你输入WDW6022就可以安装了,不过为了和我们刚才的注册码结合起来,我们
可以用这个WDW222226-346E696C6022。

总结一下:
用户名:4nil
注册码:WDW222226-346E696C6022

另外在注册前要在WINDOWS目录下新建一个文件叫“system.sys”.
完美破解,谢谢观赏。

------------------------------------------------------------------------
【破解总结】

注册码是通用的,所以注册机也不写,不过算法很简单的。可以自己看看。

------------------------------------------------------------------------
【版权声明】本文纯属技术交流, 转载请注明作者信息并保持文章的完整, 谢谢!


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 8
支持
分享
最新回复 (14)
雪    币: 207
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
^_^来学习。
2005-12-21 16:59
0
雪    币: 389
活跃值: (912)
能力值: ( LV9,RANK:770 )
在线值:
发帖
回帖
粉丝
3
顶一下.
2005-12-21 22:35
0
雪    币: 100
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
严重支持啊
2005-12-21 23:16
0
雪    币: 671
活跃值: (723)
能力值: ( LV9,RANK:1060 )
在线值:
发帖
回帖
粉丝
5
OK!

作者低估了楼主的耐心!
2005-12-22 09:46
0
雪    币: 313
活跃值: (440)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
6
注册机的过程是这样的,

len=strlen(name);
printf("S/N:WDW2222%d-",22+len);
for(int i=0;i<len;i++)
        printf("%X",name[i]);
printf("6022\n");
2005-12-22 09:56
0
雪    币: 3841
活跃值: (4412)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
7
支持,学习!
2005-12-22 10:21
0
雪    币: 212
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
不错! 我缺少的就耐心与时间!帮楼主顶
看来我们这些用DELPHI写东西要小心了
2005-12-22 10:52
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
9
好耐心,好cracker!
2005-12-22 11:19
0
雪    币: 269
活跃值: (51)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
不错,继续努力吧!
2005-12-22 14:22
0
雪    币: 162
活跃值: (63)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
好文章,顶一下
2005-12-22 16:15
0
雪    币: 234
活跃值: (104)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
这个软件以前好像叫“驱动专家”,是免费的,不知什么时候来了灵感,改了个名字便共享软件了。
老的免费版本经常用,就一个单独的exe文件,绿色软件,还不错!
2005-12-22 17:25
0
雪    币: 237
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
学习!好东西
2005-12-22 20:50
0
雪    币: 248
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
14
正适合我等菜鸟啊。支持!
2005-12-22 22:31
0
雪    币: 675
活跃值: (2203)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
15
大佬请教一下驱动精灵的升级包解密问题,明文在哪,怎么找呀,找了好久,没找到呢
2021-10-18 16:41
0
游客
登录 | 注册 方可回帖
返回
//