aytcgjb 发表于 2007-10-31 11:58:50

财智记账本 修改遗忘密码的方法

财智记账本 修改遗忘密码的方法

说明:财智记账本真正的可执行文件是Program\MoneyBook.exe


一、脱壳

PEID检测为:UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo

OD载入使用ESP定律脱壳

使用ImportREC进地修复,可正常运行。

二、跳过账簿的密码验证

OD载入脱壳后文件,停在这里

009E1E58 >/$55            PUSH EBP
009E1E59|.8BEC          MOV EBP,ESP
009E1E5B|.B9 0A000000   MOV ECX,0A
009E1E60|>6A 00         /PUSH 0
009E1E62|.6A 00         |PUSH 0
009E1E64|.49            |DEC ECX
009E1E65|.^ 75 F9         \JNZ SHORT dump.009E1E60
009E1E67|.51            PUSH ECX
009E1E68|.53            PUSH EBX
009E1E69|.B8 E0069E00   MOV EAX,dump.009E06E0
009E1E6E|.E8 3957A2FF   CALL dump.004075AC
009E1E73|.33C0          XOR EAX,EAX
009E1E75|.55            PUSH EBP
009E1E76|.68 0A229E00   PUSH dump.009E220A

F9运行,使程序跑出来

出现新建和打开账簿的窗口,选择有遗忘密码的账簿-》出现输入密码的窗口
此时,我们按F12使用程序暂停下来-》停在系统的领空

F8 单步执行

以下是Delphi程序的消息循环,到这里就已经进行了输入密码窗口的领空。

004A3736|.8990 4C020000 MOV DWORD PTR DS:,EDX
004A373C|>A1 1C3C9F00   /MOV EAX,DWORD PTR DS:
004A3741|.E8 32350000   |CALL dump.004A6C78
004A3746|.A1 1C3C9F00   |MOV EAX,DWORD PTR DS:
004A374B|.80B8 9C000000>|CMP BYTE PTR DS:,0
004A3752|.74 0F         |JE SHORT dump.004A3763
004A3754|.8B45 FC       |MOV EAX,DWORD PTR SS:
004A3757|.C780 4C020000>|MOV DWORD PTR DS:,2
004A3761|.EB 14         |JMP SHORT dump.004A3777
004A3763|>8B45 FC       |MOV EAX,DWORD PTR SS:
004A3766|.83B8 4C020000>|CMP DWORD PTR DS:,0
004A376D|.74 08         |JE SHORT dump.004A3777
004A376F|.8B45 FC       |MOV EAX,DWORD PTR SS:
004A3772|.E8 1DFDFFFF   |CALL dump.004A3494
004A3777|>8B45 FC       |MOV EAX,DWORD PTR SS:
004A377A|.8B80 4C020000 |MOV EAX,DWORD PTR DS:
004A3780|.85C0          |TEST EAX,EAX
004A3782|.^ 74 B8         \JE SHORT dump.004A373C
004A3784|.8945 F8       MOV DWORD PTR SS:,EAX
004A3787|.6A 00         PUSH 0




在这个Retn处下F2断点,这里是真正的返回点
004A38B1   .^\EB F0         JMP SHORT dump.004A38A3
004A38B3   .8B45 F8       MOV EAX,DWORD PTR SS:
004A38B6   .5E            POP ESI
004A38B7   .5B            POP EBX
004A38B8   .8BE5          MOV ESP,EBP
004A38BA   .5D            POP EBP
004A38BB   .C3            RETN   F2下断

F9运行程序,点取消,OD断下

F8单步,返回到这里就返回到关键点了

0059BFA3   .8B45 F8       MOV EAX,DWORD PTR SS:
0059BFA6   .E8 45F1E6FF   CALL dump.0040B0F0
0059BFAB   .8B8D 94FEFFFF MOV ECX,DWORD PTR SS:
0059BFB1   .8D45 E0       LEA EAX,DWORD PTR SS:
0059BFB4   .33D2          XOR EDX,EDX
0059BFB6   .E8 B52FFFFF   CALL dump.0058EF70                     ;密码输入窗口
0059BFBB   .83F8 02       CMP EAX,2                ; 2就是取消按钮
0059BFBE   .75 09         JNZ SHORT dump.0059BFC9
0059BFC0   .C745 F0 03000>MOV DWORD PTR SS:,3
0059BFC7   .EB 75         JMP SHORT dump.0059C03E
0059BFC9   >8D8D 90FEFFFF LEA ECX,DWORD PTR SS:
0059BFCF   .8B55 E0       MOV EDX,DWORD PTR SS:
0059BFD2   .8B45 FC       MOV EAX,DWORD PTR SS:
0059BFD5   .E8 DEF4FFFF   CALL dump.0059B4B8

0059BFC9在这里下断  F9运行,再次出现输入密码窗口时,OD断下
我们输入错误的密码123-》点确定

