千里之外 发表于 2007-5-28 13:24:45

菜鸟算法5

【文章标题】: 超级百科知识算法分析
【文章作者】: 千里之外
【作者邮箱】: [email protected]
【作者主页】: www.wm5.net.cn
【作者QQ号】: 506398911
【软件名称】: 超级百科知识
【下载地址】: http://free.ys168.com/?506398911
【保护方式】: 注册码
【编写语言】: Borland Delphi 6.0 - 7.0
【使用工具】: OD PEID
【操作平台】: WINXP2
【作者声明】: 谢谢 PYG论坛的fonge大哥的热心指导 没有你 我也许离写出算法还很远 再次感谢 祝好人一生平安

----------------------------------------------------------------------

----------
【详细过程】

大家好这个是我刚刚接触破解时按前辈的方法爆破的第一个软件因为最近在学习算法 还有看了野猫一篇类似的文章 就拿出来分析了下 竟然大体分析出来了   呵呵在这里和大家交流下

搜索 你填写的注册码错误,请重新核对准确。\n\n如果你是软件注册用户,请与作

者联系。很快来到这里


00536E42|.55            PUSH EBP
00536E43|.68 8C705300   PUSH kxcd.0053708C
00536E48|.64:FF30       PUSH DWORD PTR FS:
00536E4B|.64:8920       MOV DWORD PTR FS:,ESP
00536E4E|.68 80000000   PUSH 80                                  ; /BufSize = 80 (128.)
00536E53|.8D85 7BFFFFFF LEA EAX,DWORD PTR SS:            ; |
00536E59|.50            PUSH EAX                                 ; |Buffer
00536E5A|.E8 7D02EDFF   CALL <JMP.&kernel32.GetSystemDirectoryA> ; \GetSystemDirectoryA
00536E5F|.8D45 FC       LEA EAX,DWORD PTR SS:
00536E62|.8D95 7BFFFFFF LEA EDX,DWORD PTR SS:
00536E68|.B9 81000000   MOV ECX,81
00536E6D|.E8 DADBECFF   CALL kxcd.00404A4C
00536E72|.8D95 74FFFFFF LEA EDX,DWORD PTR SS:
00536E78|.8B83 00030000 MOV EAX,DWORD PTR DS:
00536E7E|.E8 39F1F0FF   CALL kxcd.00445FBC
00536E83|.83BD 74FFFFFF>CMP DWORD PTR SS:,0
00536E8A|.74 1A         JE SHORT kxcd.00536EA6
00536E8C|.8D95 70FFFFFF LEA EDX,DWORD PTR SS:
00536E92|.8B83 04030000 MOV EAX,DWORD PTR DS:
00536E98|.E8 1FF1F0FF   CALL kxcd.00445FBC
00536E9D|.83BD 70FFFFFF>CMP DWORD PTR SS:,0
00536EA4|.75 0F         JNZ SHORT kxcd.00536EB5
00536EA6|>B8 A4705300   MOV EAX,kxcd.005370A4                  ;注册信息没有填写完毕!
00536EAB|.E8 0083F0FF   CALL kxcd.0043F1B0
00536EB0|.E9 5F010000   JMP kxcd.00537014
00536EB5|>8D95 6CFFFFFF LEA EDX,DWORD PTR SS:
00536EBB|.8B83 04030000 MOV EAX,DWORD PTR DS:
00536EC1|.E8 F6F0F0FF   CALL kxcd.00445FBC
00536EC6|.8B85 6CFFFFFF MOV EAX,DWORD PTR SS:
00536ECC|.50            PUSH EAX
00536ECD|.8D95 64FFFFFF LEA EDX,DWORD PTR SS:
00536ED3|.8B83 00030000 MOV EAX,DWORD PTR DS:         ;XZS
00536ED9|.E8 DEF0F0FF   CALL kxcd.00445FBC
00536EDE|.8B85 64FFFFFF MOV EAX,DWORD PTR SS:
00536EE4|.E8 0F25EDFF   CALL kxcd.004093F8
00536EE9|.B9 BF000000   MOV ECX,0BF                              ;OBF
00536EEE|.99            CDQ
00536EEF|.F7F9          IDIV ECX                                 ;123456的16进制/BF 余数送DL=46
00536EF1|.8BC2          MOV EAX,EDX
00536EF3|.8D95 68FFFFFF LEA EDX,DWORD PTR SS:
00536EF9|.E8 9624EDFF   CALL kxcd.00409394                     ;46转为10进制70
00536EFE|.8D85 68FFFFFF LEA EAX,DWORD PTR SS:
00536F04|.50            PUSH EAX
00536F05|.8D95 58FFFFFF LEA EDX,DWORD PTR SS:
00536F0B|.8B83 00030000 MOV EAX,DWORD PTR DS:         ;XZS
00536F11|.E8 A6F0F0FF   CALL kxcd.00445FBC
00536F16|.8B85 58FFFFFF MOV EAX,DWORD PTR SS:
00536F1C|.E8 D724EDFF   CALL kxcd.004093F8
00536F21|.8D95 5CFFFFFF LEA EDX,DWORD PTR SS:
00536F27|.E8 30FBFFFF   CALL kxcd.00536A5C                     ;第一个算法CALL
00536F2C|.8B85 5CFFFFFF MOV EAX,DWORD PTR SS:            ;70648174
00536F32|.E8 C124EDFF   CALL kxcd.004093F8
00536F37|.8D95 60FFFFFF LEA EDX,DWORD PTR SS:
00536F3D|.E8 FAFBFFFF   CALL kxcd.00536B3C                     ;第二个算法CALL
00536F42|.8B95 60FFFFFF MOV EDX,DWORD PTR SS:            ;36l5u412~f1449
00536F48|.58            POP EAX
00536F49|.E8 56DBECFF   CALL kxcd.00404AA4
00536F4E|.8B95 68FFFFFF MOV EDX,DWORD PTR SS:            ;7036l5u412~f1449多了个70
00536F54|.58            POP EAX
00536F55|.E8 86DCECFF   CALL kxcd.00404BE0
00536F5A|.0F85 9D000000 JNZ kxcd.00536FFD
00536F60|.B8 C4705300   MOV EAX,kxcd.005370C4                  ;注册成功,谢谢您的注册!
00536F65|.E8 4682F0FF   CALL kxcd.0043F1B0
00536F6A|.8BC3          MOV EAX,EBX
00536F6C|.E8 37C9F2FF   CALL kxcd.004638A8
00536F71|.A1 18CF5300   MOV EAX,DWORD PTR DS:
00536F76|.8B00          MOV EAX,DWORD PTR DS:
00536F78|.8B80 B4030000 MOV EAX,DWORD PTR DS:
00536F7E|.BA E8705300   MOV EDX,kxcd.005370E8                  ;软件已注册
00536F83|.E8 64F0F0FF   CALL kxcd.00445FEC
00536F88|.8D85 54FFFFFF LEA EAX,DWORD PTR SS:
00536F8E|.B9 FC705300   MOV ECX,kxcd.005370FC                  ;\koat.t1b
00536F93|.8B55 FC       MOV EDX,DWORD PTR SS:
00536F96|.E8 4DDBECFF   CALL kxcd.00404AE8
00536F9B|.8B8D 54FFFFFF MOV ECX,DWORD PTR SS:
00536FA1|.B2 01         MOV DL,1
00536FA3|.A1 5C944600   MOV EAX,DWORD PTR DS:
00536FA8|.E8 5F25F3FF   CALL kxcd.0046950C
00536FAD|.8BF0          MOV ESI,EAX
00536FAF|.8D95 50FFFFFF LEA EDX,DWORD PTR SS:
00536FB5|.8B83 00030000 MOV EAX,DWORD PTR DS:
00536FBB|.E8 FCEFF0FF   CALL kxcd.00445FBC
00536FC0|.8B85 50FFFFFF MOV EAX,DWORD PTR SS:
00536FC6|.50            PUSH EAX
00536FC7|.B9 10715300   MOV ECX,kxcd.00537110                  ;s532567
00536FCC|.BA 20715300   MOV EDX,kxcd.00537120                  ;sy54m
00536FD1|.8BC6          MOV EAX,ESI
00536FD3|.8B18          MOV EBX,DWORD PTR DS:
00536FD5|.FF53 04       CALL DWORD PTR DS:
00536FD8|.8D85 4CFFFFFF LEA EAX,DWORD PTR SS:
00536FDE|.B9 FC705300   MOV ECX,kxcd.005370FC                  ;\koat.t1b
00536FE3|.8B55 FC       MOV EDX,DWORD PTR SS:
00536FE6|.E8 FDDAECFF   CALL kxcd.00404AE8
00536FEB|.8B85 4CFFFFFF MOV EAX,DWORD PTR SS:
00536FF1|.BA 02000000   MOV EDX,2
00536FF6|.E8 4526EDFF   CALL kxcd.00409640
00536FFB|.EB 17         JMP SHORT kxcd.00537014
00536FFD|>B8 30715300   MOV EAX,kxcd.00537130                  ;你填写的注册码错误,请重新核对准确。\n\n如果你是软件注册用户,请与作者联系。
00537002|.E8 A981F0FF   CALL kxcd.0043F1B0
00537007|.33D2          XOR EDX,EDX
00537009|.8B83 04030000 MOV EAX,DWORD PTR DS:
0053700F|.E8 D8EFF0FF   CALL kxcd.00445FEC
00537014|>33C0          XOR EAX,EAX
00537016|.5A            POP EDX

