飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5128|回复: 7

[原创] qq聊天记录器 2007 简单分析

[复制链接]

该用户从未签到

发表于 2007-8-12 01:31:16 | 显示全部楼层 |阅读模式
软件大小:1102KB
软件类别:国产软件/QQ 专区  
下载次数:232211
软件授权:共享版
软件语言:简体中文
运行环境:Win9x/Me/NT/2000/XP/2003
更新时间:2007-7-18 16:57:16
华军下载:http://bj.onlinedown.net/soft/52278.htm

      今日无事,下了几个软件测试。软件无壳,反OD,算法分析的时候遇到一些麻烦,但使用了明码比较,无机器码,导致KEY通用,可以认为这类假密强度的软件基本上就是间接让破解者来做宣传的免费软件。建议该软件加壳来保护,不建议采用明码。  By:Nisy 07.19



00417810   .  6A FF         PUSH -1                                  ;  算法部分从这里开始,我们在这里下断
00417812   .  68 F85F4600   PUSH QQRecord.00465FF8
00417817   .  64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
0041781D   .  50            PUSH EAX
………………
中间代码省略
………………
00417966   > \8D4C24 14     LEA ECX,DWORD PTR SS:[ESP+14]
0041796A   .  51            PUSH ECX
0041796B   .  8D4C24 24     LEA ECX,DWORD PTR SS:[ESP+24]
0041796F   .  E8 4CA6FFFF   CALL QQRecord.00411FC0                   ;  算法CALL,我们F7跟进  
00417974   .  8B4C24 1C     MOV ECX,DWORD PTR SS:[ESP+1C]            ;  送出假码
00417978   .  33D2          XOR EDX,EDX
0041797A   .  83C4 04       ADD ESP,4
0041797D   .  85C9          TEST ECX,ECX
0041797F   .  0F95C2        SETNE DL
00417982   .  85D2          TEST EDX,EDX
00417984   .  75 0A         JNZ SHORT QQRecord.00417990
00417986   .  68 05400080   PUSH 80004005
0041798B   .  E8 A0F3FEFF   CALL QQRecord.00406D30
00417990   >  8B00          MOV EAX,DWORD PTR DS:[EAX]               ;  真码保存到 EAX 可做内存KG
00417992   .  51            PUSH ECX
00417993   .  50            PUSH EAX
00417994   .  E8 44610300   CALL QQRecord.0044DADD
00417999   .  83C4 08       ADD ESP,8
0041799C   .  85C0          TEST EAX,EAX
0041799E   .  8B4424 20     MOV EAX,DWORD PTR SS:[ESP+20]
004179A2   .  0F94C3        SETE BL
004179A5   .  83C0 F0       ADD EAX,-10
004179A8   .  8D50 0C       LEA EDX,DWORD PTR DS:[EAX+C]
004179AB   .  83C9 FF       OR ECX,FFFFFFFF
004179AE   .  F0:0FC10A     LOCK XADD DWORD PTR DS:[EDX],ECX         ;  LOCK 前缀
004179B2   .  49            DEC ECX
004179B3   .  85C9          TEST ECX,ECX
004179B5   .  7F 0A         JG SHORT QQRecord.004179C1
004179B7   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
004179B9   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
004179BB   .  50            PUSH EAX
004179BC   .  8B42 04       MOV EAX,DWORD PTR DS:[EDX+4]
004179BF   .  FFD0          CALL EAX
004179C1   >  84DB          TEST BL,BL
004179C3   .  74 4B         JE SHORT QQRecord.00417A10
004179C5   .  E8 EFAA0000   CALL QQRecord.004224B9
004179CA   .  8B4C24 14     MOV ECX,DWORD PTR SS:[ESP+14]
004179CE   .  8B70 04       MOV ESI,DWORD PTR DS:[EAX+4]
004179D1   .  51            PUSH ECX
004179D2   .  68 78334700   PUSH QQRecord.00473378                   ;  userid
004179D7   .  68 80334700   PUSH QQRecord.00473380                   ;  register
004179DC   .  8BCE          MOV ECX,ESI
004179DE   .  E8 C4A30100   CALL QQRecord.00431DA7
004179E3   .  8B5424 18     MOV EDX,DWORD PTR SS:[ESP+18]
004179E7   .  52            PUSH EDX
004179E8   .  68 8C334700   PUSH QQRecord.0047338C                   ;  serial
004179ED   .  68 80334700   PUSH QQRecord.00473380                   ;  register
004179F2   .  8BCE          MOV ECX,ESI
004179F4   .  E8 AEA30100   CALL QQRecord.00431DA7
004179F9   .  6A 00         PUSH 0
004179FB   .  6A 00         PUSH 0
004179FD   .  68 BC3B4700   PUSH QQRecord.00473BBC                   ;  注册成功
00417A02   .  E8 3D170100   CALL QQRecord.00429144
00417A07   .  8BCD          MOV ECX,EBP
00417A09   .  E8 1A190100   CALL QQRecord.00429328
00417A0E   .  EB 15         JMP SHORT QQRecord.00417A25
00417A10   >  6A 00         PUSH 0
00417A12   .  6A 00         PUSH 0
00417A14   .  68 C83B4700   PUSH QQRecord.00473BC8                   ;  序列号不对!


