吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 15368|回复: 23
收起左侧

[原创] 简单百宝箱某工具解剖(剥离百宝箱)

[复制链接]
Rookietp 发表于 2012-5-17 12:06
本帖最后由 xiaobang 于 2012-5-17 12:06 编辑

[ 破文标题 ] 简单百宝箱某工具解剖(剥离百宝箱)
[ 破文作者 ] Rookietp
[ 作者邮箱 ] Rookietp@cracklg.com
[ 作者主页 ] http://www.cracklg.com
[ 破解工具 ] OD
[ 破解平台 ] XP
[ 软件名称 ] 简单百宝箱
[ 软件大小 ] 9MB
[ 原版下载 ] 自行搜索下载
[ 保护方式 ] 无
[ 软件简介 ] 目前用户量最多的网游工具管家类产品。支持工具下载、工具管理等功能
[ 破解声明 ] 仅供技术交流,别无其他目的
这个工具是集成在简单百宝箱里面的,但是是一个单独的文件,如果不是在简单百宝箱里面运行,是无法运行的。
初探(看看简单百宝箱是怎样来打开它的):
004464D2 |. 6A 05 push 0x5
004464D4 |. 8D8D 7CFFFFFF lea ecx,[local.33]
004464DA |. E8 6118FEFF call 简单百宝.00427D40
004464DF |. 50 push eax
004464E0 |. 6A 00 push 0x0
004464E2 |. 8B4D 0C mov ecx,[arg.2]
004464E5 |. 83C1 24 add ecx,0x24
004464E8 |. E8 5318FEFF call 简单百宝.00427D40
004464ED |. 50 push eax ; |FileName
004464EE |. 68 B0B55000 push 简单百宝.0050B5B0 ; |Operation = "open"
004464F3 |. 6A 00 push 0x0 ; |hWnd = NULL
004464F5 |. FF15 AC2E4E00 call dword ptr ds:[<&SHELL32.ShellExecut>; \ShellExecuteA
很清楚的看到是通过ShellExecute这个API来运行的,抱着试一试的态度,随便写一个程序,调用ShellExecute来运行工具,发现是可以运行的。
于是乎,自己手动再次运行工具,发现还是可以运行的。
测验:将百宝箱关闭,手动运行game over,调用ShellExecute来运行,还是 game over     初步判定,工具是在找百宝箱这个人,没找到就不给运行。至于用什么方式在找,我们不得而知,那么就继续。。
在目录找到此工具,载入OD:
00401A90 >/$ 55 push ebp  ///vc++编译的程序
00401A91 |. 8BEC mov ebp,esp
00401A93 |. 6A FF push -0x1
00401A95 |. 68 50244000 push seting.00402450
00401A9A |. 68 161C4000 push <jmp.&MSVCRT._except_handler3> ; SE 处理程序安装
00401A9F |. 64:A1 0000000>mov eax,dword ptr fs:[0]
00401AA5 |. 50 push eax
下断:bp FindWindowA (查找窗口)
0012F390 00401126 /CALL 到 FindWindowA 来自 DNFMulti.00401120
0012F394 00000000 |Class = 0
0012F398 003A3908 \Title = "简单百宝箱"
0012F39C 0012FEF4 指向下一个 SEH 记录的指针
0012F3A0 00403F58 SE处理程序
被断下,堆栈显示查找的标题是“简单百宝箱”,我们现在知道了它是通过查找百宝箱窗口是否存在来决定运行与否。
alt+k查看堆栈
调用堆栈: 主线程
地址 堆栈 函数过程 / 参数 调用来自 结构
0012F390 00401126 USER32.FindWindowA DNFMulti.00401120 0012F3A8
0012F394 00000000 Class = 0
0012F398 003A3908 Title = "简单百宝箱"
0012F3AC 004013FC ? DNFMulti.004010F0 DNFMulti.004013F7 
0012FF04 73D3C1CF DNFMulti.00401350 MFC42.73D3C1CC 0012FF00
0012FF14 00403F01 ? <jmp.&MFC42.#1576> DNFMulti.00403EFC
0012FF28 00403E93 ? DNFMulti.00403EEC DNFMulti.<ModuleEntryPoint>+
0012F3AC 004013FC ? DNFMulti.004010F0 DNFMulti.004013F7 ///此处右键----显示调用
来到如下:
004013F7 |. E8 F4FCFFFF call DNFMulti.004010F0
004013FC |. 83C4 04 add esp,0x4
004013FF |. 84C0 test al,al
00401401 |. 74 66 je XDNFMulti.00401469
00401403 |. E8 08FEFFFF call DNFMulti.00401210
00401408 |. 85C0 test eax,eax
0040140A |. 75 05 jnz XDNFMulti.00401411
0040140C |. E8 3FFEFFFF call DNFMulti.00401250
00401411 |> 6A 00 push 0x0
00401413 |. 8D8D B8FCFFFF lea ecx,[local.210]
00401419 |. E8 F2000000 call DNFMulti.00401510
0040141E |. 8D8D B8FCFFFF lea ecx,[local.210]
00401424 |. C745 FC 00000>mov [local.1],0x0
0040142B |. 894E 20 mov dword ptr ds:[esi+0x20],ecx
0040142E |. 8D8D B8FCFFFF lea ecx,[local.210]
00401434 |. E8 A3260000 call <jmp.&MFC42.#2514>
00401439 |. E8 D2FDFFFF call DNFMulti.00401210
0040143E |. 85C0 test eax,eax
00401440 |. 75 05 jnz XDNFMulti.00401447
00401442 |. E8 B9FEFFFF call DNFMulti.00401300
00401447 |> EB 0E jmp XDNFMulti.00401457
00401449 |. 56 4D 50 72 6>ascii "VMProtect end",0
00401457 |> 8D8D B8FCFFFF lea ecx,[local.210]
0040145D |. C745 FC FFFFF>mov [local.1],-0x1
00401464 |. E8 A70E0000 call DNFMulti.00402310
004013F7  |.  E8 F4FCFFFF   call DNFMulti.004010F0///F7进入这个call
来到如下:
004010F0 /$ 55 push ebp
004010F1 |. 8BEC mov ebp,esp
004010F3 |. 64:A1 0000000>mov eax,dword ptr fs:[0]
004010F9 |. 6A FF push -0x1
004010FB |. 68 583F4000 push DNFMulti.00403F58
00401100 |. 50 push eax
00401101 |. 64:8925 00000>mov dword ptr fs:[0],esp
00401108 |. EB 10 jmp XDNFMulti.0040111A
0040110A |. 56 4D 50 72 6>ascii "VMProtect begin",0
0040111A |> 8B45 08 mov eax,[arg.1]
0040111D |. 50 push eax ; /Title
0040111E |. 6A 00 push 0x0 ; |Class = 0
00401120 |. FF15 6C534000 call dword ptr ds:[<&USER32.FindWindowA>>; \FindWindowA
00401126 |. 85C0 test eax,eax
00401128 |. 75 4A jnz XDNFMulti.00401174
0040112A |. 8B4D 08 mov ecx,[arg.1]
0040112D |. 51 push ecx ; /MutexName
0040112E |. 50 push eax ; |Inheritable
0040112F |. 68 01001F00 push 0x1F0001 ; |Access = 1F0001
00401134 |. FF15 44504000 call dword ptr ds:[<&KERNEL32.OpenMutexA>; \OpenMutexA
0040113A |. 85C0 test eax,eax
0040113C |. 75 1F jnz XDNFMulti.0040115D
0040113E |. 8D4D 08 lea ecx,[arg.1]
00401141 |. C745 FC FFFFF>mov [local.1],-0x1
00401148 |. E8 89290000 call <jmp.&MFC42.#800>
0040114D |. 32C0 xor al,al
0040114F |. 8B4D F4 mov ecx,[local.3]
00401152 |. 64:890D 00000>mov dword ptr fs:[0],ecx
00401159 |. 8BE5 mov esp,ebp
0040115B |. 5D pop ebp
0040115C |. C3 retn
0040115D |> 50 push eax ; /hObject
0040115E |. FF15 64504000 call dword ptr ds:[<&KERNEL32.CloseHandl>; \CloseHandle
00401164 |. EB 0E jmp XDNFMulti.00401174
00401166 |. 56 4D 50 72 6>ascii "VMProtect end",0
00401174 |> 8D4D 08 lea ecx,[arg.1]
00401177 |. C745 FC FFFFF>mov [local.1],-0x1
0040117E |. E8 53290000 call <jmp.&MFC42.#800>
00401183 |. 8B4D F4 mov ecx,[local.3]
00401186 |. B0 01 mov al,0x1
00401188 |. 64:890D 00000>mov dword ptr fs:[0],ecx
0040118F |. 8BE5 mov esp,ebp
00401191 |. 5D pop ebp
00401192 \. C3 retn
0040111A |> \8B45 08 mov eax,[arg.1]
0040111D |. 50 push eax ; /Title
0040111E |. 6A 00 push 0x0 ; |Class = 0
00401120 |. FF15 6C534000 call dword ptr ds:[<&USER32.FindWindowA>>; \FindWindowA/////执行FindWindowA后
00401126 |. 85C0 test eax,eax ///进行判断
00401128 |. 75 4A jnz XDNFMulti.00401174 ////此跳转改为jmp
00401128跳转实现来到:
00401174 |> \8D4D 08 lea ecx,[arg.1]
00401177 |. C745 FC FFFFF>mov [local.1],-0x1
0040117E |. E8 53290000 call <jmp.&MFC42.#800>
00401183 |. 8B4D F4 mov ecx,[local.3]
00401186 |. B0 01 mov al,0x1 
00401188 |. 64:890D 00000>mov dword ptr fs:[0],ecx
0040118F |. 8BE5 mov esp,ebp
00401191 |. 5D pop ebp
00401192 \. C3 retn
00401186 |. B0 01 mov al,0x1 ///将AL赋值为1,为下面的判断做铺垫,其实到了此处就不需要继续分析了,因为程序此时已经可以正常运行了。

总结:非常简单,适合新手练手,小菜第二篇,欢迎各路大鸟指错。。




免费评分

参与人数 1威望 +1 收起 理由
willJ + 1 欢迎分析讨论交流,[吾爱破解论坛]有你更精.

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

索马里的海贼 发表于 2012-5-17 12:12
膜拜xiaobang大大
失恋的感觉 发表于 2012-5-17 13:11
小神仙 发表于 2012-5-17 13:26
小明无敌 发表于 2012-5-17 13:49
前来膜拜               
头像被屏蔽
aweigeo 发表于 2012-5-17 13:54
提示: 作者被禁止或删除 内容自动屏蔽
willJ 发表于 2012-5-17 15:27
果断前来支持bang大大,虽然我不用这个工具。

写得很详细,希望bang大大多出这样的分析
yangand 发表于 2012-5-17 18:21
师傅又出教程了,又可以多学点知识了
yangand 发表于 2012-5-17 18:28
太适合我等菜鸟了,思路是精华。
不择手段 发表于 2012-6-28 21:53
大牛,请教下,我看你的简单百宝箱某工具解剖(剥离百宝箱)帖子的时候,在   0012F3AC 004013FC ? DNFMulti.004010F0 DNFMulti.004013F7 ///此处右键----显示调用   这里我看不懂,我右键了,没有显示调用啊
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-4 09:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表