第一个算法CALL

00536A5C/$55            PUSH EBP
00536A5D|.8BEC          MOV EBP,ESP
00536A5F|.33C9          XOR ECX,ECX
00536A61|.51            PUSH ECX
00536A62|.51            PUSH ECX
00536A63|.51            PUSH ECX
00536A64|.51            PUSH ECX
00536A65|.53            PUSH EBX
00536A66|.56            PUSH ESI
00536A67|.8BF2          MOV ESI,EDX
00536A69|.8BD8          MOV EBX,EAX
00536A6B|.33C0          XOR EAX,EAX
00536A6D|.55            PUSH EBP
00536A6E|.68 2C6B5300   PUSH kxcd.00536B2C
00536A73|.64:FF30       PUSH DWORD PTR FS:
00536A76|.64:8920       MOV DWORD PTR FS:,ESP
00536A79|.81F3 F1250B00 XOR EBX,0B25F1                           ;123456的16进制 XOR B25F1=AC7B1
00536A7F|.8BC3          MOV EAX,EBX
00536A81|.33D2          XOR EDX,EDX
00536A83|.52            PUSH EDX                                 ; /Arg2 => 00000000
00536A84|.50            PUSH EAX                                 ; |Arg1
00536A85|.8D45 FC       LEA EAX,DWORD PTR SS:             ; |
00536A88|.E8 3729EDFF   CALL kxcd.004093C4                     ; \将上面的数转化为10进制 706481
00536A8D|.8B45 FC       MOV EAX,DWORD PTR SS:
00536A90|.0FB600      MOVZX EAX,BYTE PTR DS:            ;第一个字符737(16进制)
00536A93|.8B55 FC       MOV EDX,DWORD PTR SS:
00536A96|.0FB652 01   MOVZX EDX,BYTE PTR DS:            ;第2个字符030(16进制)
00536A9A|.03C2          ADD EAX,EDX                              ;eax=37+30=67
00536A9C|.B9 05000000   MOV ECX,5
00536AA1|.99            CDQ
00536AA2|.F7F9          IDIV ECX                                 ;67/5 余数送DL=3
00536AA4|.80C2 34       ADD DL,34                              ;DL=3+34=37
00536AA7|.8855 F8       MOV BYTE PTR SS:,DL               ;字符7
00536AAA|.8B45 FC       MOV EAX,DWORD PTR SS:
00536AAD|.0FB640 02   MOVZX EAX,BYTE PTR DS:            ;第3个字符6 36(16进制)
00536AB1|.8B55 FC       MOV EDX,DWORD PTR SS:
00536AB4|.0FB652 03   MOVZX EDX,BYTE PTR DS:            ;第4个字符434(16进制)
00536AB8|.03C2          ADD EAX,EDX                              ;eax=36+34=6a
00536ABA|.B9 05000000   MOV ECX,5
00536ABF|.99            CDQ
00536AC0|.F7F9          IDIV ECX                                 ;6a/5 余数送DL=1
00536AC2|.8BDA          MOV EBX,EDX
00536AC4|.80C3 33       ADD BL,33                              ;bl=1+33=34
00536AC7|.885D F9       MOV BYTE PTR SS:,BL               ;字符4
00536ACA|.8D45 F4       LEA EAX,DWORD PTR SS:
00536ACD|.8A55 F8       MOV DL,BYTE PTR SS:
00536AD0|.E8 EFDEECFF   CALL kxcd.004049C4
00536AD5|.8B45 F4       MOV EAX,DWORD PTR SS:
00536AD8|.8D55 FC       LEA EDX,DWORD PTR SS:
00536ADB|.B9 1B000000   MOV ECX,1B
00536AE0|.E8 97E2ECFF   CALL kxcd.00404D7C
00536AE5|.8D45 F0       LEA EAX,DWORD PTR SS:
00536AE8|.8BD3          MOV EDX,EBX
00536AEA|.E8 D5DEECFF   CALL kxcd.004049C4
00536AEF|.8B45 F0       MOV EAX,DWORD PTR SS:
00536AF2|.8D55 FC       LEA EDX,DWORD PTR SS:
00536AF5|.B9 19000000   MOV ECX,19
00536AFA|.E8 7DE2ECFF   CALL kxcd.00404D7C
00536AFF|.8BC6          MOV EAX,ESI
00536B01|.8B55 FC       MOV EDX,DWORD PTR SS:             ;706481与74相连得 70648174
00536B04|.E8 2FDDECFF   CALL kxcd.00404838
00536B09|.33C0          XOR EAX,EAX