0059BFC7   . /EB 75         JMP SHORT dump.0059C03E
0059BFC9   > |8D8D 90FEFFFF LEA ECX,DWORD PTR SS:
0059BFCF   . |8B55 E0       MOV EDX,DWORD PTR SS:            ;把假密码放入EDX
0059BFD2   . |8B45 FC       MOV EAX,DWORD PTR SS:
0059BFD5   . |E8 DEF4FFFF   CALL dump.0059B4B8
0059BFDA   . |8B85 90FEFFFF MOV EAX,DWORD PTR SS:         ;把假密码加密后入到EAX
0059BFE0   . |8B55 DC       MOV EDX,DWORD PTR SS:            ;把真密码加密后放到EDX
0059BFE3   . |E8 9C90E6FF   CALL dump.00405084                     ;判断密码是否正确,关键的CALL
0059BFE8   |75 12         JNZ SHORT dump.0059BFFC                  ;不相等,就跳向密码错误

0059BFE8这里不跳后,F9运行,已经打开账簿了,可以会发现没有东西了,我没有测试,别人测试的结果

不要慌,我们继续

我用dede找到修改的密码设置窗口中的确定按钮地址 如下:

00743A9C   .55            PUSH EBP
00743A9D   .8BEC          MOV EBP,ESP
00743A9F   .33C9          XOR ECX,ECX
00743AA1   .51            PUSH ECX
00743AA2   .51            PUSH ECX
00743AA3   .51            PUSH ECX
00743AA4   .51            PUSH ECX
00743AA5   .51            PUSH ECX
00743AA6   .51            PUSH ECX
00743AA7   .51            PUSH ECX
00743AA8   .51            PUSH ECX
00743AA9   .53            PUSH EBX
00743AAA   .56            PUSH ESI
00743AAB   .57            PUSH EDI
00743AAC   .8BF0          MOV ESI,EAX
00743AAE   .33C0          XOR EAX,EAX
00743AB0   .55            PUSH EBP
00743AB1   .68 663C7400   PUSH dump.00743C66
00743AB6   .64:FF30       PUSH DWORD PTR FS:
00743AB9   .64:8920       MOV DWORD PTR FS:,ESP
00743ABC   .B3 01         MOV BL,1
00743ABE   .8D55 FC       LEA EDX,DWORD PTR SS:
00743AC1   .A1 FC239F00   MOV EAX,DWORD PTR DS:
00743AC6   .8B00          MOV EAX,DWORD PTR DS:
00743AC8   .E8 6769E5FF   CALL dump.0059A434  在这里下F2断点
00743ACD   .837D FC 00    CMP DWORD PTR SS:,0   
00743AD1   .0F84 86000000 JE dump.00743B5D
00743AD7   .8D55 F8       LEA EDX,DWORD PTR SS:
00743ADA   .A1 FC239F00   MOV EAX,DWORD PTR DS:

点账簿菜单中的密码设置,输入旧密码:123 新密码456,点确定,OD断下

00743AC8   .E8 6769E5FF   CALL dump.0059A434                     ;取出真密码加密的字符
00743ACD   .837D FC 00    CMP DWORD PTR SS:,0
00743AD1   .0F84 86000000 JE dump.00743B5D
00743AD7   .8D55 F8       LEA EDX,DWORD PTR SS:
00743ADA   .A1 FC239F00   MOV EAX,DWORD PTR DS:
00743ADF   .8B00          MOV EAX,DWORD PTR DS:
00743AE1   .E8 4E69E5FF   CALL dump.0059A434
00743AE6   .8B45 F8       MOV EAX,DWORD PTR SS:
00743AE9   .50            PUSH EAX
00743AEA   .8D55 F0       LEA EDX,DWORD PTR SS:
00743AED   .8B86 70030000 MOV EAX,DWORD PTR DS:
00743AF3   .E8 2826DBFF   CALL dump.004F6120
00743AF8   .8B55 F0       MOV EDX,DWORD PTR SS:            ;把错误旧密码放入EDX
00743AFB   .8D4D F4       LEA ECX,DWORD PTR SS:
00743AFE   .A1 FC239F00   MOV EAX,DWORD PTR DS:
00743B03   .8B00          MOV EAX,DWORD PTR DS:
00743B05   .E8 AE79E5FF   CALL dump.0059B4B8
00743B0A   .8B55 F4       MOV EDX,DWORD PTR SS:             ;把加密后的旧密码放入EDX
00743B0D   .58            POP EAX                                  ;把真密码出栈,放回EAX
00743B0E   .E8 7115CCFF   CALL dump.00405084                     ;比较密码是否相等
00743B13      74 48         JE SHORT dump.00743B5D                   ;相等就跳,这里必须跳

提示密码修改成功

关闭OD

用原版MoneyBook.exe打开,提示输入密码,把我们修改的密码,填入,成功打开了。哈哈

[ 本帖最后由 aytcgjb 于 2007-10-31 13:28 编辑 ]

crackforchina 发表于 2007-10-31 15:33:51

呵呵,学到东西,踩个脚印,方便以后温习

天涯之海 发表于 2007-11-2 15:09:37

新用法~~~~~~~~~

方程 发表于 2007-11-3 10:07:57

小辣椒 发表于 2014-2-18 09:41:42

好历害呀。崇拜中!

小辣椒 发表于 2014-2-18 12:54:44

大虾!做个录像就好了。

decall 发表于 2014-9-23 08:29:23

谢谢分享,教程贴学习一下!

1067715492 发表于 2014-11-1 19:57:21

顶顶.........................

amwji 发表于 2014-11-1 22:40:15

家里的好帮手
页: [1]
查看完整版本: 财智记账本 修改遗忘密码的方法