首页
社区
课程
招聘
[旧帖] [转帖]游戏破解心得-抛绣球篇[并非教学 单纯分析] 0.00雪花
发表于: 2010-9-28 16:34 2299

[旧帖] [转帖]游戏破解心得-抛绣球篇[并非教学 单纯分析] 0.00雪花

2010-9-28 16:34
2299
回归到上次我所说的hackshield很好破解
或许有人不信邪
我这次就来发个说明然后针对内容提出最基础的分析
并提出相关内容图片
而提出的内容也能说明以下几个问题
为什么游戏外挂永远不会有完毕的一天?
为何有外挂会无法被侦测?
防外挂软体为何毫无效果?

使用工具为:
OllyDBG (mod)
IMPrec 1.6 Final
LordPE Delux by Yoda (这个工具被广泛拿来破解枫之谷游戏)

首先要说明shell的观念:
shell(壳) 为第三方安全软体设计人员开发出的特殊防护
一般用在摧毁IAT好让debugger无法对其进行完整的分析并读取主程式的各种资料
impor table在被摧毁的情况下程式还是能执行的(跟shell运作原理有关系)
这种shell有分很多种 当然不同的等级也会有不同的防御效果
首先介绍常用的
UPX (最弱, 最好破解 也是官方使用在游戏主程式上的)
ASPack (常被软体使用, 会破坏IAT的中等壳)
Armadillo (常被特殊大型软体/游戏使用, 很难破解的变种壳, 不过跟Themida比起来还差的远)
Themida (破解界的一定听过, 这个是最麻烦的变种壳, 对variable加密, 还会self-modify, 甚至将IAT破坏到几乎无法修复的地步 要破解要有一定程度的专业加密知识 而非大学大专毕业生就能理解的内容)
目前全世界只有非常少数的人可以手动脱Themida
其他只能跑Script或者用脱壳机而已
而外挂如果用Themida来包装, 一般连防外挂软体都无法侦测到
只会说防挂程式初始化错误等讯息

很可惜的这游戏的Hackshield主程式档案(EhSvc.dll)就是用这种壳
http://i39.tinypic.com/2ngdgdu.png
在多数人无法破解的顾虑下 我们还是从游戏主程式下手
而破解Hackshield的就当成Private 外挂来卖给玩家XD

----------------------------------
切入正题
----------------------------------
首先游戏主程式的shell为
UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo [Overlay]
此Shell版本为
UPX 3.03
外加附加数据(Overlay)
http://i40.tinypic.com/2u7lsfb.png
这个shell算是最简单就能破解的
只要设个断点就能进行OEP(Original Entry Point)的分析
连个ESP定律都不用理
从而dump游戏主程式并拿来做内/外挂用
附加数据基本的rOffset+rSize就可复制完毕

当unpack完毕后第一要件是什么?
当然是将Hackshield Disable!!!!
首先从错误讯息追踪到此
http://i42.tinypic.com/a10huu.png
你会发现
Hackshield的资料在游戏主程式中执行过程为
1. 传送档案路径的字串后借由字串进行LoadLibrary的指令来加载(不提供正确的function名称)
2. 加载后游戏主程式会inherate 6个arguments给Hackshield(其中包含Hash加密的key用来和伺服器端沟通)
3. 尝试启动Hackshield以前会针对全部System process Inject NTEagle.dll等dll档案 来检查是否有外挂被启动
4. 侦测到后会用case来决定要跳出什么类型的讯息并jmp到关闭游戏的routine

针对以上几点, 要防止hackshield侦测到外挂要怎么办?
有几种方针
1. 让自己的process不接受dll injections
2. 对hackshield inject你自己的dll 外挂档案
3. 让hackshield持续共存, 不过侦测到外挂时不会做任何动作

最简单的方法是什么? (一看就明白是第三项)
要达到这点当然得从hackshield侦测外挂手法来下手
- 防止别的程式在不被默认的情况下对监视游戏进行hook prevention
        Hackshield会load自己的driver并在SSDT中长驻
- 锁住常用functions让普通外挂作者的程式无法对游戏进行memory access
可是他们在这上面犯了很大的错误
现在是只要有程式尝试monitor游戏memory的安全性就会被当成外挂
防毒软体也不例外
- 采用keyword matching来决定是否为外挂
常用keyword如 Shell, Engine, Debug...etc
这也是为何有人安装正常软体的加装程式却也能被视为外挂一样

而以上的几点所要用的反击手段完全一模一样
只要将侦测后的动作完全NOP/JMP掉就可以让游戏在有外挂的情况下正常运行

恕我不说明哪些offset要被nop/jmp掉
总数不过才3个
只要一完成后这游戏有hackshield跟没有都一样
这款防外挂软体不过是尝试复制GameGuard的运作方式却没达到一样效果的产品而已
GameGuard至少在加密上做的还比较完善
外挂为什么能盛行? 因为这种没什么防御能力的防外挂程式也能被拿出来用
因为韩方在加密上完全没有投入心力(还用最低等级的壳?)
工程师连解密封包的hash key都Client side?????? (当外挂作者没大脑?)
--------------------------------------------------------------------------
丢出这些资讯让你们看看这就是你们完全不理解的
外挂有很大部分韩方也得负责任
并非官方单方面的能力问题而已

只要能unpack游戏主程式
基本上GM能做的事情 你80%也能做到- 复制装备/金钱
- 冲装一定过
- 瞬间移动
- GM指令
- 无技能CD
- 无敌不死
- 能站在原地就打全地图的怪
- 能将怪物全都"吸"到你指定的座标点
- 秒杀怪物
- 创立隐形角色
- 让你在的地图玩家通通断线
- 甚至给你伺服器相关加密资讯来让你能够进入伺服器并进行盗取帐号的事情
等等...

各位巴哈的想骂尽量骂
反正每次丢出这种安全漏洞总有人会跳出来战
这些重要的不先修好 要等别人利用来制作外挂后才肯修?
还在讨论什么bug 骂什么bug?
要知道很多外挂制作者早就已经突破这一关了
上一次的关机根本是没用的挣扎 治标不治本
大可投书你们的"贫"果日报来说明韩国对于网路游戏开发根本没投入正当的安全考量
大量抵制韩国游戏 让他们知道泡菜游戏在伺服器安全上等等都有存在大量漏洞
这些漏洞是专业人士该忽略的? 完全不知道严重性?
每一个泡菜游戏 几乎都这些问题
玩olg玩到现在也有8年左右 完全没看到任何改变迹象
回报给你们漏洞问题 至今OB了多久? 韩方根本没改过
这种制作商还有所谓的Credibility?
也难怪外挂只把欧美游戏当成challenges而把泡菜游戏当成practices

此为证据图:
http://i42.tinypic.com/2s7b7n6.png
你们没有关掉Hackshield的
是不可能框起来的程式一起开的
框起来的程式为: 加速器, 游戏本身, OllyDbg

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
看样子LZ是伤心了
2010-9-28 17:19
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
正好要学习shell,不错,相当受教
2010-9-28 22:26
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
好文章好文章
2014-8-9 02:56
0
雪    币: 44
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
看不懂,但想学习
2014-8-9 09:36
0
游客
登录 | 注册 方可回帖
返回
//