第2个算法CALL

00536B3C/$55            PUSH EBP
00536B3D|.8BEC          MOV EBP,ESP
00536B3F|.33C9          XOR ECX,ECX
00536B41|.51            PUSH ECX
00536B42|.51            PUSH ECX
00536B43|.51            PUSH ECX
00536B44|.51            PUSH ECX
00536B45|.51            PUSH ECX
00536B46|.51            PUSH ECX
00536B47|.53            PUSH EBX
00536B48|.56            PUSH ESI
00536B49|.8BF2          MOV ESI,EDX
00536B4B|.8BD8          MOV EBX,EAX
00536B4D|.33C0          XOR EAX,EAX
00536B4F|.55            PUSH EBP
00536B50|.68 886C5300   PUSH kxcd.00536C88
00536B55|.64:FF30       PUSH DWORD PTR FS:
00536B58|.64:8920       MOV DWORD PTR FS:,ESP
00536B5B|.81F3 8776FBDD XOR EBX,DDFB7687                         ;70648174的16进制 xor ddfb7687=D9CD77E9
00536B61|.8BC3          MOV EAX,EBX
00536B63|.33D2          XOR EDX,EDX
00536B65|.52            PUSH EDX                                 ; /Arg2 => 00000000
00536B66|.50            PUSH EAX                                 ; |Arg1
00536B67|.8D45 FC       LEA EAX,DWORD PTR SS:             ; |
00536B6A|.E8 5528EDFF   CALL kxcd.004093C4                     ; \将上面的数转化为10进制 3654121449
00536B6F|.8B45 FC       MOV EAX,DWORD PTR SS:
00536B72|.0FB600      MOVZX EAX,BYTE PTR DS:            ;第一个字符333(16进制)
00536B75|.8B55 FC       MOV EDX,DWORD PTR SS:
00536B78|.0FB652 01   MOVZX EDX,BYTE PTR DS:            ;第2个字符636
00536B7C|.03C2          ADD EAX,EDX                              ;69
00536B7E|.B9 05000000   MOV ECX,5
00536B83|.99            CDQ
00536B84|.F7F9          IDIV ECX                                 ;69/5 余数送DL=0
00536B86|.80C2 66       ADD DL,66                              ;66
00536B89|.8855 F8       MOV BYTE PTR SS:,DL               ;字符 f
00536B8C|.8B45 FC       MOV EAX,DWORD PTR SS:
00536B8F|.0FB640 02   MOVZX EAX,BYTE PTR DS:            ;第3个字符 535(16进制)
00536B93|.8B55 FC       MOV EDX,DWORD PTR SS:
00536B96|.0FB652 03   MOVZX EDX,BYTE PTR DS:            ;第4个字符4   34(16进制)
00536B9A|.03C2          ADD EAX,EDX
00536B9C|.B9 05000000   MOV ECX,5
00536BA1|.99            CDQ
00536BA2|.F7F9          IDIV ECX                                 ;69/5 余数送DL=0
00536BA4|.80C2 75       ADD DL,75                              ;75
00536BA7|.8855 F9       MOV BYTE PTR SS:,DL               ;字符u
00536BAA|.8B45 FC       MOV EAX,DWORD PTR SS:
00536BAD|.0FB640 04   MOVZX EAX,BYTE PTR DS:            ;第5个字符131(16进制)
00536BB1|.8B55 FC       MOV EDX,DWORD PTR SS:
00536BB4|.0FB652 05   MOVZX EDX,BYTE PTR DS:            ;第6个字符232(16进制)
00536BB8|.03C2          ADD EAX,EDX
00536BBA|.B9 05000000   MOV ECX,5
00536BBF|.99            CDQ
00536BC0|.F7F9          IDIV ECX                                 ;63/5 余数送DL=4
00536BC2|.80C2 7A       ADD DL,7A                              ;4+7A=7E
00536BC5|.8855 FA       MOV BYTE PTR SS:,DL               ;字符 ~
00536BC8|.8B45 FC       MOV EAX,DWORD PTR SS:
00536BCB|.0FB640 06   MOVZX EAX,BYTE PTR DS:            ;第7个字符131(16进制)
00536BCF|.8B55 FC       MOV EDX,DWORD PTR SS:
00536BD2|.0FB652 07   MOVZX EDX,BYTE PTR DS:            ;第8个字符4 34(16进制)
00536BD6|.03C2          ADD EAX,EDX                              ;65
00536BD8|.8B55 FC       MOV EDX,DWORD PTR SS:
00536BDB|.0FB652 08   MOVZX EDX,BYTE PTR DS:            ;第9个字符434
00536BDF|.03C2          ADD EAX,EDX                              ;第7 8 9字符的16进制相加=99
00536BE1|.B9 05000000   MOV ECX,5
00536BE6|.99            CDQ
00536BE7|.F7F9          IDIV ECX                                 ;99/5 余数送DL=3
00536BE9|.80C2 69       ADD DL,69                              ;3+69=6C
00536BEC|.8855 FB       MOV BYTE PTR SS:,DL               ;字符 1
00536BEF|.8D45 F4       LEA EAX,DWORD PTR SS:
00536BF2|.8A55 F8       MOV DL,BYTE PTR SS:
00536BF5|.E8 CADDECFF   CALL kxcd.004049C4
00536BFA|.8B45 F4       MOV EAX,DWORD PTR SS:
00536BFD|.8D55 FC       LEA EDX,DWORD PTR SS:
00536C00|.B9 07000000   MOV ECX,7
00536C05|.E8 72E1ECFF   CALL kxcd.00404D7C
00536C0A|.8D45 F0       LEA EAX,DWORD PTR SS:
00536C0D|.8A55 FB       MOV DL,BYTE PTR SS:
00536C10|.E8 AFDDECFF   CALL kxcd.004049C4
00536C15|.8B45 F0       MOV EAX,DWORD PTR SS:
00536C18|.8D55 FC       LEA EDX,DWORD PTR SS:
00536C1B|.B9 03000000   MOV ECX,3
00536C20|.E8 57E1ECFF   CALL kxcd.00404D7C
00536C25|.8D45 EC       LEA EAX,DWORD PTR SS:
00536C28|.8A55 F9       MOV DL,BYTE PTR SS:
00536C2B|.E8 94DDECFF   CALL kxcd.004049C4
00536C30|.8B45 EC       MOV EAX,DWORD PTR SS:
00536C33|.8D55 FC       LEA EDX,DWORD PTR SS:
00536C36|.B9 05000000   MOV ECX,5
00536C3B|.E8 3CE1ECFF   CALL kxcd.00404D7C
00536C40|.8D45 E8       LEA EAX,DWORD PTR SS:
00536C43|.8A55 FA       MOV DL,BYTE PTR SS:
00536C46|.E8 79DDECFF   CALL kxcd.004049C4
00536C4B|.8B45 E8       MOV EAX,DWORD PTR SS:
00536C4E|.8D55 FC       LEA EDX,DWORD PTR SS:
00536C51|.B9 09000000   MOV ECX,9
00536C56|.E8 21E1ECFF   CALL kxcd.00404D7C
00536C5B|.8BC6          MOV EAX,ESI
00536C5D|.8B55 FC       MOV EDX,DWORD PTR SS:
00536C60|.E8 D3DBECFF   CALL kxcd.00404838
00536C65|.33C0          XOR EAX,EAX
00536C67|.5A            POP EDX
00536C68|.59            POP ECX
00536C69|.59            POP ECX
00536C6A|.64:8910       MOV DWORD PTR FS:,EDX
00536C6D|.68 8F6C5300   PUSH kxcd.00536C8F
00536C72|>8D45 E8       LEA EAX,DWORD PTR SS:
00536C75|.BA 04000000   MOV EDX,4
00536C7A|.E8 89DBECFF   CALL kxcd.00404808
00536C7F|.8D45 FC       LEA EAX,DWORD PTR SS:
00536C82|.E8 5DDBECFF   CALL kxcd.004047E4
00536C87\.C3            RETN
00536C88   .^ E9 FBD3ECFF   JMP kxcd.00404088
00536C8D   .^ EB E3         JMP SHORT kxcd.00536C72
00536C8F   .5E            POP ESI


