教你如何破解加密狗
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
教你如何破解加密狗
hasp 系列加密狗破解有的朋友认为很难,其实不然,只要有足够的耐心和技术基础。是没有问题的。--------------------------------------------------------------------------------------------------------
004015FF |. 8D95 ACFBFFFF lea edx,[local.277]
00401605 |. 52 push edx 00401606 |. 8B85 F8FBFFFF mov eax,[local.258]
0040160C |. 50 push eax 0040160D |. 8B8D A8FBFFFF mov ecx,[local.278]
00401613 |. 51 push ecx 00401614 |. 68 D4E54000 push APP.0040E5D
4 ; ASCII "EN"
00401619 |. 8B55 E8 mov edx,[local.6] 0040161C |. 52 push edx 0040161D |. E8 8E230000 call n> ;这个CALL只要一执行,就死掉,所以必须跟进 00401622 |. 8945 EC mov [local.5],eax 00401625 |. 8B45 EC mov eax,[local.5] 00401628 |> 8B4D F4 mov ecx,[local.3] 0040162B |. 64:890D 00000000 mov fs:[0],ecx 00401632 |. 8B4D E4 mov ecx,[local.7] 00401635 |. E8 C72D0000 call APP.00404401 0040163A |. 8BE5 mov esp,ebp 0040163C |. 5D pop ebp 0040163D \. C3 retn -------------------------------------------------------------------------------------------------------- 6、跟进后出现一下代码,看第一行,就是0040161D 处调用的函数,再看右面的注释,心跳加快,InitSy stem,从名字上你都能猜想它会干什么,对,读狗的相关代码就应该在这儿初始化(当然还要初始化其他信息),继续跟进 -------------------------------------------------------------------------------------------------------- 004039B0 $- FF25 C8554000 jmp ds:[<&user_I n>] ; InitSystem 004039B6 $- FF25 C4554000 jmp ds:[<&user_Star>] ; St artProgram 004039BC $- FF25 C0554000 jmp ds:[<&user_Mai>] 004039C2 $- FF25 AC544000 jmp ds:[<&XXX_DLL.#3>] 004039C8 $- FF25 A8544000 jmp ds:[<&XXX_DLL.#47>] -------------------------------------------------------------------------------------------------------- 7、跟进后,代码是一系列的IsBadReadPtr,由此判断该处是初始化内存工作,离读狗还用有一段距离。部分代码如下,还有更多的IsBadReadPtr,没必要就不贴了,贴一点提示思路即可。 一直按F8,痛苦的是这段代码中有个循环,要循环20多次,稍不留神就结束循环,立刻进入另一个关键CALL,程序又死掉。所以在这儿又费了我很多时间。 -------------------------------------------------------------------------------------------------------- 00EF5940 > 55 push ebp ;InitSyst em函数 00EF5941 8BEC mov ebp,esp 00EF5943 81EC 280C0000 sub esp,0C28 00EF5949 A1 6C2EF100 mov eax,ds:[F12E6C] 00EF594E 8945 E0 mov ss:[ebp-20],eax 00EF5951 57 push edi 00EF5952 8B45 0C mov eax,ss:[ebp+C] 00EF5955 50 push eax 00EF5956 68 6848F100 push user_dll.00F14868 00EF595B E8 34F70000 call 00EF5960 83C4 08 add esp,8 00EF5963 B9 583AF100 mov ecx,user_dll.00F13A58 00EF5968 85C9 test ecx,ecx 00EF596A 74 46 je short user_dll.00EF59B2 00EF596C 6A 01 push 1 00EF596E 68 583AF100 push user_dll.00F13A58 00EF5973 FF15 1072F000 call ds:[<&KERNEL32.IsBadWritePt r>] ; kernel32.IsBadWritePtr 00EF5979 85C0 test eax,eax 00EF597B 75 35 jnz short user_dll.00EF59B2 00EF597D 837D 10 00 cmp dword ptr ss:[ebp+10],0 00EF5981 74 26 je short user_dll.00EF59A9 00EF5983 6A 01 push 1 00EF5985 8B55 10 mov edx,ss:[ebp+10] 00EF5988 52 push edx 00EF5989 FF15 1472F000 call ds:[<&KERNEL32.IsBadReadPt r>] ; kernel32.IsBadReadPtr 00EF598F 85C0 test eax,eax 00EF5991 75 16 jnz short user_dll.00EF59A9 00EF5993 68 04010000 push 104 00EF5998 8B45 10 mov eax,ss:[ebp+10] 00EF599B 50 push eax 00EF599C 68 583AF100 push user_dll.00F13A58