我们来看一下算法CALL 00411FC0

00411FC0   $  6A FF         PUSH -1
00411FC2   .  68 F6554600   PUSH QQRecord.004655F6
00411FC7   .  64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
00411FCD   .  50            PUSH EAX
00411FCE   .  81EC 24010000 SUB ESP,124
00411FD4   .  A1 80384800   MOV EAX,DWORD PTR DS:[483880]
00411FD9   .  33C4          XOR EAX,ESP
00411FDB   .  898424 200100>MOV DWORD PTR SS:[ESP+120],EAX
00411FE2   .  53            PUSH EBX
00411FE3   .  55            PUSH EBP
00411FE4   .  56            PUSH ESI
00411FE5   .  57            PUSH EDI
00411FE6   .  A1 80384800   MOV EAX,DWORD PTR DS:[483880]
00411FEB   .  33C4          XOR EAX,ESP
00411FED   .  50            PUSH EAX
00411FEE   .  8D8424 380100>LEA EAX,DWORD PTR SS:[ESP+138]
00411FF5   .  64:A3 0000000>MOV DWORD PTR FS:[0],EAX
00411FFB   .  8B8424 480100>MOV EAX,DWORD PTR SS:[ESP+148]
00412002   .  8B30          MOV ESI,DWORD PTR DS:[EAX]
00412004   .  33DB          XOR EBX,EBX
00412006   .  395E F4       CMP DWORD PTR DS:[ESI-C],EBX             ;  判断用户名是否为空
00412009   .  8BF9          MOV EDI,ECX
0041200B   .  897C24 28     MOV DWORD PTR SS:[ESP+28],EDI
0041200F   .  895C24 20     MOV DWORD PTR SS:[ESP+20],EBX
00412013   .  75 34         JNZ SHORT QQRecord.00412049
00412015   .  68 8E094700   PUSH QQRecord.0047098E
0041201A   .  E8 014FFFFF   CALL QQRecord.00406F20
0041201F   .  8BC7          MOV EAX,EDI
00412021   >  8B8C24 380100>MOV ECX,DWORD PTR SS:[ESP+138]
00412028   .  64:890D 00000>MOV DWORD PTR FS:[0],ECX
0041202F   .  59            POP ECX
00412030   .  5F            POP EDI
00412031   .  5E            POP ESI
00412032   .  5D            POP EBP
00412033   .  5B            POP EBX
00412034   .  8B8C24 200100>MOV ECX,DWORD PTR SS:[ESP+120]
0041203B   .  33CC          XOR ECX,ESP
0041203D   .  E8 4BAE0300   CALL QQRecord.0044CE8D
00412042   .  81C4 30010000 ADD ESP,130
00412048   .  C3            RETN
00412049   >  68 05010000   PUSH 105
0041204E   .  8D4424 30     LEA EAX,DWORD PTR SS:[ESP+30]
00412052   .  53            PUSH EBX
00412053   .  50            PUSH EAX
00412054   .  E8 97D20300   CALL QQRecord.0044F2F0
00412059   .  83C4 0C       ADD ESP,0C
0041205C   .  56            PUSH ESI
0041205D   .  8D4C24 30     LEA ECX,DWORD PTR SS:[ESP+30]
00412061   .  51            PUSH ECX
00412062   .  FF15 94734600 CALL DWORD PTR DS:[<&KERNEL32.lstrcpyA>] ;  kernel32.lstrcpyA
00412068   .  8D4424 2C     LEA EAX,DWORD PTR SS:[ESP+2C]
0041206C   .  8D50 01       LEA EDX,DWORD PTR DS:[EAX+1]
0041206F   .  90            NOP
00412070   >  8A08          MOV CL,BYTE PTR DS:[EAX]                 ;  循环取[12F0AC]处(用户名)的数据
00412072   .  83C0 01       ADD EAX,1
00412075   .  84C9          TEST CL,CL
00412077   .^ 75 F7         JNZ SHORT QQRecord.00412070
00412079   .  2BC2          SUB EAX,EDX
0041207B   .  894424 1C     MOV DWORD PTR SS:[ESP+1C],EAX            ;  计算用户名的位数 结果保存在[ESP+1C]中
0041207F   .  B8 E8234700   MOV EAX,QQRecord.004723E8
00412084   .  8D50 01       LEA EDX,DWORD PTR DS:[EAX+1]
00412087   >  8A08          MOV CL,BYTE PTR DS:[EAX]                 ;  循环取[4723E8]处的数据
00412089   .  83C0 01       ADD EAX,1
0041208C   .  84C9          TEST CL,CL
0041208E   .^ 75 F7         JNZ SHORT QQRecord.00412087
00412090   .  2BC2          SUB EAX,EDX
00412092   .  894424 24     MOV DWORD PTR SS:[ESP+24],EAX            ;  一共18位哦  结果保存在[ESP+24]中
00412096   .  B8 FC234700   MOV EAX,QQRecord.004723FC
0041209B   .  8D50 01       LEA EDX,DWORD PTR DS:[EAX+1]
0041209E   .  8BFF          MOV EDI,EDI
004120A0   >  8A08          MOV CL,BYTE PTR DS:[EAX]                 ;  循环取[4723FC]处的数据
004120A2   .  83C0 01       ADD EAX,1
004120A5   .  84C9          TEST CL,CL
004120A7   .^ 75 F7         JNZ SHORT QQRecord.004120A0
004120A9   .  2BC2          SUB EAX,EDX
004120AB   .  894424 20     MOV DWORD PTR SS:[ESP+20],EAX            ;  一共12位哦 结果保存在[ESP+20]中
004120AF   .  33FF          XOR EDI,EDI
004120B1   .  E8 82040100   CALL QQRecord.00422538
004120B6   .  33C9          XOR ECX,ECX
004120B8   .  3BC3          CMP EAX,EBX
004120BA   .  0F95C1        SETNE CL
004120BD   .  3BCB          CMP ECX,EBX
004120BF   .  75 0A         JNZ SHORT QQRecord.004120CB
004120C1   .  68 05400080   PUSH 80004005
004120C6   .  E8 654CFFFF   CALL QQRecord.00406D30
004120CB   >  8B10          MOV EDX,DWORD PTR DS:[EAX]
004120CD   .  8BC8          MOV ECX,EAX
004120CF   .  8B42 0C       MOV EAX,DWORD PTR DS:[EDX+C]
004120D2   .  FFD0          CALL EAX
004120D4   .  8D68 10       LEA EBP,DWORD PTR DS:[EAX+10]
004120D7   .  896C24 18     MOV DWORD PTR SS:[ESP+18],EBP
004120DB   .  33F6          XOR ESI,ESI
004120DD   .  89B424 400100>MOV DWORD PTR SS:[ESP+140],ESI
004120E4   .  E8 4F040100   CALL QQRecord.00422538
004120E9   .  33C9          XOR ECX,ECX
004120EB   .  3BC6          CMP EAX,ESI
004120ED   .  0F95C1        SETNE CL
004120F0   .  3BCE          CMP ECX,ESI
004120F2   .  75 0A         JNZ SHORT QQRecord.004120FE
004120F4   .  68 05400080   PUSH 80004005
004120F9   .  E8 324CFFFF   CALL QQRecord.00406D30
004120FE   >  8B10          MOV EDX,DWORD PTR DS:[EAX]
00412100   .  8BC8          MOV ECX,EAX
00412102   .  8B42 0C       MOV EAX,DWORD PTR DS:[EDX+C]
00412105   .  FFD0          CALL EAX
00412107   .  8D48 10       LEA ECX,DWORD PTR DS:[EAX+10]
0041210A   .  894C24 14     MOV DWORD PTR SS:[ESP+14],ECX
0041210E   .  837C24 1C 00  CMP DWORD PTR SS:[ESP+1C],0
00412113   .  C68424 400100>MOV BYTE PTR SS:[ESP+140],1
0041211B   .  0F86 8F000000 JBE QQRecord.004121B0
00412121   >  33D2          XOR EDX,EDX                              ;  算法循环从这里开始
00412123   .  8D47 01       LEA EAX,DWORD PTR DS:[EDI+1]
00412126   .  F77424 24     DIV DWORD PTR SS:[ESP+24]                ;  除以[ESP+24](第二组数据的位数)
0041212A   .  8D43 01       LEA EAX,DWORD PTR DS:[EBX+1]
0041212D   .  8BFA          MOV EDI,EDX
0041212F   .  33D2          XOR EDX,EDX
00412131   .  F77424 20     DIV DWORD PTR SS:[ESP+20]                ;  除以[ESP+20](第一组数据的位数)
00412135   .  8BDA          MOV EBX,EDX
00412137   .  8A83 FC234700 MOV AL,BYTE PTR DS:[EBX+4723FC]          ;  逐位取第二组数据
0041213D   .  3287 E8234700 XOR AL,BYTE PTR DS:[EDI+4723E8]          ;  异或第一组数据
00412143   .  324434 2C     XOR AL,BYTE PTR SS:[ESP+ESI+2C]          ;  异或用户名
00412147   .  04 13         ADD AL,13                                ;  AL+13
00412149   .  85F6          TEST ESI,ESI
0041214B   .  75 08         JNZ SHORT QQRecord.00412155
0041214D   .  0FBEC0        MOVSX EAX,AL                             ;  带符号位扩展
00412150   .  99            CDQ                                      ;  双字变四字
00412151   .  33C2          XOR EAX,EDX                              ;  异或
00412153   .  2BC2          SUB EAX,EDX                              ;  相减
00412155   >  3C 40         CMP AL,40                                ;  以下判断AL是否为英文字母
00412157   .  7E 04         JLE SHORT QQRecord.0041215D              ;  AL<=40 则跳   注意:41=A
00412159   .  3C 5B         CMP AL,5B                                ;  与5B比较,即判断AL是否为大写字母 5A=Z
0041215B   .  7C 0A         JL SHORT QQRecord.00412167
0041215D   >  8AC8          MOV CL,AL                                ;  继续判断是否为小写字母
0041215F   .  80E9 61       SUB CL,61
00412162   .  80F9 19       CMP CL,19
00412165   .  77 10         JA SHORT QQRecord.00412177               ;  若是小写字母  -61H后应小于19H
00412167   >  0FBED0        MOVSX EDX,AL                             ;  如果是英文字母 则跳到这里
0041216A   .  52            PUSH EDX
0041216B   .  68 88254700   PUSH QQRecord.00472588                   ;  ASCII "%c"
00412170   .  8D4424 20     LEA EAX,DWORD PTR SS:[ESP+20]
00412174   .  50            PUSH EAX
00412175   .  EB 0E         JMP SHORT QQRecord.00412185
00412177   >  0FBEC8        MOVSX ECX,AL
0041217A   .  51            PUSH ECX
0041217B   .  68 A01D4700   PUSH QQRecord.00471DA0                   ; ASCII "%d"
00412180   .  8D5424 20     LEA EDX,DWORD PTR SS:[ESP+20]
00412184   .  52            PUSH EDX
00412185   >  E8 56B9FFFF   CALL QQRecord.0040DAE0                   ; 得出最终结果的关键CALL
0041218A   .  8B6C24 24     MOV EBP,DWORD PTR SS:[ESP+24]
0041218E   .  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
00412191   .  83C4 0C       ADD ESP,0C
00412194   .  50            PUSH EAX
00412195   .  55            PUSH EBP
00412196   .  8D4C24 1C     LEA ECX,DWORD PTR SS:[ESP+1C]
0041219A   .  E8 C143FFFF   CALL QQRecord.00406560
0041219F   .  83C6 01       ADD ESI,1
004121A2   .  3B7424 1C     CMP ESI,DWORD PTR SS:[ESP+1C]
004121A6   .^ 0F82 75FFFFFF JB QQRecord.00412121                     ; 继续循环
004121AC   .  8B4C24 14     MOV ECX,DWORD PTR SS:[ESP+14]            ; 这里得出KEY
004121B0   >  8B71 F4       MOV ESI,DWORD PTR DS:[ECX-C]
004121B3   .  8B41 F8       MOV EAX,DWORD PTR DS:[ECX-8]
004121B6   .  BA 01000000   MOV EDX,1
004121BB   .  2B51 FC       SUB EDX,DWORD PTR DS:[ECX-4]
004121BE   .  2BC6          SUB EAX,ESI
004121C0   .  0BC2          OR EAX,EDX
004121C2   .  7D 0E         JGE SHORT QQRecord.004121D2
004121C4   .  56            PUSH ESI
004121C5   .  8D4C24 18     LEA ECX,DWORD PTR SS:[ESP+18]
004121C9   .  E8 B24BFFFF   CALL QQRecord.00406D80
004121CE   .  8B4C24 14     MOV ECX,DWORD PTR SS:[ESP+14]
004121D2   >  8D46 01       LEA EAX,DWORD PTR DS:[ESI+1]
004121D5   .  50            PUSH EAX
004121D6   .  51            PUSH ECX
004121D7   .  E8 0AC70300   CALL QQRecord.0044E8E6
004121DC   .  50            PUSH EAX
004121DD   .  E8 CE48FFFF   CALL QQRecord.00406AB0
004121E2   .  83C4 0C       ADD ESP,0C
004121E5   .  85F6          TEST ESI,ESI
004121E7   .  0F8C E9000000 JL QQRecord.004122D6
004121ED   .  8B4424 14     MOV EAX,DWORD PTR SS:[ESP+14]
004121F1   .  3B70 F8       CMP ESI,DWORD PTR DS:[EAX-8]
004121F4   .  0F8F DC000000 JG QQRecord.004122D6
004121FA   .  8970 F4       MOV DWORD PTR DS:[EAX-C],ESI
004121FD   .  8B4C24 14     MOV ECX,DWORD PTR SS:[ESP+14]
00412201   .  8D5C24 14     LEA EBX,DWORD PTR SS:[ESP+14]
00412205   .  C6040E 00     MOV BYTE PTR DS:[ESI+ECX],0
00412209   .  E8 02AAFFFF   CALL QQRecord.0040CC10
0041220E   .  8BF8          MOV EDI,EAX
00412210   .  E8 7BAAFFFF   CALL QQRecord.0040CC90
00412215   .  8B7424 14     MOV ESI,DWORD PTR SS:[ESP+14]
00412219   .  8B4E F0       MOV ECX,DWORD PTR DS:[ESI-10]
0041221C   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
0041221E   .  8B42 10       MOV EAX,DWORD PTR DS:[EDX+10]
00412221   .  83C6 F0       ADD ESI,-10
00412224   .  FFD0          CALL EAX
00412226   .  837E 0C 00    CMP DWORD PTR DS:[ESI+C],0
0041222A   .  8D4E 0C       LEA ECX,DWORD PTR DS:[ESI+C]
0041222D   .  7C 11         JL SHORT QQRecord.00412240
0041222F   .  3B06          CMP EAX,DWORD PTR DS:[ESI]
00412231   .  75 0D         JNZ SHORT QQRecord.00412240
00412233   .  8BFE          MOV EDI,ESI
00412235   .  BA 01000000   MOV EDX,1
0041223A   .  F0:0FC111     LOCK XADD DWORD PTR DS:[ECX],EDX         ;  LOCK 前缀
0041223E   .  EB 37         JMP SHORT QQRecord.00412277
00412240   >  8B4E 04       MOV ECX,DWORD PTR DS:[ESI+4]
00412243   .  8B10          MOV EDX,DWORD PTR DS:[EAX]
00412245   .  8B12          MOV EDX,DWORD PTR DS:[EDX]
00412247   .  6A 01         PUSH 1
00412249   .  51            PUSH ECX
0041224A   .  8BC8          MOV ECX,EAX
0041224C   .  FFD2          CALL EDX
0041224E   .  8BF8          MOV EDI,EAX
00412250   .  85FF          TEST EDI,EDI
00412252   .  75 05         JNZ SHORT QQRecord.00412259
00412254   .^ E9 C749FFFF   JMP QQRecord.00406C20
00412259   >  8B46 04       MOV EAX,DWORD PTR DS:[ESI+4]
0041225C   .  8947 04       MOV DWORD PTR DS:[EDI+4],EAX
0041225F   .  8B46 04       MOV EAX,DWORD PTR DS:[ESI+4]
00412262   .  83C0 01       ADD EAX,1
00412265   .  50            PUSH EAX
00412266   .  83C6 10       ADD ESI,10
00412269   .  56            PUSH ESI
0041226A   .  50            PUSH EAX
0041226B   .  8D4F 10       LEA ECX,DWORD PTR DS:[EDI+10]
0041226E   .  51            PUSH ECX
0041226F   .  E8 DFBC0300   CALL QQRecord.0044DF53
00412274   .  83C4 10       ADD ESP,10
00412277   >  8B7424 28     MOV ESI,DWORD PTR SS:[ESP+28]
0041227B   .  C68424 400100>MOV BYTE PTR SS:[ESP+140],0
00412283   .  8B4424 14     MOV EAX,DWORD PTR SS:[ESP+14]
00412287   .  83C7 10       ADD EDI,10
0041228A   .  83C0 F0       ADD EAX,-10
0041228D   .  893E          MOV DWORD PTR DS:[ESI],EDI
0041228F   .  8D50 0C       LEA EDX,DWORD PTR DS:[EAX+C]
00412292   .  83C9 FF       OR ECX,FFFFFFFF
00412295   .  F0:0FC10A     LOCK XADD DWORD PTR DS:[EDX],ECX         ;  LOCK 前缀
00412299   .  49            DEC ECX
0041229A   .  85C9          TEST ECX,ECX
0041229C   .  7F 0A         JG SHORT QQRecord.004122A8
0041229E   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
004122A0   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
004122A2   .  50            PUSH EAX
004122A3   .  8B42 04       MOV EAX,DWORD PTR DS:[EDX+4]
004122A6   .  FFD0          CALL EAX
004122A8   >  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
004122AB   .  C78424 400100>MOV DWORD PTR SS:[ESP+140],-1
004122B6   .  8D48 0C       LEA ECX,DWORD PTR DS:[EAX+C]
004122B9   .  83CA FF       OR EDX,FFFFFFFF
004122BC   .  F0:0FC111     LOCK XADD DWORD PTR DS:[ECX],EDX         ;  LOCK 前缀
004122C0   .  4A            DEC EDX
004122C1   .  85D2          TEST EDX,EDX
004122C3   .  7F 0A         JG SHORT QQRecord.004122CF
004122C5   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
004122C7   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
004122C9   .  50            PUSH EAX
004122CA   .  8B42 04       MOV EAX,DWORD PTR DS:[EDX+4]
004122CD   .  FFD0          CALL EAX
004122CF   >  8BC6          MOV EAX,ESI
004122D1   .^ E9 4BFDFFFF   JMP QQRecord.00412021

