老文章档案 · 2003 年

家庭银行家(HomeBanker) V2.0 b53算法分析

天下资讯 · 破解文章 · 2003-06-25 · 作者:lordor 人气: · 出处:嬴政天下整理收藏)

家庭银行家(HomeBanker) V2.0 b53

软件大小: 3331 KB

软件语言: 简体中文

软件类别: 国产软件 / 共享版 / 信息管理

应用平台: Win9x/NT/2000/XP

界面预览: 无

加入时间: 2003-02-28 08:59:32

下载次数: 15327

推荐等级:

联 系 人: hb_software@sohu.com

开 发 商: http://www.homebanker.net/

软件介绍:

这是一款实用、时尚、高效的家庭理财软件。没有繁杂的会计概念,没有令人费解的账簿概念,一切都是那么自然,为您实现了电子化的家庭收支记录。从每一个细节上用户都能感受到我们的匠心独运。主要特性有:1. 日常收支情况记录(A 方便、快捷、迅速的输入方式 B 功能强大的接近自然语言的收支查询功能 C 数据可以按照类别归类分析 D 功能强大的图表分析 E每日收支记录统计分析 F 灵活、自由、全面的各项设置) 2. 定期储蓄记录 3. 人民币活期储蓄记录 4. 不同账户之间转账数据的记录 5. 信用卡资料记录 6. 股票买卖记录 7. 股票持仓统计 8. 备忘录功能 9. 通讯录功能 10. 强大的设置功能可以让软件对大程度的适应您的使用要求 11. 收支数据的导出功能 12. 数据备份功能 13. 能够自动检查互联网上软件是否有更新版本存在 14. 灵活的软件结构(插件机制)便于用户扩充功能。(本安装程序可以用于以前版本的升级)

一、脱壳后在w32Dasm中找“注册失败,请检查您的注册码是否输入正确”出错信息。

* Referenced by a (U)nconditional or (C)onditional Jump at Address:

|:0073607F(C)

|

:007360E6 52 push edx

:007360E7 6567D05D73 rcr byte ptr gs:[di+73], 01

:007360EC 00A004450056 add byte ptr [eax+56004504], ah

:007360F2 00047552656700 add byte ptr [2*esi+00676552], al

:007360F9 008BC0558BEC add byte ptr [ebx+EC8B55C0], cl

:007360FF 6A00 push 00000000

:00736101 6A00 push 00000000

:00736103 53 push ebx

:00736104 8BD8 mov ebx, eax

:00736106 33C0 xor eax, eax

:00736108 55 push ebp

:00736109 68AB617300 push 007361AB

:0073610E 64FF30 push dword ptr fs:[eax]

:00736111 648920 mov dword ptr fs:[eax], esp

:00736114 8D55FC lea edx, dword ptr [ebp-04]

:00736117 8B83F4020000 mov eax, dword ptr [ebx+000002F4]

:0073611D E89A51D0FF call 0043B2BC =====>取注册码

:00736122 8B45FC mov eax, dword ptr [ebp-04]===>注册码入eax

:00736125 50 push eax

:00736126 8D55F8 lea edx, dword ptr [ebp-08]

:00736129 8B83F0020000 mov eax, dword ptr [ebx+000002F0]

:0073612F E88851D0FF call 0043B2BC

:00736134 8B55F8 mov edx, dword ptr [ebp-08]=======>用户名入edx

:00736137 33C9 xor ecx, ecx

:00736139 8B8300030000 mov eax, dword ptr [ebx+00000300]

:0073613F E874DFF5FF call 006940B8=============>关键call(1)

:00736144 84C0 test al, al

:00736146 751A jne 00736162==============>关键跳

:00736148 6A10 push 00000010

* Possible StringData Ref from Code Obj ->"家庭银行家"

|

:0073614A B9B8617300 mov ecx, 007361B8

* Possible StringData Ref from Code Obj ->"注册失败,请检查您的注册码是否输入正确。"

|

:0073614F BAC4617300 mov edx, 007361C4

:00736154 A1E8747500 mov eax, dword ptr [007574E8]

:00736159 8B00 mov eax, dword ptr [eax]

:0073615B E8A847D2FF call 0045A908

:00736160 EB2E jmp 00736190

二、向上看,找关键call,如下:

---------------------------------------------------

