[文章标题]: 【吾爱2013CM大赛解答】--风云CM2013 --风云思星 爆破分析
[作者信息]: 0n1y3nd
[操作平台]: Win7 Sp1 & Windows XP Sp3
[使用工具]: OD
[软件名称]:风云CM2013 --风云思星
[下载地址]: 【吾爱2013CM大赛题目】-- 风云CM2013 --风云思星 http://www.52pojie.cn/thread-228498-1-1.html 正文:
先直接运行,随便输入,弹出错误提示框。
载入OD
下bp MessageBoxA断点 。随便输入,点击按钮
程序断下:
执行到用户代码,来到:
[AppleScript] 纯文本查看 复制代码 0041A057 |. 52 push edx ; /Style
0041A058 |. 50 push eax ; |Title
0041A059 |. 51 push ecx ; |Text
0041A05A |. 6A 00 push 0x0 ; |hOwner = NULL
0041A05C |. FF15 10C34100 call dword ptr ds:[<&USER32.MessageBoxA>>; \MessageBoxA
0041A062 |. 48 dec eax
0041A063 |. 81C4 04010000 add esp,0x104
0041A069 \. C3 retn
再回溯一次:
[AppleScript] 纯文本查看 复制代码 00406B72 |. /E9 96000000 jmp 风云CM20.00406C0D ; 跳过错误提示call
00406B77 |> |68 04000080 push 0x80000004 ; 这个地方,跳转来自 00406919
00406B7C |. |6A 00 push 0x0
00406B7E |. |68 5EE54100 push 风云CM20.0041E55E ; 失败!
00406B83 |. |68 01030080 push 0x80000301
00406B88 |. |6A 00 push 0x0
00406B8A |. |68 00000000 push 0x0
00406B8F |. |68 04000080 push 0x80000004
00406B94 |. |6A 00 push 0x0
00406B96 |. |68 65E54100 push 风云CM20.0041E565 ; 注册失败
00406B9B |. |68 03000000 push 0x3
00406BA0 |. |BB 00030000 mov ebx,0x300
00406BA5 |. |E8 C6320100 call 风云CM20.00419E70
00406BAA |. |83C4 28 add esp,0x28 ; 回溯到这里
往上翻:找到关键跳:
[AppleScript] 纯文本查看 复制代码 004068DB |. FF90 A0010000 call dword ptr ds:[eax+0x1A0] ; 取注册码
004068E1 |. 8945 F8 mov [local.2],eax ; local.2 存入注册码
004068E4 |. 8B5D FC mov ebx,[local.1] ; ebx 赋 0
004068E7 |. 85DB test ebx,ebx
004068E9 |. 74 09 je X风云CM20.004068F4
004068EB |. 53 push ebx
004068EC |. E8 D8060100 call 风云CM20.00416FC9
004068F1 |. 83C4 04 add esp,0x4
004068F4 |> 68 AAF64100 push 风云CM20.0041F6AA
004068F9 |. 8D45 F8 lea eax,[local.2]
004068FC |. 50 push eax
004068FD |. E8 0F030000 call 风云CM20.00406C11 ; 这是个算法call
00406902 |. 8945 F4 mov [local.3],eax
00406905 |. 8B5D F8 mov ebx,[local.2]
00406908 |. 85DB test ebx,ebx
0040690A |. 74 09 je X风云CM20.00406915
0040690C |. 53 push ebx
0040690D |. E8 B7060100 call 风云CM20.00416FC9
00406912 |. 83C4 04 add esp,0x4
00406915 837D F4 01 cmp dword ptr ss:[ebp-0xC],0x1 ; 比较
00406919 |. 0F85 58020000 jnz 风云CM20.00406B77 ; 关键跳 直接nop掉
0040691F |. 68 04000080 push 0x80000004
00406924 |. 6A 00 push 0x0
00406926 |. 68 4EE54100 push 风云CM20.0041E54E ; 恭喜!
0040692B |. 68 01030080 push 0x80000301
00406930 |. 6A 00 push 0x0
00406932 |. 68 00000000 push 0x0
00406937 |. 68 04000080 push 0x80000004
0040693C |. 6A 00 push 0x0
0040693E |. 68 55E54100 push 风云CM20.0041E555 ; 注册成功
00406943 |. 68 03000000 push 0x3
00406948 |. BB 00030000 mov ebx,0x300
0040694D |. E8 1E350100 call 风云CM20.00419E70
爆破就直接将00406919 |. 0F85 58020000 jnz 风云CM20.00406B77 ; 这个关键跳 直接nop掉。即可
成功示例图:
|