smile1110 发表于 2015-11-23 19:18

绝对好取名之分析

本帖最后由 smile1110 于 2015-11-23 19:23 编辑

凌晨的时候看了坛友 ID:377610458 写的《绝对好取名软件(附带教程)》(http://www.52pojie.cn/thread-427679-1-1.html)这篇文章。

其文中给出的这个关键call还是相当准确到位的



这个追码地址经过反复测试其实下列这处可能效果更好



这个关键call内部俺花费了半天功夫反复测试,发现大致与注释相同

004080C0/$6A FF         PUSH -0x1
004080C2|.68 283B5900   PUSH BestName.00593B28
004080C7|.64:A1 0000000>MOV EAX,DWORD PTR FS:
004080CD|.50            PUSH EAX
004080CE|.83EC 20       SUB ESP,0x20
004080D1|.A1 A0EF6100   MOV EAX,DWORD PTR DS:
004080D6|.33C4          XOR EAX,ESP
004080D8|.50            PUSH EAX
004080D9|.8D4424 24   LEA EAX,DWORD PTR SS:
004080DD|.64:A3 0000000>MOV DWORD PTR FS:,EAX
004080E3|.8D4C24 04   LEA ECX,DWORD PTR SS:
004080E7|.FF15 C4E55A00 CALL DWORD PTR DS:[<&mfc90u.#296>]       ;mfc90u.#316
004080ED|.8D4424 04   LEA EAX,DWORD PTR SS:
004080F1|.50            PUSH EAX
004080F2|.C74424 30 000>MOV DWORD PTR SS:,0x0
004080FA|.E8 C192FFFF   CALL BestName.004013C0
004080FF|.83C4 04       ADD ESP,0x4                              ;压入假码
00408102|.8D4C24 10   LEA ECX,DWORD PTR SS:
00408106|.FF15 C4E55A00 CALL DWORD PTR DS:[<&mfc90u.#296>]       ;mfc90u.#316
0040810C|.8D4C24 10   LEA ECX,DWORD PTR SS:
00408110|.51            PUSH ECX
00408111|.C64424 30 01MOV BYTE PTR SS:,0x1
00408116|.E8 4592FFFF   CALL BestName.00401360
0040811B|.83C4 04       ADD ESP,0x4
0040811E|.8D4C24 0C   LEA ECX,DWORD PTR SS:
00408122|.FF15 C4E55A00 CALL DWORD PTR DS:[<&mfc90u.#296>]       ;mfc90u.#316
00408128|.8D5424 1C   LEA EDX,DWORD PTR SS:
0040812C|.52            PUSH EDX
0040812D|.C64424 30 02MOV BYTE PTR SS:,0x2
00408132|.E8 B995FFFF   CALL BestName.004016F0
00408137|.50            PUSH EAX
00408138|.8D4424 18   LEA EAX,DWORD PTR SS:
0040813C|.50            PUSH EAX
0040813D|.8D4C24 24   LEA ECX,DWORD PTR SS:
00408141|.51            PUSH ECX
00408142|.C64424 3C 03MOV BYTE PTR SS:,0x3
00408147|.E8 0495FFFF   CALL BestName.00401650
0040814C|.83C4 10       ADD ESP,0x10
0040814F|.8D4C24 1C   LEA ECX,DWORD PTR SS:
00408153|.C64424 2C 05MOV BYTE PTR SS:,0x5
00408158|.FF15 80DA5A00 CALL DWORD PTR DS:[<&mfc90u.#600>]       ;mfc90u.#601
0040815E|.8D5424 0C   LEA EDX,DWORD PTR SS:
00408162|.52            PUSH EDX
00408163|.51            PUSH ECX
00408164|.8D4424 20   LEA EAX,DWORD PTR SS:
00408168|.8BCC          MOV ECX,ESP
0040816A|.896424 28   MOV DWORD PTR SS:,ESP
0040816E|.50            PUSH EAX                                 ; /Arg1
0040816F|.FF15 18E35A00 CALL DWORD PTR DS:[<&mfc90u.#280>]       ; \#280
00408175|.E8 86FCFFFF   CALL BestName.00407E00                   ;压入机器码
0040817A|.83C4 08       ADD ESP,0x8
0040817D|.8D4C24 08   LEA ECX,DWORD PTR SS:         ;0012E718   02BDA208UNICODE "NYDDI3LGMP"
00408181|.FF15 C4E55A00 CALL DWORD PTR DS:[<&mfc90u.#296>]       ;NXNODYGO54
00408187|.8D4C24 1C   LEA ECX,DWORD PTR SS:
0040818B|.51            PUSH ECX
0040818C|.C64424 30 06MOV BYTE PTR SS:,0x6         ;压入真码
00408191|.E8 5A95FFFF   CALL BestName.004016F0
00408196|.50            PUSH EAX
00408197|.8D5424 1C   LEA EDX,DWORD PTR SS:
0040819B|.68 88EF5A00   PUSH BestName.005AEF88                   ;V2015
004081A0|.52            PUSH EDX
004081A1|.C64424 3C 07MOV BYTE PTR SS:,0x7
004081A6|.E8 A593FFFF   CALL BestName.00401550
004081AB|.83C4 10       ADD ESP,0x10
004081AE|.8D4C24 1C   LEA ECX,DWORD PTR SS:
004081B2|.C64424 2C 09MOV BYTE PTR SS:,0x9
004081B7|.FF15 80DA5A00 CALL DWORD PTR DS:[<&mfc90u.#600>]       ;mfc90u.#601
004081BD|.8D4424 08   LEA EAX,DWORD PTR SS:
004081C1|.50            PUSH EAX
004081C2|.51            PUSH ECX
004081C3|.8D5424 1C   LEA EDX,DWORD PTR SS:
004081C7|.8BCC          MOV ECX,ESP
004081C9|.896424 28   MOV DWORD PTR SS:,ESP
004081CD|.52            PUSH EDX                                 ; /Arg1
004081CE|.FF15 18E35A00 CALL DWORD PTR DS:[<&mfc90u.#280>]       ; \#280
004081D4|.E8 27FCFFFF   CALL BestName.00407E00
004081D9|.83C4 08       ADD ESP,0x8                              ;N7NCUJLHDE
004081DC|.8D4C24 0C   LEA ECX,DWORD PTR SS:
004081E0|.FF15 ACE55A00 CALL DWORD PTR DS:[<&mfc90u.#909>]       ;mfc90u.#3737
004081E6|.50            PUSH EAX                                 ; /Arg1
004081E7|.8D4C24 08   LEA ECX,DWORD PTR SS:         ; |
004081EB|.FF15 3CDB5A00 CALL DWORD PTR DS:[<&mfc90u.#1599>]      ; \#1599
004081F1|.85C0          TEST EAX,EAX
004081F3|.75 51         JNZ SHORT BestName.00408246            ;比较是否是正式版
004081F5|.8D4C24 14   LEA ECX,DWORD PTR SS:
004081F9|.FF15 80DA5A00 CALL DWORD PTR DS:[<&mfc90u.#600>]       ;mfc90u.#601
004081FF|.8D4C24 08   LEA ECX,DWORD PTR SS:
00408203|.FF15 80DA5A00 CALL DWORD PTR DS:[<&mfc90u.#600>]       ;mfc90u.#601
00408209|.8D4C24 18   LEA ECX,DWORD PTR SS:
0040820D|.FF15 80DA5A00 CALL DWORD PTR DS:[<&mfc90u.#600>]       ;mfc90u.#601
00408213|.8D4C24 0C   LEA ECX,DWORD PTR SS:
00408217|.FF15 80DA5A00 CALL DWORD PTR DS:[<&mfc90u.#600>]       ;mfc90u.#601
0040821D|.8D4C24 10   LEA ECX,DWORD PTR SS:
00408221|.FF15 80DA5A00 CALL DWORD PTR DS:[<&mfc90u.#600>]       ;mfc90u.#601
00408227|.8D4C24 04   LEA ECX,DWORD PTR SS:
0040822B|.FF15 80DA5A00 CALL DWORD PTR DS:[<&mfc90u.#600>]       ;mfc90u.#601
00408231|.B8 02000000   MOV EAX,0x2
00408236|.8B4C24 24   MOV ECX,DWORD PTR SS:
0040823A|.64:890D 00000>MOV DWORD PTR FS:,ECX
00408241|.59            POP ECX
00408242|.83C4 2C       ADD ESP,0x2C
00408245|.C3            RETN
00408246|>8D4C24 08   LEA ECX,DWORD PTR SS:
0040824A|.FF15 ACE55A00 CALL DWORD PTR DS:[<&mfc90u.#909>]       ;mfc90u.#3737
00408250|.50            PUSH EAX                                 ;
00408251|.8D4C24 08   LEA ECX,DWORD PTR SS:         ;
00408255|.FF15 3CDB5A00 CALL DWORD PTR DS:[<&mfc90u.#1599>]      ; \#1599
0040825B|.8D4C24 14   LEA ECX,DWORD PTR SS:          ;NXNODYGO54与N7NCUJLHDE
0040825F|.85C0          TEST EAX,EAX                           ;比较假码
00408261|.75 4D         JNZ SHORT BestName.004082B0            ;核心 比较是否是专业版
00408263|.FF15 80DA5A00 CALL DWORD PTR DS:[<&mfc90u.#600>]       ;mfc90u.#601
00408269|.8D4C24 08   LEA ECX,DWORD PTR SS:
0040826D|.FF15 80DA5A00 CALL DWORD PTR DS:[<&mfc90u.#600>]       ;mfc90u.#601
00408273|.8D4C24 18   LEA ECX,DWORD PTR SS:
00408277|.FF15 80DA5A00 CALL DWORD PTR DS:[<&mfc90u.#600>]       ;mfc90u.#601
0040827D|.8D4C24 0C   LEA ECX,DWORD PTR SS:
00408281|.FF15 80DA5A00 CALL DWORD PTR DS:[<&mfc90u.#600>]       ;mfc90u.#601
00408287|.8D4C24 10   LEA ECX,DWORD PTR SS:
0040828B|.FF15 80DA5A00 CALL DWORD PTR DS:[<&mfc90u.#600>]       ;mfc90u.#601
00408291|.8D4C24 04   LEA ECX,DWORD PTR SS:
00408295|.FF15 80DA5A00 CALL DWORD PTR DS:[<&mfc90u.#600>]       ;mfc90u.#601
0040829B|.B8 03000000   MOV EAX,0x3
004082A0|.8B4C24 24   MOV ECX,DWORD PTR SS:
004082A4|.64:890D 00000>MOV DWORD PTR FS:,ECX
004082AB|.59            POP ECX
004082AC|.83C4 2C       ADD ESP,0x2C
004082AF|.C3            RETN
004082B0|>FF15 80DA5A00 CALL DWORD PTR DS:[<&mfc90u.#600>]       ;mfc90u.#601
004082B6|.8D4C24 08   LEA ECX,DWORD PTR SS:
004082BA|.FF15 80DA5A00 CALL DWORD PTR DS:[<&mfc90u.#600>]       ;mfc90u.#601
004082C0|.8D4C24 18   LEA ECX,DWORD PTR SS:
004082C4|.FF15 80DA5A00 CALL DWORD PTR DS:[<&mfc90u.#600>]       ;mfc90u.#601
004082CA|.8D4C24 0C   LEA ECX,DWORD PTR SS:
004082CE|.FF15 80DA5A00 CALL DWORD PTR DS:[<&mfc90u.#600>]       ;mfc90u.#601
004082D4|.8D4C24 10   LEA ECX,DWORD PTR SS:
004082D8|.FF15 80DA5A00 CALL DWORD PTR DS:[<&mfc90u.#600>]       ;mfc90u.#601
004082DE|.8D4C24 04   LEA ECX,DWORD PTR SS:
004082E2|.FF15 80DA5A00 CALL DWORD PTR DS:[<&mfc90u.#600>]       ;mfc90u.#601
004082E8|.33C0          XOR EAX,EAX
004082EA|.8B4C24 24   MOV ECX,DWORD PTR SS:
004082EE|.64:890D 00000>MOV DWORD PTR FS:,ECX
004082F5|.59            POP ECX
004082F6|.83C4 2C       ADD ESP,0x2C
004082F9\.C3            RETN                                     ;0012FBF0   003AD5C0UNICODE "C:\Documents and Settings\Administrator\My Documents\"






显而易见的专业版和正式版验证。由于首先判断是否是正式版激活码,我们若是把正式版的那处jnz进行jmp跳过,然后进入专业版验证将专业版的这处jnz修改为nop即可实现专业版爆破,反之亦然,我们也可以实现正式版爆破。若是我们不做任何的改动,仅仅是进入关键call以后单步一遍,那就是免激活永久免费版权限



于是我们可以很轻松的实现专业版又或者正式版。





这个软件存在两处bug,第一处是由于我的文档一处文件没有正确读取,导致dat文件的加载异常,我们可以强行让软件读取各个dat文件或者强行跳过异常校检,不过这个问题俺不是作者,并不负责解决问题





第二处就是程序输入激活码以后会频繁的出现无响应假死问题,这个问题解决也很简单,重新安装以后重新激活。其故仍然于该程序编写逻辑问题,程序没有写关于激活码失败的这一块,换言之不管你输入任何假码程序都会提示激活成功,并且该程序并没有写入真正意义上的重启校检授权文件这一块,这就必然导致程序在接收假码以后进行不下去了。解决方法我们可以将末尾的那处跳转实现或者使用ida伪代码手动把edi数值加出来然后在开始赋值,总之要作废这个关键call的功能。该关键call内还有另外一处call将版本和伪码进行着换算也存在着问题,经常溢出,导致程序在获取姓名的时候崩溃。顺序结构存在的问题远比设计之初要多得多。



若是不进入关键call,下图配合本文一图仅仅修改这两处便可以实现完美爆破



不管你选择追码,或者两种爆破思路,你最后都需要把更新去掉



该软件小聪明的算法if else 这种形式并且在关键call后面再进行减法(关键call内部的算法都是加法)这种拆分思路,迂腐的不值一提。

软件的错误实在太多了,这个破软件还在香港各种大赛获奖,自诩国内最好的起名软件呢,并且享有极高的媒体知名度,弱的不行,可惜俺只负责给作者制造麻烦而不是帮忙解决问题,最后提供一下该软件的官方安装包,链接: http://pan.baidu.com/s/1gdnrE07 密码: 8j63 欢迎大家继续嘲讽。

最初的美好 发表于 2015-11-23 21:03

多谢楼主正需要{:301_975:}么么哒

一生情独醉 发表于 2015-11-23 20:26

本帖最后由 一生情独醉 于 2015-11-23 20:27 编辑

这一大长串的图片文字新人看这东西需要时间消化

xugong 发表于 2015-11-23 19:47

前排支持楼主

就爱玩玩 发表于 2015-11-23 20:16

这个是破解版本吗

小朋友呢 发表于 2015-11-23 20:27

在下还有一问题求助Smile大帅哥,请问这个程序注册机怎么写,我之前写了一个注册机,程序一运行注册机也运行了,然而注册机里是个空的,我想让它写个用户名然后就自己算出注册码这个咋办。

一点沧蓝 发表于 2015-11-23 20:41

表示人定尚可盛天,一个破软件竟然能这么吹嘘,可悲

夜之零落兮 发表于 2015-11-23 21:48

老大,能不能教我在软件搜不到字符串的情况下,怎样去调试软件,如何像你这样精确的找到关键call等。   一般情况下搜不到字符串我有点发蒙。    因为好多窗口一般断点断不下来。

左岸麦田 发表于 2015-11-23 23:55

学习了。

manbajie 发表于 2015-11-24 06:04

学习了谢谢分享
页: [1] 2 3 4 5
查看完整版本: 绝对好取名之分析