关键call(1)

006940C4 |. 895D F4 MOV DWORD PTR SS:[EBP-C],EBX

006940C7 |. 894D F8 MOV DWORD PTR SS:[EBP-8],ECX

006940CA |. 8955 FC MOV DWORD PTR SS:[EBP-4],EDX ; 用户名lordor入栈

006940CD |. 8BD8 MOV EBX,EAX

006940CF |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 用户名lordor入eax

006940D2 |. E8 3904D7FF CALL UNPACKED.00404510

006940D7 |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]

006940DA |. E8 3104D7FF CALL UNPACKED.00404510

006940DF |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8] ; 注册码654321入eax

006940E2 |. E8 2904D7FF CALL UNPACKED.00404510

006940E7 |. 33C0 XOR EAX,EAX

006940E9 |. 55 PUSH EBP

006940EA |. 68 A2416900 PUSH UNPACKED.006941A2

006940EF |. 64:FF30 PUSH DWORD PTR FS:[EAX]

006940F2 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP

006940F5 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 用户名lordor入eax

006940F8 |. E8 5F02D7FF CALL UNPACKED.0040435C ; 取位数

006940FD |. 3B43 3C CMP EAX,DWORD PTR DS:[EBX+3C] ; 是否为25位

00694100 |. 7F 19 JG SHORT UNPACKED.0069411B

00694102 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 用户名lordor入eax

00694105 |. E8 5202D7FF CALL UNPACKED.0040435C ; 取位数

0069410A |. 3B43 40 CMP EAX,DWORD PTR DS:[EBX+40] ; 是否为3位

0069410D |. 7C 0C JL SHORT UNPACKED.0069411B

0069410F |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8] ; 注册码入eax

00694112 |. E8 4502D7FF CALL UNPACKED.0040435C ; 取位数

00694117 |. 85C0 TEST EAX,EAX ; 判断是否为0

00694119 |. 75 04 JNZ SHORT UNPACKED.0069411F

0069411B |> 33DB XOR EBX,EBX

0069411D |. EB 60 JMP SHORT UNPACKED.0069417F

0069411F |> 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]

00694122 |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8] ; 注册码入eax

00694125 |. E8 7A5DD7FF CALL UNPACKED.00409EA4 ; 把注册码保存到019446dc

0069412A |. 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C] ; 注册码入edx

0069412D |. 8D45 08 LEA EAX,DWORD PTR SS:[EBP+8]

00694130 |. E8 3F00D7FF CALL UNPACKED.00404174

00694135 |. 8D4D F0 LEA ECX,DWORD PTR SS:[EBP-10]

00694138 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4] ; 用户名lordor入edx

0069413B |. 8BC3 MOV EAX,EBX

0069413D |. E8 66FCFFFF CALL UNPACKED.00693DA8 ; 关键call(2),据用户名产品真注册码

00694142 |. 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10] ; 真码00c943611d42入eax

00694145 |. 8B55 08 MOV EDX,DWORD PTR SS:[EBP+8] ; 假码654321入edx

00694148 |. E8 CF5DD7FF CALL UNPACKED.00409F1C ; 关键比较

0069414D |. 85C0 TEST EAX,EAX

0069414F |. 74 04 JE SHORT UNPACKED.00694155

00694151 |. 33DB XOR EBX,EBX

00694153 |. EB 2A JMP SHORT UNPACKED.0069417F

00694155 |> \8D43 38 LEA EAX,DWORD PTR DS:[EBX+38]

00694158 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]

0069415B |. E8 D0FFD6FF CALL UNPACKED.00404130

00694160 |. 8D43 44 LEA EAX,DWORD PTR DS:[EBX+44]

00694163 |. 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8]

00694166 |. E8 C5FFD6FF CALL UNPACKED.00404130

0069416B |. 8D43 4C LEA EAX,DWORD PTR DS:[EBX+4C]

0069416E |. 8B55 08 MOV EDX,DWORD PTR SS:[EBP+8]

00694171 |. E8 BAFFD6FF CALL UNPACKED.00404130

00694176 |. 8BC3 MOV EAX,EBX

00694178 |. E8 B7010000 CALL UNPACKED.00694334

0069417D |. B3 01 MOV BL,1

0069417F |> 33C0 XOR EAX,EAX

00694181 |. 5A POP EDX