--------------------------------------------------------------------------------
【经验总结】
   我的假确定码 123456注册码 123

1.将确定码123456的16进制/BF 余数送DL=46在将46转化为10进制70记做X

2.将确定码123456的16进制 XOR B25F1=AC7B1转化为10进制 706481取它的第1和2位 16进制ASIIC相加/5 余数加34 转
化为字符‘7’
再取它的第3和4位16进制ASIIC相加/5 余数加33 转化为字符 ‘4’ 然后706481与74相连得 70648174记做Y

3.Y的16进制 xor ddfb7687=D9CD77E9   转化为10进制3654121449   记做M
取它的第1和2位 16进制ASIIC相加/5 余数加66 转化为字符'f'
取它的第3和4位 16进制ASIIC相加/5 余数加75 转化为字符'u'      
取它的第5和6位 16进制ASIIC相加/5 余数加7a 转化为字符'~'
取它的第7 8 9位 16进制ASIIC相加/5 余数加69 转化为字符'1'
得到字符fu~1记做Z

4.Z 与 M 适当组合后加 上X 就是注册码即 fu~1与3654121449 适当组合后加 上70 就是注册码

注册码这样排列 7036+'1'+54+'u'+412+'~f'+1449 我的注册码就是 7036l5u412~f1449


【版权声明】:谢谢 PYG论坛的fonge大哥的热心指导 没有你 我也许离写出算法还很远 再次感谢 祝好人一生平安




                                                      

12:59:38

[ 本帖最后由 千里之外 于 2007-5-28 13:37 编辑 ]

pw2000 发表于 2007-5-28 14:46:36

向楼主学习。

chadd 发表于 2007-5-28 18:31:04

好教程!

Luckly 发表于 2007-5-28 18:32:49

不错....

hfhy1976 发表于 2007-5-29 11:48:53

看了以后才知道需要倍加努力了!

fonge 发表于 2007-5-30 10:27:55

写注册机呢?试试看
把算法代码还原成源码原形!

千里之外 发表于 2007-5-30 12:12:51

这个我初学易语言 注册机还不会写/:02   请 FONGE大哥帮下忙 /:09

zsl01 发表于 2008-9-23 08:18:38

很好,值得我们这些新手们学习。

a13639875277 发表于 2008-9-26 21:22:00

你的算法分析我一直在看,努力学习中

zsl01 发表于 2008-9-28 16:50:19

呵呵,进步还不小,我们这些人还要努力啊。
页: [1]
查看完整版本: 菜鸟算法5