ihhvqu 发表于 2005-11-3 11:41:07

私人保险箱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

飘云 发表于 2005-11-3 12:04:34

鼓励!
继续努力!

vivian 发表于 2005-11-3 12:49:07

支持!

ihhvqu 发表于 2005-11-3 15:43:43

多谢飘云大哥的支持!!!!!!1
   飘云       万岁!!

rdsnow 发表于 2005-11-3 15:46:45

支持

风球 发表于 2005-11-3 18:41:29

支持```正在学习算法分析中。。。还没入门呢```哈```

冷血书生 发表于 2005-11-3 22:12:50

记得这个东西可能有暗桩啊!

lzq1973 发表于 2005-12-29 15:38:01

学习加实践

al747 发表于 2006-1-9 09:41:08

比我牛,我还没入门呢!

bbyl 发表于 2006-2-2 00:52:33

厉害呀,我才刚开始学,看来还有好长的路要走呀,跟着试一下,学习中.....谢谢!
页: [1] 2
查看完整版本: 私人保险箱V5.76算法分析