私人保险箱V5.76算法分析
私人保险箱V5.76算法分析【破文作者】ihhvqu
【所属组织】
【作者主页】http://www.chinaocn.net
【 E-mail 】[email protected]
【 作者QQ 】274861816
【文章题目】私人保险箱V5.76算法分析
【软件名称】私人保险箱V5.76
【下载地址】http://www3.skycn.com/soft/14176.html
【加密方式】aspack2.12
【加壳方式】pe-scan
【破解工具】pe-scan,flyOD
【软件限制】我不知道,因为我没用
【破解平台】win2000server
=======================================================================================================
【软件简介】
略...
=======================================================================================================
【文章简介】
为了学习算法,这个我看很久(下载以来已经很久了),并且参考了飘云大哥的算法教学,这个软件他和教学中的第4课的算法非常相近,简直就
是一模一样
=======================================================================================================
【解密过程】
本机机器码:BFEBFBFF
输入假码:ihhvqu
提示"注册失败"
Pe-Scan一查aspack2.12,就用它一下就脱了。运行,一切正常...
OD载入:
查找字符串,"注册失败",双击来到:
******************************************************************************
004DAB7F 55 push ebp ; 在这里下断
004DAB80 68 71AC4D00 push dump.004DAC71
004DAB85 64:FF30 push dword ptr fs:
004DAB88 64:8920 mov dword ptr fs:,esp
004DAB8B 8D55 FC lea edx,dword ptr ss:
004DAB8E 8B86 04040000mov eax,dword ptr ds:
004DAB94 E8 CFADF6FF call dump.00445968
004DAB99 8B45 FC mov eax,dword ptr ss: ; 假码送eax
004DAB9C 50 push eax ; 入栈
004DAB9D 6A 03 push 3
004DAB9F 8D45 F8 lea eax,dword ptr ss:
004DABA2 50 push eax
004DABA3 8D45 F4 lea eax,dword ptr ss:
004DABA6 E8 B5AFFEFF call dump.004C5B60 ; 算出机器码,存在edx中
004DABAB 8B45 F4 mov eax,dword ptr ss: ; 机器码送eax
004DABAE B9 02000000 mov ecx,2 ; ecx赋初值
004DABB3 BA 01000000 mov edx,1 ; edx赋初值
004DABB8 E8 7BB0FEFF call dump.004C5C38 ; 算法CALL
004DABBD 8B55 F8 mov edx,dword ptr ss:
004DABC0 58 pop eax ; 弹出假码到eax
004DABC1 E8 C6A4F2FF call dump.0040508C ; ??????
004DABC6 75 66 jnz short dump.004DAC2E ; 关键跳转不跳则over
004DABC8 B2 01 mov dl,1
004DABCA A1 847A4600 mov eax,dword ptr ds:
004DABCF E8 B0CFF8FF call dump.00467B84
004DABD4 8BD8 mov ebx,eax
004DABD6 BA 01000080 mov edx,80000001
004DABDB 8BC3 mov eax,ebx
004DABDD E8 42D0F8FF call dump.00467C24
004DABE2 B1 01 mov cl,1
004DABE4 BA 88AC4D00 mov edx,dump.004DAC88 ; ASCII "Software\SafeBox"
004DABE9 8BC3 mov eax,ebx
004DABEB E8 78D1F8FF call dump.00467D68
004DABF0 8D55 F0 lea edx,dword ptr ss:
004DABF3 8B86 04040000mov eax,dword ptr ds:
004DABF9 E8 6AADF6FF call dump.00445968
004DABFE 8B4D F0 mov ecx,dword ptr ss:
004DAC01 BA A4AC4D00 mov edx,dump.004DACA4 ; ASCII "RegNum"
004DAC06 8BC3 mov eax,ebx
004DAC08 E8 87D6F8FF call dump.00468294
004DAC0D 8BC3 mov eax,ebx
004DAC0F E8 F092F2FF call dump.00403F04
004DAC14 6A 00 push 0
004DAC16 B9 ACAC4D00 mov ecx,dump.004DACAC ; 私人保险箱
004DAC1B BA B8AC4D00 mov edx,dump.004DACB8 ; 注册成功
004DAC20 A1 541C4E00 mov eax,dword ptr ds:
004DAC25 8B00 mov eax,dword ptr ds:
004DAC27 E8 BCBAF8FF call dump.004666E8
004DAC2C EB 18 jmp short dump.004DAC46
004DAC2E 6A 00 push 0
004DAC30 B9 ACAC4D00 mov ecx,dump.004DACAC ; 私人保险箱
004DAC35 BA C4AC4D00 mov edx,dump.004DACC4 ; 注册失败
*****************************************************************************************
从004DABB8一行F7追入:
004C5C38 55 push ebp
004C5C39 8BEC mov ebp,esp
004C5C3B 83C4 F0 add esp,-10
004C5C3E 53 push ebx
004C5C3F 56 push esi
004C5C40 57 push edi
004C5C41 33DB xor ebx,ebx
004C5C43 895D F0 mov dword ptr ss:,ebx
004C5C46 894D F8 mov dword ptr ss:,ecx
004C5C49 8BF2 mov esi,edx ;esi赋初值为1
004C5C4B 8945 FC mov dword ptr ss:,eax
004C5C4E 8B7D 08 mov edi,dword ptr ss:
004C5C51 33C0 xor eax,eax ; eax清零
004C5C53 55 push ebp
004C5C54 68 CB5C4C00 push dump.004C5CCB
004C5C59 64:FF30 push dword ptr fs:
004C5C5C 64:8920 mov dword ptr fs:,esp
004C5C5F 8BC7 mov eax,edi
004C5C61 E8 2AF0F3FF call dump.00404C90
004C5C66 8B45 FC mov eax,dword ptr ss: ; 机器码送eax
004C5C69 E8 DAF2F3FF call dump.00404F48
004C5C6E 84C0 test al,al ; al中为机器码长度
004C5C70 76 43 jbe short dump.004C5CB5 ; 是否有机器码
004C5C72 8845 F7 mov byte ptr ss:,al
004C5C75 B3 01 mov bl,1
004C5C77 8D45 F0 lea eax,dword ptr ss:
004C5C7A 33D2 xor edx,edx ; 清0
004C5C7C 8AD3 mov dl,bl
004C5C7E 8B4D FC mov ecx,dword ptr ss: ; 机器码送ecx
004C5C81 8A5411 FF mov dl,byte ptr ds: ; 逐位取机器码的送到dl中
004C5C85 8BCE mov ecx,esi
004C5C87 C1E9 08 shr ecx,8 ; 算术右移8位
004C5C8A 32D1 xor dl,cl
004C5C8C E8 DFF1F3FF call dump.00404E70 ; 转换为ASCii码
004C5C91 8B55 F0 mov edx,dword ptr ss: ; 转换后送到edx中
004C5C94 8BC7 mov eax,edi
004C5C96 E8 B5F2F3FF call dump.00404F50
004C5C9B 33C0 xor eax,eax
004C5C9D 8AC3 mov al,bl
004C5C9F 8B17 mov edx,dword ptr ds:
004C5CA1 0FB64402 FF movzx eax,byte ptr ds: ; 逐位取机器码ASCII码
004C5CA6 03F0 add esi,eax ; esi=esi+eax
004C5CA8 0FAF75 F8 imul esi,dword ptr ss: ; esi=esi*2可以用? 查看,我看了很多次都是2
004C5CAC 0375 0C add esi,dword ptr ss: ; esi=esi+3 可以用? 查看
004C5CAF 43 inc ebx ; 加一,准备取下一位
004C5CB0 FE4D F7 dec byte ptr ss:
004C5CB3^ 75 C2 jnz short dump.004C5C77 ; 没取完则继续取
004C5CB5 33C0 xor eax,eax
004C5CB7 5A pop edx
004C5CB8 59 pop ecx
004C5CB9 59 pop ecx
004C5CBA 64:8910 mov dword ptr fs:,edx ; edx=12fc8c
004C5CBD 68 D25C4C00 push dump.004C5CD2
004C5CC2 8D45 F0 lea eax,dword ptr ss:
004C5CC5 E8 C6EFF3FF call dump.00404C90
004C5CCA C3 retn
算法总结:
已经比较清楚了,进行了一个简单的运算(对我来说非常难),不过总结还有点不好表达....大家就看代码吧...
=======================================================================================================
【解密心得】
自己太菜了,什么都不会,想哭....
=======================================================================================================
【破解声明】我是一个小小菜虫子,文章如有错误,请高手指正!特别感谢飘云大哥!
【版权声明】本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
=======================================================================================================
文章完成于2005-11-3 11:34:15 鼓励!
继续努力! 支持! 多谢飘云大哥的支持!!!!!!1
飘云 万岁!! 支持 支持```正在学习算法分析中。。。还没入门呢```哈``` 记得这个东西可能有暗桩啊! 学习加实践 比我牛,我还没入门呢! 厉害呀,我才刚开始学,看来还有好长的路要走呀,跟着试一下,学习中.....谢谢!
页:
[1]
2