飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 9260|回复: 17

[原创] 破解理想论坛金钻指标分析系统

[复制链接]
  • TA的每日心情
    开心
    2024-3-25 20:58
  • 签到天数: 112 天

    [LV.6]常住居民II

    发表于 2019-3-29 09:13:00 | 显示全部楼层 |阅读模式
    工具:Exeinfo PE ver0.0.5.2 - 2018 ( 1021 + 69 signatures x64 ) ;OD
    说明:这个程序来源于网络,是2017年的版本了,只是有兴趣,并无盗版之意,只为探讨和交流。
    这段时间在研究网路通信的问题,拿了几个软件学习了一下,写下一点体会。
    先查壳:
    图片1.jpg
    无壳:Microsoft Visual C++ v.12 - 2013 ( E8 6A14 - WinXP ) www.microsoft.com [ Debug:02 ]
    开OD,加载 金钻指标启动器.exe,F9正常运行,出现登陆对话框,
    图片2.jpg
    随便输入
    用户名:88888888888888
    密码:88888888888888
    点击登录,出现:网络链接失败
    图片3.jpg
    看来服务器可能有问题。
    OD中搜索一下字符,找到4处:
    00403374  |.  68 D0815400       push 0x5481D0                            ; |网络链接失败
    00404373   .  68 D0815400       push 0x5481D0                            ;  网络链接失败
    00404BAA  |.  68 D0815400       push 0x5481D0                            ;  网络链接失败
    00404EAB  |.  68 D0815400       push 0x5481D0                            ; |网络链接失败
    全部都是明码,4处可以一一下F2断点,但我想研究一下,主程序注册时,想从服务方的服务器得到什么,也就是服务方的服务器回答给我这个用户机什么,才能让这个程序正常运行。
    下面给ws2_32.inet_addr和ws2_32.connect函数下F2断点,
    71A22EE1 ws2_32.inet_addr    6A 10               push 0x10
    71A24A07 ws2_32.connect     8BFF                mov edi,edi
    OD重新运行程序,点击登录按钮:
    断在71A22EE1 ws2_32.inet_addr    6A 10               push 0x1
    图片4.jpg
    看寄存器:EAX 00128E74 ASCII "112.74.54.28"
    找到了服务器的IP地址,我们对这个IP地址来验证一下,ping 112.74.54.28一下:
    图片5.jpg
    在使用的,有效的IP。
    客户机和服务机需要通信,我到ws2_32.send函数下F2断点:
    71A24C27 ws2_32.send    8BFF                   mov edi,edi
    OD重新加载主程序,取消ws2_32.inet_addr和ws2_32.connect断点,F9,点击登录按钮,断在:
    71A24C27 ws2_32.send     8BFF                   mov edi,edi
    Alt+F9回到主程序领空,
    00402D4A   |.  6A 00             push 0x0                                 ; /Flags = 0
    00402D4C   |.  68 00010000       push 0x100                               ; |DataSize = 100 (256.)
    00402D51   |.  8D4424 18         lea eax,dword ptr ss:[esp+0x18]          ; |
    00402D55   |.  50                push eax                                 ; |Data = FFFFFFFF
    00402D56   |.  FF75 08           push dword ptr ss:[ebp+0x8]              ; |Socket = 0x12C
    00402D59   |.  FF15 F8545100     call dword ptr ds:[0x5154F8]             ; \send
    00402D5F   |.  33C9              xor ecx,ecx
    00402D61   |.  3D 00010000       cmp eax,0x100                            ;
    00402D66   |.  5F                pop edi
    00402D67   |.  0f94c1            sete cl
    00402D6A   |.  8BC1              mov eax,ecx
    00402D6C   |.  8B8C24 30010000   mov ecx,dword ptr ss:[esp+0x130]
    00402D73   |.  5E                pop esi
    00402D74   |.  5B                pop ebx
    00402D75   |.  33CC              xor ecx,esp
    00402D77   |.  E8 A03E0000       call 00406C1C                            ;  金钻指标.00406C1C
    00402D7C   |.  8BE5              mov esp,ebp
    00402D7E   |.  5D                pop ebp
    00402D7F   .  C3                retn
    我们来看一下这段代码,发现从ws2_32.send函数返回后寄存器eax有一个比较语句:
    00402D61   |.  3D 00010000       cmp eax,0x100                            ;
    看看实际返回的eax值:
    图片6.jpg
    Eax=0xFFFFFFFF,表示错误,与0x100不符,标记这段语句:
    00402D61   |.  3D 00010000       cmp eax,0x100                            ;
    我到ws2_32.recv函数下F2断点:
    71A2676F ws2_32.recv     8BFF                mov edi,edi
    00402D61下F2断点。
    OD重新加载主程序,点击登录按钮,断在00402D61,将eax赋值0x100,F9,断在
    71A2676F ws2_32.recv     8BFF                mov edi,edi
    Alt+F9回到主程序领空,
    00403040       |> /6A 00             /push 0x0                                ; /Flags = 0
    00403042       |. |B8 00010000       |mov eax,0x100                           ; |
    00403047       |. |2BC6              |sub eax,esi                             ; |
    00403049       |. |50                |push eax                                ; |BufSize = FFFFFFFF (-1.)
    0040304A       |. |8D043E            |lea eax,dword ptr ds:[esi+edi]          ; |
    0040304D       |. |50                |push eax                                ; |Buffer = FFFFFFFF
    0040304E       |. |53                |push ebx                                ; |Socket = 0x138
    0040304F       |. |FF15 FC545100     |call dword ptr ds:[0x5154FC]            ; \recv
    00403055       |. |85C0              |test eax,eax
    00403057       |. |7E 0C             |jle short 00403065                      ;  金钻指标.00403065
    00403059       |. |03F0              |add esi,eax
    0040305B       |. |81FE 00010000     |cmp esi,0x100
    00403061       |.^\7C DD             \jl short 00403040                       ;  金钻指标.00403040
    00403063       |.  EB 02             jmp short 00403067                       ;  金钻指标.00403067
    00403065       |>  8BF0              mov esi,eax
    00403067       |>  81FE 00010000     cmp esi,0x100                            ;
    0040306D       |.  74 06             je short 00403075                        ;  金钻指标.00403075
    0040306F       |.  5F                pop edi
    00403070       |.  5E                pop esi
    00403071       |.  33C0              xor eax,eax
    00403073       |.  5B                pop ebx
    00403074       |.  C3                retn
    我们看一下00403065和00403067,这两条语句相当于cmp eax,0x100
    我们看看eax实际返回的值:
    图片7.jpg
    Eax=0xFFFFFFFF,表示错误,与0x100不符,标记这段语句:
    00403067       |>  81FE 00010000     cmp esi,0x100                            ;
    将esi赋值0x100,F8,到
    00403081       |.  33C0              xor eax,eax
    00403083       |.  813F FC00E88C     cmp dword ptr ds:[edi],0x8CE800FC
    我们到数据窗口看看dword ptr ds:[edi]的值
    图片8.jpg
    堆栈 ds:[00128EC0]=76767676,不等于0x8CE800FC,我们将这个值赋给他,F9,程序进入正常界面:
    图片9.jpg



    评分

    参与人数 1威望 +1 飘云币 +1 收起 理由
    yanwc + 1 + 1 PYG有你更精彩!

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-3-25 20:58
  • 签到天数: 112 天

    [LV.6]常住居民II

     楼主| 发表于 2019-3-29 09:15:59 | 显示全部楼层
    新来论坛,正在学习论坛发帖规定,一按发表给发出来了,如果不合规定,请版主删除。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    7 天前
  • 签到天数: 373 天

    [LV.9]以坛为家II

    发表于 2019-3-29 10:04:32 | 显示全部楼层
    学习了,谢谢
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 13:44
  • 签到天数: 2123 天

    [LV.Master]伴坛终老

    发表于 2019-3-29 14:13:09 | 显示全部楼层
    学习了   感谢楼主技术分享  。。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 13:26
  • 签到天数: 2150 天

    [LV.Master]伴坛终老

    发表于 2019-3-29 14:49:35 | 显示全部楼层
    分析的很详细,感谢!
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-4-11 12:20
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2019-3-29 15:18:57 | 显示全部楼层
    谢谢楼主分享
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-9-11 08:24
  • 签到天数: 614 天

    [LV.9]以坛为家II

    发表于 2019-3-29 16:04:20 | 显示全部楼层
    学习了,谢谢分享!!!
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 09:04
  • 签到天数: 764 天

    [LV.10]以坛为家III

    发表于 2019-3-30 15:33:28 | 显示全部楼层
    感谢楼主分享
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-14 04:37
  • 签到天数: 1685 天

    [LV.Master]伴坛终老

    发表于 2019-3-30 16:44:18 | 显示全部楼层
    老师,能分享吗?
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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