分析某智能管理系统加密狗

这是一个停车场软件,用的是宏狗,由于没有原狗,所以只有简单的思路。

PEID检测为Microsoft Visual Basic 5.0 / 6.0,VB程序,无壳。

试用软件,弹出提示:软件未授权!

既然有提示,那就好办。

OD加载程序:

00401234 PR> $  68 BC1A4000   push PR.00401ABC

00401239           .  E8 EEFFFFFF   call <jmp.&MSVBVM60.#100>

0040123E           .  0000          add byte ptr ds:[eax],al

00401240           .  0000          add byte ptr ds:[eax],al

根据提示找到弹出错误提示的代码处:

01394BA0            8B4424 08       mov eax,dword ptr ss:[esp+0x8]

01394BA4            8B4C24 04       mov ecx,dword ptr ss:[esp+0x4]

01394BA8            50              push eax

01394BA9            68 94723801     push IL.01387294                   ; ASCII “IL.dll”

01394BAE            51              push ecx

01394BAF            FF15 10233901   call dword ptr ds:[<&USER32.GetActiveWin>; USER32.GetActiveWindow

01394BB5            50              push eax

01394BB6            FF15 0C233901   call dword ptr ds:[<&USER32.MessageBoxA>>; USER32.MessageBoxA

01394BBC            C3              retn

由于调用的DLL是VC所写,所以还是直接调用的API,这也使得加密狗破解更加顺手,本人没学过VB,所以更喜欢VC程序了,呵呵。

继续往上查找:

01393EE9            C705 6C8C3801 0>mov dword ptr ds:[0x1388C6C],0x2

01393EF3            66:8125 0470380>and word ptr ds:[0x1387004],0xFFFE

01393EFC            68 10200000     push 0x2010

01393F01            E8 6AF1FFFF     call IL.01393070

01393F06            50              push eax

01393F07            E8 940C0000     call IL.01394BA0 //检测加密狗是否存在

01393F0C            83C4 08         add esp,0x8

01393F0F            F605 04703801 0>test byte ptr ds:[0x1387004],0x1

01393F16            75 0C     jnz short IL.01393F24  //加密狗破解关键点一

01393F18            A1 6C8C3801     mov eax,dword ptr ds:[0x1388C6C]

01393F1D            50              push eax

01393F1E            FF15 E8213901   call dword ptr ds:[<&KERNEL32.ExitProces>; kernel32.ExitProcess

此处检测加密狗是否存在,如果加密狗不存在,则弹出错误提示对话框,然后直接调用ExitProcess退出程序。由于没有加密狗,所以这里就得修改代码了。

修改完代码后继续查找:

00403947           .  52            push edx

00403948           .  56            push esi

00403949           .  6A 02         push 0x2

0040394B           .  FF90 1803000 call dword ptr ds:[eax+0x318];  //读取加密狗

00403951           .  83C4 18       add esp,0x18

00403954           .  66:85DB       test bx,bx

00403957           .  0F84 DF010000 je PR.00403B3C //加密狗破解关键点二,跳向ExitProcess

0040395D           .  A1 D8524000   mov eax,dword ptr ds:[0x4052D8]

00403962           .  85C0          test eax,eax

00403964           .  75 10         jnz short PR.00403976

00403966           .  68 D8524000   push PR.004052D8

0040396B           .  68 58234000   push PR.00402358

00403970           .  FF15 88104000 call dword ptr ds:[<&MSVBVM60.__vbaNew2>>; 

00403BFD           .  FF51 04       call dword ptr ds:[ecx+0x4]  //再一次读取加密狗

00403C00           .  A1 D8524000   mov eax,dword ptr ds:[0x4052D8]

00403C05           .  33DB          xor ebx,ebx

00403C07           .  3BC3          cmp eax,ebx

00403C09           .  895D E8       mov dword ptr ss:[ebp-0x18],ebx

00403C0C           .  895D E4       mov dword ptr ss:[ebp-0x1C],ebx

00403C0F           .  895D E0       mov dword ptr ss:[ebp-0x20],ebx

00403C12           .  895D D0       mov dword ptr ss:[ebp-0x30],ebx

00403C15           .  75 10         jnz short PR.00403C27 //加密狗破解关键点三
 

通过修改几处代码,软件界面出来了,由于没有相应的设备支持,且没有原狗,无法充分测试,所以加密狗破解到这里只能告一段落,不过只要有原狗和设备,这个软件起来也很快可以搞定。

相关推荐

发表评论

您的电子邮箱地址不会被公开。

QQ点我咨询