- UID
- 76151
注册时间2014-6-12
阅读权限30
最后登录1970-1-1
龙战于野
TA的每日心情 | 怒 2022-5-20 13:32 |
---|
签到天数: 235 天 [LV.7]常住居民III
|
【破文标题】Setup2Go v1.9.11 追码分析
【破文作者】千千万是福朋友
【破解工具】OD
【破解平台】XP
【软件名称】Setup2Go v1.9.11
【破解声明】仅限于技术交流,请勿用于商业用途
【破解过程】
03年的软件,只为提高调试水平
PEID查壳。[Microsoft Visual C++ v6.0]
先运行两遍程序寻找切入点
打开软件弹出注册码,
任意输入注册作息没有任何反应???
OD右键查找字符串
没有找到有价值的字符串
CTRL+N查找输入函数
GetWinodwTextA
GetWinodwTextW
GetWinodwTextLength
发现并没有使用到这三个函数
尝试下对话框断点 bp DialogBoxParamA
点击注册程序断下
0012FC90 00440AE4 /CALL 到 DialogBoxParamA 来自 Setup2Go.00440ADE
0012FC94 00400000 |hInst = 00400000
0012FC98 000000EA |pTemplate = 0xEA
0012FC9C 00520510 |hOwner = 00520510 ('Setup2GO',class='AESetup2GO')
0012FCA0 0043C205 |DlgProc = Setup2Go.0043C205
0012FCA4 0012FCB0 \lParam = 0012FCB0
转到对话框窗口过程看下做了些什么
发现在0043C205处理了不少消息,无法直接下断
于是0043C205处下WM_COMMAND消息条件断点 [esp+8] == 111
输入注册信息
0043C3D0 0FB7C0 movzx eax,ax
0043C3D3 8B16 mov edx,dword ptr ds:[esi] ; Setup2Go.00401988
0043C3D5 57 push edi
0043C3D6 50 push eax
0043C3D7 8BCE mov ecx,esi
0043C3D9 0FB745 10 movzx eax,word ptr ss:[ebp+0x10]
0043C3DD 50 push eax
0043C3DE 53 push ebx
0043C3DF FF52 08 call dword ptr ds:[edx+0x8] ; Setup2Go.00417B21
顺利找到注册信息验证CALL Setup2Go.00417B21
F7跟进行,F8一直往下跟
00417BCE 50 push eax ; Setup2Go.0046C090
00417BCF 83E1 03 and ecx,0x3
00417BD2 8D85 F4FDFFFF lea eax,dword ptr ss:[ebp-0x20C]
00417BD8 F3:A4 rep movs byte ptr es:[edi],byte ptr ds:[>
00417BDA 50 push eax ; Setup2Go.0046C090
00417BDB E8 D04C0200 call Setup2Go.0043C8B0
00417BE0 8BC8 mov ecx,eax ; Setup2Go.0046C090
00417BE2 E8 62E2FFFF call Setup2Go.00415E49 ; 关键CALL
00417BE7 5F pop edi ; 0012F5C0
00417BE8 5E pop esi ; 0012F5C0
00417BE9 84C0 test al,al
00417BEB 5B pop ebx ; 0012F5C0
00417BEC ^ 0F84 5DFFFFFF je Setup2Go.00417B4F ; 关键跳
00417BF2 68 0D080000 push 0x80D
00417BF7 EB 18 jmp short Setup2Go.00417C11
发现关键call Setup2Go.00415E49 ,下面有一个关键跳转
F7跟进去,头部再次发现关键跳转CALL
00415E49 55 push ebp
00415E4A 8BEC mov ebp,esp
00415E4C 51 push ecx ; Setup2Go.0046C090
00415E4D 51 push ecx ; Setup2Go.0046C090
00415E4E 53 push ebx ; Setup2Go.0046ED60
00415E4F 56 push esi ; Setup2Go.0046ED69
00415E50 57 push edi
00415E51 8B7D 08 mov edi,dword ptr ss:[ebp+0x8]
00415E54 FF75 0C push dword ptr ss:[ebp+0xC]
00415E57 8BD9 mov ebx,ecx ; Setup2Go.0046C090
00415E59 57 push edi
00415E5A E8 97FFFFFF call Setup2Go.00415DF6
00415E5F 84C0 test al,al
00415E61 0F84 C0000000 je Setup2Go.00415F27
F7继续跟进去 ,还是一个关键验证CALL
00415E26 FF75 0C push dword ptr ss:[ebp+0xC]
00415E29 8D45 FC lea eax,dword ptr ss:[ebp-0x4]
00415E2C 8955 FC mov dword ptr ss:[ebp-0x4],edx
00415E2F 50 push eax ; Setup2Go.0046C090
00415E30 68 68C54000 push Setup2Go.0040C568 ; pasha and andrey
00415E35 FF75 08 push dword ptr ss:[ebp+0x8]
00415E38 E8 F6250100 call Setup2Go.00428433
00415E3D 83C4 10 add esp,0x10
00415E40 EB 02 jmp short Setup2Go.00415E44
00415E42 32C0 xor al,al
00415E44 5F pop edi ; 0012F5C0
00415E45 C9 leave
00415E46 C2 0800 retn 0x8
F7继续往下跟
00428488 890E mov dword ptr ds:[esi],ecx ; Setup2Go.0046C090
0042848A 57 push edi
0042848B FF75 FC push dword ptr ss:[ebp-0x4]
0042848E FF36 push dword ptr ds:[esi]
00428490 FF75 0C push dword ptr ss:[ebp+0xC]
00428493 FF75 08 push dword ptr ss:[ebp+0x8]
00428496 E8 6AFEFFFF call Setup2Go.00428305 ; 算法CALL
0042849B 57 push edi
0042849C 53 push ebx ; Setup2Go.0046ED60
0042849D FF75 FC push dword ptr ss:[ebp-0x4] ; 真码 堆栈 ss:[0012F55C]=00964B88, (ASCII "12RS0Q20XT")
004284A0 E8 3B3A0300 call Setup2Go.0045BEE0
在 0042849D 处发现类似真码的字符串12RS0Q20XT
可以判断上面的CALL应该就是算法CALL
00428496 E8 6AFEFFFF call Setup2Go.00428305 ; 算法CALL
一样跳过算法不看,尝试用ChinaPYG当用户名,12RS0Q20XT当注册码进行注册
提示注册成功
总结:
拦截真码位置
0042849D FF75 FC push dword ptr ss:[ebp-0x4] ; 真码 堆栈 ss:[0012F55C]=00964B88, (ASCII "12RS0Q20XT")
User:ChinaPYG
Key:12RS0Q20XT
|
评分
-
查看全部评分
|