00694182 |. 59 POP ECX

00694183 |. 59 POP ECX

00694184 |. 64:8910 MOV DWORD PTR FS:[EAX],EDX

00694187 |. 68 A9416900 PUSH UNPACKED.006941A9

0069418C |> 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]=======>真码在stack是的地址入eax

0069418F |. BA 04000000 MOV EDX,4

00694194 |. E8 67FFD6FF CALL UNPACKED.00404100===============>把在内存中的注册信息清空

00694199 |. 8D45 08 LEA EAX,DWORD PTR SS:[EBP+8]

0069419C |. E8 3BFFD6FF CALL UNPACKED.004040DC

006941A1 \. C3 RETN

006941A2 .^ E9 11F9D6FF JMP UNPACKED.00403AB8

006941A7 .^ EB E3 JMP SHORT UNPACKED.0069418C

006941A9 . 8BC3 MOV EAX,EBX

006941AB . 5B POP EBX

006941AC . 8BE5 MOV ESP,EBP

006941AE . 5D POP EBP

006941AF . C2 0400 RETN 4

-------------------------------------------------

关键call(2)

00693DD6 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; lordor入eax

00693DD9 |. E8 7E05D7FF CALL UNPACKED.0040435C ; 取位数

00693DDE |. 3B46 3C CMP EAX,DWORD PTR DS:[ESI+3C] ; 是否为25位

00693DE1 |. 7F 0D JG SHORT UNPACKED.00693DF0

00693DE3 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; lordor入eax

00693DE6 |. E8 7105D7FF CALL UNPACKED.0040435C ; 取位数

00693DEB |. 3B46 40 CMP EAX,DWORD PTR DS:[ESI+40] ; 是否为3位

00693DEE |. 7D 0C JGE SHORT UNPACKED.00693DFC

00693DF0 |> 8BC7 MOV EAX,EDI

00693DF2 |. E8 E502D7FF CALL UNPACKED.004040DC

00693DF7 |. E9 9F000000 JMP UNPACKED.00693E9B

00693DFC |> 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; lordor入eax

00693DFF |. E8 5805D7FF CALL UNPACKED.0040435C ; 取用户名的位数

00693E04 |. 8BD8 MOV EBX,EAX ; 把位数保存到ebx

00693E06 |. EB 31 JMP SHORT UNPACKED.00693E39

--------以下为把用户名转换为数字-------------

00693E08 |> 8B45 FC /MOV EAX,DWORD PTR SS:[EBP-4] ; lordor入eax

00693E0B |. 8A4418 FF |MOV AL,BYTE PTR DS:[EAX+EBX-1] ; 用户名第几位入al,此为从最后一位起,ebx为位数

00693E0F |. 25 FF000000 |AND EAX,0FF ; 与0ffand运算,即al保留,其它清0

00693E14 |. 33D2 |XOR EDX,EDX ; edx清0

00693E16 |. 52 |PUSH EDX ; 保存edx

00693E17 |. 50 |PUSH EAX ; 保存eax

00693E18 |. 8B46 58 |MOV EAX,DWORD PTR DS:[ESI+58] ; 把值C7BC0D36入eax

00693E1B |. 8B56 5C |MOV EDX,DWORD PTR DS:[ESI+5C] ; 把值0000025C入edx

00693E1E |. E8 763BD7FF |CALL UNPACKED.00407999 ; 产生一个数,保存在eax,关键,call(3),此功能为把用户名据密码表译成数字

00693E23 |. 52 |PUSH EDX ; /Arg2

00693E24 |. 50 |PUSH EAX ; |Arg1

00693E25 |. 8D45 E4 |LEA EAX,DWORD PTR SS:[EBP-1C] ; |

00693E28 |. E8 1F67D7FF |CALL UNPACKED.0040A54C ; \把eax的值转换为十进制

00693E2D |. 8B55 E4 |MOV EDX,DWORD PTR SS:[EBP-1C] ; 产生的两位数,入edx

00693E30 |. 8D45 F4 |LEA EAX,DWORD PTR SS:[EBP-C]

00693E33 |. E8 2C05D7FF |CALL UNPACKED.00404364 ; 最后把译成的数字成串,此为864418864450

00693E38 |. 4B |DEC EBX ; ebx减1