JMP到这里:

00412021   > /8B8C24 380100>MOV ECX,DWORD PTR SS:[ESP+138]
00412028   . |64:890D 00000>MOV DWORD PTR FS:[0],ECX
0041202F   . |59            POP ECX
00412030   . |5F            POP EDI
00412031   . |5E            POP ESI
00412032   . |5D            POP EBP
00412033   . |5B            POP EBX
00412034   . |8B8C24 200100>MOV ECX,DWORD PTR SS:[ESP+120]
0041203B   . |33CC          XOR ECX,ESP
0041203D   . |E8 4BAE0300   CALL QQRecord.0044CE8D
00412042   . |81C4 30010000 ADD ESP,130
00412048   . |C3            RETN                                    ;  返回


我们再来看一下算法中的几处关键数据:

004723E8  0E 3C 2D 4B 5C 4F 98 10 0C 9E AB FE 0F 2D 1B 70  <-K\O?.灚?-p
004723F8  29 1B 00 00 4D A4 9B CA 2D 39 FC CF D2 CD 2A AC  )..M??9?彝*
00472408  4C 01                                            L

[4723E8]和[4723E8]这些数据是从何而来呢?是生来就有呢?还是……,我们重新OD载入,然后d 4723E8,呵呵,比较幸运果然是生来就有。是否是固定值呢?恩,如果不是那软件作者在计算KEY的时候可就费事了,因为他只能得到注册者的用户名。

