飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3379|回复: 1

[原创] 【破文标题】QQ聊天记录查看器 5.3 算法分析

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

    [LV.6]常住居民II

    发表于 2007-11-24 17:46:05 | 显示全部楼层 |阅读模式
    【破文标题】QQ聊天记录查看器 5.3 算法分析
    【破文作者】aytcgjb
    【作者邮箱】gjianbo@163.com
    【作者主页】A/N
    破解工具】peid0.94+OD
    【破解平台】盗版XPsp2
    【软件名称】QQ聊天记录查看器 5.3
    【软件大小】
    【原版下载】http://www.newhua.com/soft/47456.htm
    【保护方式】注册码
    【软件简介】
    【破解声明】本文仅供研究学习,本人对因这篇文章而导致的一切后果,不承担任何法律责任。本文中的不足之处请各位多多
    ------------------------------------------------------------------------
    【破解过程】
    OD载入,F9运行程序

    点查看,出现注册窗口,在注册窗口处,输入假码:123456789ABCDEF0,有错误提示,下bp MessageBoxA断点,找到关键点


    0046EF62  |?  EC            IN AL,DX                                 ;  I/O 命令
    0046EF63  |.  83C4 F4       ADD ESP,-0C
    0046EF66  |.  33C9          XOR ECX,ECX
    0046EF68  |.  894D F4       MOV DWORD PTR SS:[EBP-C],ECX
    0046EF6B  |.  8955 F8       MOV DWORD PTR SS:[EBP-8],EDX
    0046EF6E  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX
    0046EF71  |.  33C0          XOR EAX,EAX
    0046EF73  |.  55            PUSH EBP
    0046EF74  |.  68 1FF04600   PUSH QQ聊天记.0046F01F
    0046EF79  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
    0046EF7C  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
    0046EF7F  |.  8D55 F4       LEA EDX,DWORD PTR SS:[EBP-C]
    0046EF82  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0046EF85  |.  8B80 F0020000 MOV EAX,DWORD PTR DS:[EAX+2F0]
    0046EF8B  |.  E8 C495FCFF   CALL QQ聊天记.00438554
    0046EF90  |.  8B55 F4       MOV EDX,DWORD PTR SS:[EBP-C]
    0046EF93  |.  B8 E89C4800   MOV EAX,QQ聊天记.00489CE8
    0046EF98  |.  E8 3353F9FF   CALL QQ聊天记.004042D0
    0046EF9D  |.  A1 E89C4800   MOV EAX,DWORD PTR DS:[489CE8]
    0046EFA2  |.  E8 BDFCFFFF   CALL QQ聊天记.0046EC64                      ;  关键的CALL
    0046EFA7  |.  A3 EC9C4800   MOV DWORD PTR DS:[489CEC],EAX
    0046EFAC  |.  833D EC9C4800>CMP DWORD PTR DS:[489CEC],0
    0046EFB3  |.  74 34         JE SHORT QQ聊天记.0046EFE9                   ;  关键跳转
    0046EFB5  |.  6A 00         PUSH 0                                   



    F7跟进关键CALL
    0046EC64  /$  55            PUSH EBP
    0046EC65  |.  8BEC          MOV EBP,ESP
    0046EC67  |.  83C4 C8       ADD ESP,-38
    0046EC6A  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX
    0046EC6D  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0046EC70  |.  E8 A75AF9FF   CALL QQ聊天记.0040471C
    0046EC75  |.  33C0          XOR EAX,EAX
    0046EC77  |.  55            PUSH EBP
    0046EC78  |.  68 C9ED4600   PUSH QQ聊天记.0046EDC9
    0046EC7D  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
    0046EC80  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
    0046EC83  |.  33C0          XOR EAX,EAX
    0046EC85  |.  8945 F8       MOV DWORD PTR SS:[EBP-8],EAX
    0046EC88  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0046EC8B  |.  E8 A458F9FF   CALL QQ聊天记.00404534
    0046EC90  |.  83F8 10       CMP EAX,10
    0046EC93  |.  0F8C 1A010000 JL QQ聊天记.0046EDB3                        ;  关键是否小于16位,小于跳向错误
    0046EC99  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0046EC9C  |.  E8 9358F9FF   CALL QQ聊天记.00404534
    0046ECA1  |.  83F8 10       CMP EAX,10                               ;  大于16位,也跳向错误
    0046ECA4  |.  0F8F 09010000 JG QQ聊天记.0046EDB3
    0046ECAA  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0046ECAD  |.  BA E0ED4600   MOV EDX,QQ聊天记.0046EDE0                   ;  ASCII "1163659294813585"
    0046ECB2  |.  E8 C159F9FF   CALL QQ聊天记.00404678
    0046ECB7  |.  0F84 F6000000 JE QQ聊天记.0046EDB3
    0046ECBD  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0046ECC0  |.  BA FCED4600   MOV EDX,QQ聊天记.0046EDFC                   ;  ASCII "0386848021608060"
    0046ECC5  |.  E8 AE59F9FF   CALL QQ聊天记.00404678
    0046ECCA  |.  0F84 E3000000 JE QQ聊天记.0046EDB3
    0046ECD0  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0046ECD3  |.  BA 18EE4600   MOV EDX,QQ聊天记.0046EE18                   ;  ASCII "8319E4005F00PYG0"
    0046ECD8  |.  E8 9B59F9FF   CALL QQ聊天记.00404678
    0046ECDD  |.  0F84 D0000000 JE QQ聊天记.0046EDB3
    0046ECE3  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0046ECE6  |.  BA 34EE4600   MOV EDX,QQ聊天记.0046EE34                   ;  ASCII "0566838690673180"
    0046ECEB  |.  E8 8859F9FF   CALL QQ聊天记.00404678
    0046ECF0  |.  0F84 BD000000 JE QQ聊天记.0046EDB3
    0046ECF6  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0046ECF9  |.  BA 50EE4600   MOV EDX,QQ聊天记.0046EE50                   ;  ASCII "0386748036909760"
    0046ECFE  |.  E8 7559F9FF   CALL QQ聊天记.00404678
    0046ED03  |.  0F84 AA000000 JE QQ聊天记.0046EDB3
    0046ED09  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0046ED0C  |.  BA 6CEE4600   MOV EDX,QQ聊天记.0046EE6C                   ;  ASCII "sflsky7Dgh1A5i18"
    0046ED11  |.  E8 6259F9FF   CALL QQ聊天记.00404678
    0046ED16  |.  0F84 97000000 JE QQ聊天记.0046EDB3

    出现的号码应该是在软件的黑名单

    0046ED1C  |.  33C0          XOR EAX,EAX
    0046ED1E  |.  8945 DC       MOV DWORD PTR SS:[EBP-24],EAX
    0046ED21  |>  8B45 FC       /MOV EAX,DWORD PTR SS:[EBP-4]
    0046ED24  |.  8B55 DC       |MOV EDX,DWORD PTR SS:[EBP-24]
    0046ED27  |.  8A0410        |MOV AL,BYTE PTR DS:[EAX+EDX]
    0046ED2A  |.  E8 EDFEFFFF   |CALL QQ聊天记.0046EC1C
    0046ED2F  |.  8B55 DC       |MOV EDX,DWORD PTR SS:[EBP-24]
    0046ED32  |.  884415 CB     |MOV BYTE PTR SS:[EBP+EDX-35],AL
    0046ED36  |.  FF45 DC       |INC DWORD PTR SS:[EBP-24]
    0046ED39  |.  837D DC 10    |CMP DWORD PTR SS:[EBP-24],10
    0046ED3D  |.^ 75 E2         \JNZ SHORT QQ聊天记.0046ED21
    0046ED3F  |.  33C0          XOR EAX,EAX
    0046ED41  |.  8945 E0       MOV DWORD PTR SS:[EBP-20],EAX
    0046ED44  |>  8B45 E0       /MOV EAX,DWORD PTR SS:[EBP-20]
    0046ED47  |.  03C0          |ADD EAX,EAX
    0046ED49  |.  8A4405 CC     |MOV AL,BYTE PTR SS:[EBP+EAX-34]
    0046ED4D  |.  C1E0 04       |SHL EAX,4
    0046ED50  |.  8B55 E0       |MOV EDX,DWORD PTR SS:[EBP-20]
    0046ED53  |.  03D2          |ADD EDX,EDX
    0046ED55  |.  024415 CB     |ADD AL,BYTE PTR SS:[EBP+EDX-35]
    0046ED59  |.  8B55 E0       |MOV EDX,DWORD PTR SS:[EBP-20]
    0046ED5C  |.  884415 EF     |MOV BYTE PTR SS:[EBP+EDX-11],AL
    0046ED60  |.  FF45 E0       |INC DWORD PTR SS:[EBP-20]
    0046ED63  |.  837D E0 09    |CMP DWORD PTR SS:[EBP-20],9
    0046ED67  |.^ 75 DB         \JNZ SHORT QQ聊天记.0046ED44

    上面的循环把假码逆序放入到堆栈中,以下是关键的计算

    逆序后的字符串 0FEDCBA987654321

    0046ED69  |.  8A45 F2       MOV AL,BYTE PTR SS:[EBP-E]  
    0046ED6C  |.  3245 EF       XOR AL,BYTE PTR SS:[EBP-11]

    87-》21进行异或

    0046ED6F  |.  8845 E6       MOV BYTE PTR SS:[EBP-1A],AL
    0046ED72  |.  8A45 F0       MOV AL,BYTE PTR SS:[EBP-10]
    0046ED75  |.  3245 F6       XOR AL,BYTE PTR SS:[EBP-A]

    43-》0F进行异或

    0046ED78  |.  8845 E7       MOV BYTE PTR SS:[EBP-19],AL
    0046ED7B  |.  8A45 F1       MOV AL,BYTE PTR SS:[EBP-F]
    0046ED7E  |.  3245 F4       XOR AL,BYTE PTR SS:[EBP-C]

    65-》CB进行异或

    0046ED81  |.  8845 E8       MOV BYTE PTR SS:[EBP-18],AL
    0046ED84  |.  8A45 F5       MOV AL,BYTE PTR SS:[EBP-B]
    0046ED87  |.  3245 F3       XOR AL,BYTE PTR SS:[EBP-D]

    ED-》A9进行异或

    0046ED8A  |.  8845 E9       MOV BYTE PTR SS:[EBP-17],AL

    0046ED8D  |.  807D E6 38    CMP BYTE PTR SS:[EBP-1A],38   第一次异或后的结果是否等于38,不等于38就跳向错误
    0046ED91  |.  75 1B         JNZ SHORT QQ聊天记.0046EDAE
    0046ED93  |.  807D E7 6E    CMP BYTE PTR SS:[EBP-19],6E   第二次异或后的结果是否等于38,不等于6E就跳向错误
    0046ED97  |.  75 15         JNZ SHORT QQ聊天记.0046EDAE
    0046ED99  |.  807D E8 4E    CMP BYTE PTR SS:[EBP-18],4E    第三次异或后的结果是否等于38,不等于4E就跳向错误

    0046ED9D  |.  75 0F         JNZ SHORT QQ聊天记.0046EDAE
    0046ED9F  |.  807D E9 1A    CMP BYTE PTR SS:[EBP-17],1A   第四次异或后的结果是否等于38,不等于1A就跳向错误

    0046EDA3  |.  75 09         JNZ SHORT QQ聊天记.0046EDAE
    0046EDA5  |.  C745 F8 FFFFF>MOV DWORD PTR SS:[EBP-8],-1
    0046EDAC  |.  EB 05         JMP SHORT QQ聊天记.0046EDB3
    0046EDAE  |>  33C0          XOR EAX,EAX
    0046EDB0  |.  8945 F8       MOV DWORD PTR SS:[EBP-8],EAX
    0046EDB3  |>  33C0          XOR EAX,EAX
    0046EDB5  |.  5A            POP EDX
    0046EDB6  |.  59            POP ECX
    0046EDB7  |.  59            POP ECX
    0046EDB8  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
    0046EDBB  |.  68 D0ED4600   PUSH QQ聊天记.0046EDD0
    0046EDC0  |>  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
    0046EDC3  |.  E8 B454F9FF   CALL QQ聊天记.0040427C
    0046EDC8  \.  C3            RETN
    0046EDC9   .^ E9 D64EF9FF   JMP QQ聊天记.00403CA4
    0046EDCE   .^ EB F0         JMP SHORT QQ聊天记.0046EDC0
    0046EDD0   .  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
    0046EDD3   .  8BE5          MOV ESP,EBP
    0046EDD5   .  5D            POP EBP
    0046EDD6   .  C3            RETN

    算法分析结果:

    1、注册码必须是16位

    3、10、9位和16、15进行异或 结果必须等于38
       2、1 位和14、13进行异或 结果必须等于6E
       6、5 位和12、11进行异或 结果必须等于4E
       4、3 位和8、4 进行异或 结果必须等于1A

    得到数 就是注册码

    我得到的注册码为:FB1658787FBCDEF0


    ------------------------------------------------------------------------
    【破解总结】本人水平有限,希望高手写个注册机出来。
    ------------------------------------------------------------------------
    【版权声明】转载请注明作者并保持文章的完整, 谢谢!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-12-31 10:46:19 | 显示全部楼层
    终于找到破文了 昨天自己弄了看看 没成功
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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