本帖最后由 寻梦小生 于 2018-7-12 11:14 编辑
不好意思,一直没有忙于事情,差点忘了这个
初略的看了下,软件的确不是明码比较,算法知识我也有些力不从心,还没花时间去分析。
我贴全一点,我分析的流程…… 主要见注释
Email并没有什么用,只要包含@就行,如,ChinaPYG@
[Asm] 纯文本查看 复制代码 00415D6E /. 55 PUSH EBP
00415D6F |. 8BEC MOV EBP, ESP
00415D71 |. 51 PUSH ECX
00415D72 |. 894D FC MOV [LOCAL.1], ECX
00415D75 |. 6A 01 PUSH 0x1
00415D77 |. 8B4D FC MOV ECX, [LOCAL.1]
00415D7A |. E8 156E5F00 CALL <JMP.&MFC42.#CWnd::UpdateData_63>
00415D7F |. 6A 00 PUSH 0x0
00415D81 |. 68 688CCA00 PUSH D2P.00CA8C68
00415D86 |. 8B4D FC MOV ECX, [LOCAL.1]
00415D89 |. 81C1 B0030000 ADD ECX, 0x3B0
00415D8F |. E8 206F5F00 CALL <JMP.&MFC42.#CString::Replace_68>
00415D94 |. 8B4D FC MOV ECX, [LOCAL.1]
00415D97 |. 81C1 B4030000 ADD ECX, 0x3B4
00415D9D |. E8 1EBDFEFF CALL D2P.00401AC0
00415DA2 |. 85C0 TEST EAX, EAX
00415DA4 |. 74 19 JE SHORT D2P.00415DBF
00415DA6 |. 6A 00 PUSH 0x0
00415DA8 |. 68 6C8CCA00 PUSH D2P.00CA8C6C ; AutoDWGDWG2PDF
00415DAD |. 68 7C8CCA00 PUSH D2P.00CA8C7C ; Please input your email!
00415DB2 |. 8B4D FC MOV ECX, [LOCAL.1]
00415DB5 |. E8 70715F00 CALL <JMP.&MFC42.#CWnd::MessageBoxA_4>
00415DBA |. E9 F8000000 JMP D2P.00415EB7
00415DBF |> 6A 00 PUSH 0x0
00415DC1 |. 68 988CCA00 PUSH D2P.00CA8C98 ; @
00415DC6 |. 8B4D FC MOV ECX, [LOCAL.1]
00415DC9 |. 81C1 B4030000 ADD ECX, 0x3B4
00415DCF |. E8 50715F00 CALL <JMP.&MFC42.#CString::Find_6663>
00415DD4 |. 85C0 TEST EAX, EAX
00415DD6 |. 7F 14 JG SHORT D2P.00415DEC
00415DD8 |. 6A 00 PUSH 0x0
00415DDA |. 68 9C8CCA00 PUSH D2P.00CA8C9C ; AutoDWGDWG2PDF
00415DDF |. 68 AC8CCA00 PUSH D2P.00CA8CAC ; Please input correct email address.
00415DE4 |. 8B4D FC MOV ECX, [LOCAL.1]
00415DE7 |. E8 3E715F00 CALL <JMP.&MFC42.#CWnd::MessageBoxA_4>
00415DEC |> 8B4D FC MOV ECX, [LOCAL.1]
00415DEF |. 81C1 B0030000 ADD ECX, 0x3B0
00415DF5 |. E8 C6BCFEFF CALL D2P.00401AC0
00415DFA |. 85C0 TEST EAX, EAX
00415DFC |. 74 19 JE SHORT D2P.00415E17
00415DFE |. 6A 00 PUSH 0x0
00415E00 |. 68 D08CCA00 PUSH D2P.00CA8CD0 ; AutoDWGDWG2PDF
00415E05 |. 68 E08CCA00 PUSH D2P.00CA8CE0 ; Please input the Register code!
00415E0A |. 8B4D FC MOV ECX, [LOCAL.1]
00415E0D |. E8 18715F00 CALL <JMP.&MFC42.#CWnd::MessageBoxA_4>
00415E12 |. E9 A0000000 JMP D2P.00415EB7
00415E17 |> 8B4D FC MOV ECX, [LOCAL.1] ; //到这里 email/register code 是否为空或email是否包含 @ 字符串判断完毕
主要看00415E3D call里面的内容
[Asm] 纯文本查看 复制代码 00415E3D |. E8 D8F30300 CALL D2P.0045521A ; //算法Call 写注册表Call
00415E42 |. 83C4 08 ADD ESP, 0x8
00415E45 |. 25 FF000000 AND EAX, 0xFF
00415E4A |. 85C0 TEST EAX, EAX
00415E4C |. 74 4D JE SHORT D2P.00415E9B ; //关键跳转,跳向失败,不跳即注册成功
00415E4E |. 8B4D FC MOV ECX, [LOCAL.1]
00415E51 |. E8 2C6D5F00 CALL <JMP.&MFC42.#CDialog::OnOK_4853>
00415E56 |. 8B45 FC MOV EAX, [LOCAL.1]
00415E59 |. C780 B8030000>MOV DWORD PTR DS:[EAX+0x3B8], 0x1
00415E63 |. 8B4D FC MOV ECX, [LOCAL.1]
00415E66 |. 83B9 B8030000>CMP DWORD PTR DS:[ECX+0x3B8], 0x0
00415E6D |. 74 16 JE SHORT D2P.00415E85
00415E6F |. 6A 00 PUSH 0x0
00415E71 |. 68 008DCA00 PUSH D2P.00CA8D00 ; AutoDWGDWG2PDF
00415E76 |. 68 108DCA00 PUSH D2P.00CA8D10 ; Thank you, Registered succeed !
00415E7B |. 8B4D FC MOV ECX, [LOCAL.1]
00415E7E |. E8 A7705F00 CALL <JMP.&MFC42.#CWnd::MessageBoxA_4>
在这里做了一次 Register Code 长度比较 等于1A即26位,这段后面就是程序的注册码算法段。
以我的功力,还不能再短时间内分析完,目前就这样吧,爆破的话,可在多个地方修改,只修改一处即可,稍微有点小改动,即可爆破成功。
[Asm] 纯文本查看 复制代码 0045568B /$ 55 PUSH EBP
0045568C |. 8BEC MOV EBP, ESP
0045568E |. 6A FF PUSH -0x1
00455690 |. 68 E58DAF00 PUSH D2P.00AF8DE5 ; SE 处理程序安装
00455695 |. 64:A1 0000000>MOV EAX, DWORD PTR FS:[0]
0045569B |. 50 PUSH EAX
0045569C |. 64:8925 00000>MOV DWORD PTR FS:[0], ESP
004556A3 |. 83EC 24 SUB ESP, 0x24
004556A6 |. 8B45 08 MOV EAX, [ARG.1] ; //EAX = Register code
004556A9 |. 50 PUSH EAX ; /s
004556AA |. E8 D37D5B00 CALL <JMP.&MSVCRT.strlen> ; \strlen
004556AF |. 83C4 04 ADD ESP, 0x4
004556B2 |. 83F8 1A CMP EAX, 0x1A ; //Register code 长度比较 CMP EAX,0x1A
004556B5 |. 74 07 JE SHORT D2P.004556BE
004556B7 |. 32C0 XOR AL, AL
004556B9 |. E9 BF000000 JMP D2P.0045577D ; //跳向失败
注册码保存路径
HKEY_CURRENT_USER\Software\AutoDwg\DWG_PDF_CONVER
|