/////////////////////////////////////////////////////////

我们简单的看一下算法中的这个关键CALL:00412185 CALL 0040DAE0

0040DAE0    8B4C24 08       MOV ECX,DWORD PTR SS:[ESP+8]             ; F7跟进后来到这里
0040DAE4    8D4424 0C       LEA EAX,DWORD PTR SS:[ESP+C]
0040DAE8    50              PUSH EAX
0040DAE9    51              PUSH ECX
0040DAEA    8B4C24 0C       MOV ECX,DWORD PTR SS:[ESP+C]
0040DAEE    E8 5DFFFFFF     CALL QQRecord.0040DA50                   ; 跟进
0040DAF3    C3              RETN
////////////////
0040DA9F    E8 1F0C0400     CALL QQRecord.0044E6C3                   ; 这个CALL
////////////////
0044E6D5    E8 63FFFFFF     CALL QQRecord.0044E63D                   ; 继续跟进
//////////////
0044E691    E8 DDFEFFFF     CALL QQRecord.0044E573                   ; 继续跟进
//////////
0044E5F7    FF55 08         CALL DWORD PTR SS:[EBP+8]                ; 进到这个CALL就看到算法了
////////

跟进这个CALL就可以找到算法部分了:先做一个简单运算,然后对结果做满足条件的跳转,最终得出结果。这里比较麻烦,有兴趣的朋友自己跟一下吧。(注意:其他的CALL不要轻易进,否则OD会挂掉。)

