本帖最后由 Chief 于 2013-1-5 22:58 编辑
【文章标题】: 吾爱破解2012CM大赛破文-Smoke
【文章作者】: Chief
【作者邮箱】: hi_Chief@163.com
【下载地址】: http://down.52pojie.cn/2012CM/%E6%98%93/Smoke/
【作者声明】: 失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
Smoke 大的 CM
第一步要突破他的灰色按钮。------灰色按钮克星可行,但是我们讲求完美。
工具:WinHex -----当然在OD里也可以修改,HEX窗口进行搜索即可。
载入smoke.exe----搜索16进制:B0B4C5A5 B0B4C5A5=按钮,是按钮的16进制,下个破解计算机转换下就知道了。
如图所示,07改成05 就可以激活按钮。
找到注册的那个按钮改掉就可以激活了,------------他里面有三个按钮。三个都可以改,主要我们只要他的注册按钮。
OK,如图,已经激活
----------------------------------------------
开始和谐他。
利用:E-Debug Events找出按钮事件
如图点击注册后给出按钮事件地址
OK,拿到按钮事件地址
------------------------------------------------------------------------------------------
载入程序---F9运行---Ctrl+G--输入按钮事件地址:00404250----F2下断
输入假码--点击注册---OK断下.
断在这里 00404250 55 push ebp
00404251 8BEC mov ebp,esp
00404253 81EC 1C000000 sub esp,0x1C
00404259 E8 00000000 call Smoke-.0040425E
0040425E 830424 06 add dword ptr ss:[esp],0x6
先把代码分析下,右键--分析-分析代码 ----方便我们查看。
F8单步往下走。 004043D6 . /EB 01 jmp XSmoke-.004043D9
004043D8 |71 db 71 ; CHAR 'q'
004043D9 > \EB 01 jmp XSmoke-.004043DC
004043DB B4 db B4
004043DC > EB 01 jmp XSmoke-.004043DF
004043DE BE db BE
004043DF > 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
004043E2 . F8 clc
004043E3 . 73 01 jnb XSmoke-.004043E6
这边出现我们的假码。
继续F8
到了 0040441A . 53 push ebx
0040441B . E8 D5020000 call Smoke-.004046F5
00404420 . 83C4 04 add esp,0x4
00404423 > 837D F4 00 cmp dword ptr ss:[ebp-0xC],0x0
00404427 . 0F84 14020000 je Smoke-.00404641 ; 实现大范围的跳转。而且跳转是实现的。
实现大范围的跳转。而且跳转是实现的。F8单步跟下去看看
来到 00404641 > \F9 stc
00404642 . 72 01 jb XSmoke-.00404645
00404644 88 db 88
00404645 . 6A 00 push 0x0
00404647 . 6A 00 push 0x0
00404649 . 6A 00 push 0x0
0040464B . 68 01030080 push 0x80000301
00404650 . 6A 00 push 0x0
00404652 . EB 01 jmp XSmoke-.00404655
00404654 7D db 7D ; CHAR '}'
00404655 > 68 00000000 push 0x0
0040465A . 68 04000080 push 0x80000004
0040465F . 6A 00 push 0x0
00404661 . E8 00000000 call Smoke-.00404666
F8单步 0040466B B3 db B3
0040466C 68 db 68 ; CHAR 'h'
0040466D D2424700 dd Smoke-.004742D2
00404671 68 db 68 ; CHAR 'h'
00404672 > 0300 add eax,dword ptr ds:[eax]
00404674 . 0000 add byte ptr ds:[eax],al
00404676 . BB 80544000 mov ebx,Smoke-.00405480
0040467B . E8 63000000 call Smoke-.004046E3
00404680 . 83C4 28 add esp,0x28
00404683 > 8BE5 mov esp,ebp
00404685 . 5D pop ebp
这里0040467B . E8 63000000 call Smoke-.004046E3 弹出错误CALL
----------------------------------------------------------------------
那么我们重新运行,00404427 . 0F84 14020000 je Smoke-.00404641 让他跳转不实现试试。
运行,继续输入假码。一路跟到
00404427 . 0F84 14020000 je Smoke-.00404641
NOP掉。----F8继续单步
来到这里 0040444C . F9 stc
0040444D . 72 01 jb XSmoke-.00404450
0040444F 80 db 80
00404450 . 68 B9424700 push Smoke-.004742B9
00404455 . 68 03000000 push 0x3
0040445A . BB 80544000 mov ebx,Smoke-.00405480
0040445F . E8 7F020000 call Smoke-.004046E3
00404464 . 83C4 28 add esp,0x28
00404467 . EB 01 jmp XSmoke-.0040446A
00404469 83 db 83
0040445F . E8 7F020000 call Smoke-.004046E3-----弹出注册成功。
OK,爆破.
PS:出去外面一会儿,回来看到简单的CM竟然被人破光了。
--------------------------------------------------------------------------------
【版权声明】: 本文原创于Chief, 转载请注明作者并保持文章的完整, 谢谢!
2012年04月30日 21:30:00
|