00693E39 |> 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; lordor入eax

00693E3C |. E8 1B05D7FF |CALL UNPACKED.0040435C ; 取用户名的位数

00693E41 |. 83E8 06 |SUB EAX,6 ; eax减6

00693E44 |. 3BD8 |CMP EBX,EAX ; 比较ebx(=6)与eax(=0)

00693E46 |. 7C 04 |JL SHORT UNPACKED.00693E4C

00693E48 |. 85DB |TEST EBX,EBX ; 测试ebx是否为0

00693E4A |.^ 7F BC \JG SHORT UNPACKED.00693E08

00693E4C |> 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]

00693E4F |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C] ; 串864418864450入eaxSS

00693E52 |. E8 F925D7FF CALL UNPACKED.00406450

00693E57 |. 8945 E8 MOV DWORD PTR SS:[EBP-18],EAX

00693E5A |. 8955 EC MOV DWORD PTR SS:[EBP-14],EDX

00693E5D |. 8B5E 50 MOV EBX,DWORD PTR DS:[ESI+50]

00693E60 |. 85DB TEST EBX,EBX

00693E62 |. 7F 11 JG SHORT UNPACKED.00693E75

00693E64 |. FF75 EC PUSH DWORD PTR SS:[EBP-14] ; /Arg2

00693E67 |. FF75 E8 PUSH DWORD PTR SS:[EBP-18] ; |Arg1

00693E6A |. 8BD7 MOV EDX,EDI ; |

00693E6C |. 33C0 XOR EAX,EAX ; |

00693E6E |. E8 4967D7FF CALL UNPACKED.0040A5BC ; \unpacked.0040A5BC

00693E73 |. EB 26 JMP SHORT UNPACKED.00693E9B

00693E75 |> FF75 EC PUSH DWORD PTR SS:[EBP-14] ; /Arg2

00693E78 |. FF75 E8 PUSH DWORD PTR SS:[EBP-18] ; |Arg1

00693E7B |. 8BD7 MOV EDX,EDI ; |

00693E7D |. 8BC3 MOV EAX,EBX ; |

00693E7F |. E8 3867D7FF CALL UNPACKED.0040A5BC ; 产生真码,过了这行可得真码

00693E84 |. 8B07 MOV EAX,DWORD PTR DS:[EDI] ; 真码00C943611D42入eax

00693E86 |. E8 D104D7FF CALL UNPACKED.0040435C

00693E8B |. 8BC8 MOV ECX,EAX

00693E8D |. 2B4E 50 SUB ECX,DWORD PTR DS:[ESI+50]

00693E90 |. 8B56 50 MOV EDX,DWORD PTR DS:[ESI+50]

00693E93 |. 42 INC EDX



-----------------------------------------------

关键call(3)

0040799F |. 8B5C24 14 MOV EBX,DWORD PTR SS:[ESP+14] ; 注册码一位的十六进制入ebx

004079A3 |. 8B4C24 18 MOV ECX,DWORD PTR SS:[ESP+18]

004079A7 |. 0BC9 OR ECX,ECX

004079A9 |. 75 08 JNZ SHORT UNPACKED.004079B3

004079AB |. 0BD2 OR EDX,EDX ; edx进行or运算

004079AD |. 74 5D JE SHORT UNPACKED.00407A0C

004079AF |. 0BDB OR EBX,EBX

004079B1 |. 74 59 JE SHORT UNPACKED.00407A0C

004079B3 |> 0BD2 OR EDX,EDX

004079B5 |. 79 0A JNS SHORT UNPACKED.004079C1

004079B7 |. F7DA NEG EDX

004079B9 |. F7D8 NEG EAX

004079BB |. 83DA 00 SBB EDX,0

004079BE |. 83CF 01 OR EDI,1

004079C1 |> 0BC9 OR ECX,ECX

004079C3 |. 79 07 JNS SHORT UNPACKED.004079CC

004079C5 |. F7D9 NEG ECX

004079C7 |. F7DB NEG EBX

004079C9 |. 83D9 00 SBB ECX,0

004079CC |> 8BE9 MOV EBP,ECX

004079CE |. B9 40000000 MOV ECX,40 ; 40入ecx,ecx值为循环次数

004079D3 |. 57 PUSH EDI

004079D4 |. 33FF XOR EDI,EDI ; edi清0

