绝对好取名之分析
本帖最后由 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 欢迎大家继续嘲讽。
多谢楼主正需要{:301_975:}么么哒 本帖最后由 一生情独醉 于 2015-11-23 20:27 编辑
这一大长串的图片文字新人看这东西需要时间消化 前排支持楼主 这个是破解版本吗 在下还有一问题求助Smile大帅哥,请问这个程序注册机怎么写,我之前写了一个注册机,程序一运行注册机也运行了,然而注册机里是个空的,我想让它写个用户名然后就自己算出注册码这个咋办。 表示人定尚可盛天,一个破软件竟然能这么吹嘘,可悲 老大,能不能教我在软件搜不到字符串的情况下,怎样去调试软件,如何像你这样精确的找到关键call等。 一般情况下搜不到字符串我有点发蒙。 因为好多窗口一般断点断不下来。 学习了。 学习了谢谢分享