飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5292|回复: 8

[原创] 财智记账本 修改遗忘密码的方法

[复制链接]
  • TA的每日心情
    无聊
    2018-2-10 09:25
  • 签到天数: 119 天

    [LV.6]常住居民II

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




    在这个Retn处下F2断点,这里是真正的返回点
    004A38B1   .^\EB F0         JMP SHORT dump.004A38A3
    004A38B3   .  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
    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:[EBP-8]
    0059BFA6   .  E8 45F1E6FF   CALL dump.0040B0F0
    0059BFAB   .  8B8D 94FEFFFF MOV ECX,DWORD PTR SS:[EBP-16C]
    0059BFB1   .  8D45 E0       LEA EAX,DWORD PTR SS:[EBP-20]
    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:[EBP-10],3
    0059BFC7   .  EB 75         JMP SHORT dump.0059C03E
    0059BFC9   >  8D8D 90FEFFFF LEA ECX,DWORD PTR SS:[EBP-170]
    0059BFCF   .  8B55 E0       MOV EDX,DWORD PTR SS:[EBP-20]
    0059BFD2   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    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:[EBP-170]
    0059BFCF   . |8B55 E0       MOV EDX,DWORD PTR SS:[EBP-20]            ;  把假密码放入EDX
    0059BFD2   . |8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0059BFD5   . |E8 DEF4FFFF   CALL dump.0059B4B8
    0059BFDA   . |8B85 90FEFFFF MOV EAX,DWORD PTR SS:[EBP-170]           ;  把假密码加密后入到EAX
    0059BFE0   . |8B55 DC       MOV EDX,DWORD PTR SS:[EBP-24]            ;  把真密码加密后放到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:[EAX]
    00743AB9   .  64:8920       MOV DWORD PTR FS:[EAX],ESP
    00743ABC   .  B3 01         MOV BL,1
    00743ABE   .  8D55 FC       LEA EDX,DWORD PTR SS:[EBP-4]
    00743AC1   .  A1 FC239F00   MOV EAX,DWORD PTR DS:[9F23FC]
    00743AC6   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
    00743AC8   .  E8 6769E5FF   CALL dump.0059A434  在这里下F2断点
    00743ACD   .  837D FC 00    CMP DWORD PTR SS:[EBP-4],0   
    00743AD1   .  0F84 86000000 JE dump.00743B5D
    00743AD7   .  8D55 F8       LEA EDX,DWORD PTR SS:[EBP-8]
    00743ADA   .  A1 FC239F00   MOV EAX,DWORD PTR DS:[9F23FC]

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

    00743AC8   .  E8 6769E5FF   CALL dump.0059A434                       ;  取出真密码加密的字符
    00743ACD   .  837D FC 00    CMP DWORD PTR SS:[EBP-4],0
    00743AD1   .  0F84 86000000 JE dump.00743B5D
    00743AD7   .  8D55 F8       LEA EDX,DWORD PTR SS:[EBP-8]
    00743ADA   .  A1 FC239F00   MOV EAX,DWORD PTR DS:[9F23FC]
    00743ADF   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
    00743AE1   .  E8 4E69E5FF   CALL dump.0059A434
    00743AE6   .  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
    00743AE9   .  50            PUSH EAX
    00743AEA   .  8D55 F0       LEA EDX,DWORD PTR SS:[EBP-10]
    00743AED   .  8B86 70030000 MOV EAX,DWORD PTR DS:[ESI+370]
    00743AF3   .  E8 2826DBFF   CALL dump.004F6120
    00743AF8   .  8B55 F0       MOV EDX,DWORD PTR SS:[EBP-10]            ;  把错误旧密码放入EDX
    00743AFB   .  8D4D F4       LEA ECX,DWORD PTR SS:[EBP-C]
    00743AFE   .  A1 FC239F00   MOV EAX,DWORD PTR DS:[9F23FC]
    00743B03   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
    00743B05   .  E8 AE79E5FF   CALL dump.0059B4B8
    00743B0A   .  8B55 F4       MOV EDX,DWORD PTR SS:[EBP-C]             ;  把加密后的旧密码放入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 编辑 ]
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2022-10-19 14:02
  • 签到天数: 240 天

    [LV.8]以坛为家I

    发表于 2007-10-31 15:33:51 | 显示全部楼层
    呵呵,学到东西,踩个脚印,方便以后温习
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-11-2 15:09:37 | 显示全部楼层
    新用法~~~~~~~~~
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-11-3 10:07:57 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2014-2-18 09:41:42 | 显示全部楼层
    好历害呀。崇拜中!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2014-2-18 12:54:44 | 显示全部楼层
    大虾!做个录像就好了。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    7 天前
  • 签到天数: 1703 天

    [LV.Master]伴坛终老

    发表于 2014-9-23 08:29:23 | 显示全部楼层
    谢谢分享,教程贴学习一下!
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2022-5-6 19:30
  • 签到天数: 34 天

    [LV.5]常住居民I

    发表于 2014-11-1 22:40:15 | 显示全部楼层
    家里的好帮手
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表