004079D6 |. 33F6 XOR ESI,ESI ; esi清0

004079D8 |> D1E0 /SHL EAX,1 ; eax左移一位

004079DA |. D1D2 |RCL EDX,1 ; edx带进位左移一位

004079DC |. D1D6 |RCL ESI,1 ; esi带进位左移一位

004079DE |. D1D7 |RCL EDI,1 ; edi带进位左移一位

004079E0 |. 3BFD |CMP EDI,EBP

004079E2 |. 72 0B |JB SHORT UNPACKED.004079EF

004079E4 |. 77 04 |JA SHORT UNPACKED.004079EA

004079E6 |. 3BF3 |CMP ESI,EBX ; esi与ebx是否相等

004079E8 |. 72 05 |JB SHORT UNPACKED.004079EF ; 如果esi小于ebx,

004079EA |> 2BF3 |SUB ESI,EBX

004079EC |. 1BFD |SBB EDI,EBP

004079EE |. 40 |INC EAX

004079EF |>^ E2 E7 \LOOPD SHORT UNPACKED.004079D8 ; ecx值为循环次数

004079F1 |. 8BC6 MOV EAX,ESI ; esi入eax

004079F3 |. 8BD7 MOV EDX,EDI

004079F5 |. 5B POP EBX

三、利用程序自身制作注册机:

1、在00694194 |. E8 67FFD6FF CALL UNPACKED.00404100处,这个call是把所有信息清空,现把这nop掉

2、在0069418F处,把MOV EDX,4修改MOV EDI,DWORD PTR DS:[EAX],把真码保存在EDI中。

如下:

00694183 |. 59 POP ECX

00694184 |. 64:8910 MOV DWORD PTR FS:[EAX],EDX

00694187 |. 68 A9416900 PUSH UNPACKED.006941A9

0069418C |> /8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]===>真码地址入eax,

0069418F 8B38 MOV EDI,DWORD PTR DS:[EAX]=====>把真码放入edi

00694191 |90 NOP

00694192 |90 NOP

00694193 |90 NOP

00694194 |90 NOP

00694195 |90 NOP

00694196 |90 NOP

00694197 |90 NOP

00694198 |90 NOP

00694199 |. |8D45 08 LEA EAX,DWORD PTR SS:[EBP+8]

3、在0073614F处,把MOV EDX,7361C4,改为MOV EDX,EDI

如下:

00736139 |. 8B83 00030000 MOV EAX,DWORD PTR DS:[EBX+300]

0073613F |. E8 74DFF5FF CALL UNPACKED.006940B8 ; 关键call(1)

00736144 |. 84C0 TEST AL,AL

00736146 |. 75 1A JNZ SHORT UNPACKED.00736162

00736148 |. 6A 10 PUSH 10

0073614A |. B9 B8617300 MOV ECX,UNPACKED.007361B8

0073614F 8BD7 MOV EDX,EDI ; 把真码放入,替换出错字符串

00736151 90 NOP

00736152 90 NOP

00736153 90 NOP

00736154 |. A1 E8747500 MOV EAX,DWORD PTR DS:[7574E8]

00736159 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]

0073615B |. E8 A847D2FF CALL UNPACKED.0045A908=============>出错框,会显示正确的注册码

用十六进制工具打开,把BA04000000E867FFD6FF改为:8b389090909090909090,把BAC4617300改为:8BD7909090

保存后运行即可。

整理如下:

用户名: lordor

注册码: 00C943611D42

(出处:嬴政天下整理收藏)

相关资讯:

·语音界面2.0算法分析及注册机源码!

·侠客系统修改器1.21破解手记--算法分析

·中文拨号上网计时计费器 V4.12注册算法分析

·ClockWise 3.22e注册码算法分析

·CoolClock V1.02注册算法分析

·Directory Scanner v1.5 注册算法分析

·Disk Chief 1.2 简单注册算法分析

·EffeTech HTTP Sniffer 3.2注册算法分析

·eLib2.01算法分析

·EZ MP3 Recorder 1.15 注册算法分析

相关软件:

→ 特别推荐

→ 热点TOP10

我为人人《《==》》人人为我

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright ? 1998-2003 winzheng.com

All Rights Reserved.

特别感谢 蓝芒科技 提供下载站及论坛服务器

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史