/////////////////////////////////////////////////////////


提供一组KEY

用户名:Nisy
注册码:23-14527

对解密不了解的程序员大都不将KEY加密便直接保存放到注册表或某个文件,例如这个软件就将注册信息放到了这里:HKEY_CURRENT_USER\Software\msddr\srecord\qq\QQRecord\Register。 如何得来,进注册表搜索我们的注册码即可,这就是不加密保存的弊端之一。

11.gif
PYG19周年生日快乐!

该用户从未签到

发表于 2007-8-15 16:24:30 | 显示全部楼层
我的序列号有14位......
这个是明码比较
算法循环  异或 似乎是分别从 2组数据的第2个数据开始的 没怎么仔细分析
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-5-14 11:54
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2007-8-21 20:59:37 | 显示全部楼层
    学习在学习,对我等菜鸟实在是太好了,谢谢分享!/:good
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2017-6-11 12:16
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2007-8-22 22:08:17 | 显示全部楼层
    来支持下。~~~~/:014
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-3-28 02:20:15 | 显示全部楼层
    支持一下吧!!!!!!!!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-4-2 12:58:31 | 显示全部楼层
    学学 现在还不是很清楚  谢谢
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-8-30 01:22:42 | 显示全部楼层
    /:L /:L /:L /:L /:L
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-9-28 11:17:48 | 显示全部楼层
    学习在学习,对我等菜鸟实在是太好了,谢谢分享!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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