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