• 标 题:家庭银行家(HomeBanker) V2.0 b53
  • 作 者:lordor
  • 时 间:2003/04/13 03:26pm
  • 链 接:http://bbs.pediy.com

家庭银行家(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