设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 728|回复: 25

[胡扯] 通过修改游戏存档对游戏进行攻击,从Bitmap.new到shellcode

[复制链接]

[动态]受到tan12345的挑战,被揍得晕头转向。 (打开TA的战斗卡片)

Lv4.逐梦者 (管理员)

老黄鸡

梦石
0
星屑
13450
在线时间
6280 小时
注册时间
2009-7-6
帖子
12835

开拓者贵宾

发表于 2018-6-29 14:15:12 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
不知道之前大家有没有想过修改游戏存档就能拿到游戏内shellcode的可能,

最近在玩了一段时间mugen之后才考虑到这个问题,mugen中有大牛通过人物包文件的溢出来对mugen程序进攻击,执行人物包内定义的代码,如果换成RGSS,有没有可能呢。

研究了一天之后,咱这里发现了一个奇妙的溢出攻击点。

RUBY 代码复制打印
  1. Bitmap.new(超长文件名)


当文件名过长(超过260字节)时,RGSS程序(我用的XP做实验)会产生内存访问异常,并且异常地址位于
new出来的文件名内,这样一来,我们只要通过修改游戏存档中人物的character_name之类,能影响Bitmap参数的字符串就可以达到溢出的效果了。

溢出有了,那么攻击点是否存在呢?

1.png

经过调试之后,发现访问异常发生在rgss103j.dll+0x298D2,
简单分析之后,这里的逻辑大概是处理链式数据的地方,当最上面的edi为0时终止循环,且第一次edi不能为0(不在这个文件名内)
2.png

这里没有发现可以攻击的地方,所以先写入合理数据让程序继续运行。
如图,我们通过修改这个文件名内相应的位置(我这是读取文件内的字符串,要是直接放进脚本需要转成\xXX的格式)
就可以决定esi的值,使其终止处理(假装处理完毕)并继续执行。

由于此时堆栈被大量破坏,后面是一定不可能正常运行的,在ntdll的RltUnwind函数中再次发生访问异常,

3.png 4.png

而此时的ecx依然在文件名范围内,这样就拿到一个任意call,但由于文件名字符串在内存中的位置不固定,这里就肯定不能直接写文件名的内存地址。

5.png

翻一翻堆栈,不出所料附近依然有文件名内的内容,这样我们只要跳转到任何一个
非game.exe、内存起始地址小于ntdll区域的retn 0x4时
就可以让程序跑进这4个字节的代码区域,虽然只有4个字节,但是写个短跳就可以跳入大量可写字节范围内,不多赘述。

初步尝试:
RUBY 代码复制打印
  1. fux2 = File.open("str.txt","rb").read
  2. #p File.open(fux2){}
  3. Bitmap.new(fux2)


成功执行自定义代码。

想来写入存档也是没什么问题的,怕是又是全新的黑科技(x
要问有什么用的话,可能真的没用吧23333,就是好玩

“求大佬发一个XXX存档“
“来,这个给你”


什么?东西呢?没有东西,不满足伸手党,有兴趣看看,没兴趣笑笑

评分

参与人数 6+6 收起 理由
kirh_036 + 1 精品文章
oott123 + 1 塞糖
斜眼君 + 1
332682385 + 1
欧买歌 + 1
KB.Driver + 1 仿佛看到了汇编 不过学艺不精=_=|||.

查看全部评分

RGDirect - DirectX驱动的RGSS,点我了解.
长期合作请联系QQ1213237796(暂停)
定制RM全系列脚本,黑科技,请联系QQ349570812(暂停)。
不接受私人问题咨询

[动态]受到冰狼牙的挑战,被揍得晕头转向。 (打开TA的战斗卡片)

Lv4.逐梦者

梦石
0
星屑
17054
在线时间
1775 小时
注册时间
2006-11-10
帖子
5558
发表于 2018-6-29 15:49:51 | 显示全部楼层
一脸懵逼进来, 一脸懵逼出去

点评

对,完成之后,仅仅通过分享存档就可以让对方执行你写的代码。  发表于 2018-6-29 16:10
看起来很可怕的感觉, 通过修改存档, 然后读取这个存档就会对游戏本身产生破坏?  发表于 2018-6-29 15:58
用处也不大,就是个艺♂术效果  发表于 2018-6-29 15:51
祥瑞御免 ,家宅平安
回复 支持 反对

使用道具 举报

[动态]受到濒临崩坏的木南的挑战,被揍得晕头转向。 (打开TA的战斗卡片)

Lv3.寻梦者

孤独守望

梦石
0
星屑
1707
在线时间
1393 小时
注册时间
2006-10-16
帖子
4269

开拓者贵宾

发表于 2018-6-29 18:44:19 | 显示全部楼层
总而言之被触瞎

评分

参与人数 1+1 收起 理由
fux2 + 1 II能假装被触瞎我很高兴

查看全部评分

菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
搬家,继续装修
回复 支持 反对

使用道具 举报

[动态]还没有进行过任何战斗 (打开TA的战斗卡片)

Lv3.寻梦者

梦石
0
星屑
2865
在线时间
857 小时
注册时间
2017-10-30
帖子
339
发表于 2018-6-29 19:45:29 | 显示全部楼层
虽然看不懂,但是我已经被醋虾了。

点评

是时候寄出炸弹存档了  发表于 2018-6-29 19:53
高考神隐中,努力让自己变得更强
啥都会,啥都不擅长
一个VA群:679174724 欢迎来玩
回复 支持 反对

使用道具 举报

TA还没有解放自身的潜力。

Lv3.寻梦者

梦石
0
星屑
4181
在线时间
578 小时
注册时间
2017-9-27
帖子
459
发表于 2018-6-29 21:37:53 | 显示全部楼层
所以玩游戏千万不要用别人的存档。
回复 支持 反对

使用道具 举报

[动态]受到米亚利的挑战,被揍得晕头转向。 (打开TA的战斗卡片)

Lv5.捕梦者

梦石
10
星屑
12824
在线时间
1176 小时
注册时间
2010-11-14
帖子
2811
发表于 2018-6-30 01:05:37 | 显示全部楼层
想起今天看到知乎上讲的图标炸弹了……
大概是类似的原理?

陨石坑——Alice Union
回复 支持 反对

使用道具 举报

[动态]受到tan12345的挑战,被揍得晕头转向。 (打开TA的战斗卡片)

Lv4.逐梦者 (管理员)

老黄鸡

梦石
0
星屑
13450
在线时间
6280 小时
注册时间
2009-7-6
帖子
12835

开拓者贵宾

 楼主| 发表于 2018-6-30 08:34:41 | 显示全部楼层
KB.Driver 发表于 2018-6-30 01:05
想起今天看到知乎上讲的图标炸弹了……
大概是类似的原理?

这可说不准,没研究过不一定是同一种情况啦,不过利用修改输入数据进行攻击一般都是溢出攻击的一种辣。
RGDirect - DirectX驱动的RGSS,点我了解.
长期合作请联系QQ1213237796(暂停)
定制RM全系列脚本,黑科技,请联系QQ349570812(暂停)。
不接受私人问题咨询
回复 支持 反对

使用道具 举报

[动态]受到HXH的挑战,被揍得晕头转向。 (打开TA的战斗卡片)

Lv2.观梦者

梦石
0
星屑
599
在线时间
58 小时
注册时间
2017-9-28
帖子
11
发表于 2018-6-30 21:55:54 | 显示全部楼层
溢出攻击……服了
话说咱对着源码跑程序5分钟就开始烦了……就更别提汇编了……果然一旦爱好变成任务就立刻凉凉……

不过“修改存档”这攻击场景似乎有点苛刻哈,为啥要在存档里写字符串呢?

点评

不过rxdata里字符串倒是满天飞……“无敌版补丁”……  发表于 2018-7-1 16:33
其实我说的是“写游戏的人要从存档里读字符串出来”这个条件……毕竟谁闲的没事往存档里写字符串啊……  发表于 2018-7-1 16:30
并不苛刻吧……用ruby的话两三句就完成了,主要是字符串的内容。毕竟一般人不会想到一个游戏存档能让电脑收到攻击,要是有恶意的话植入病毒都行  发表于 2018-7-1 00:02
回复 支持 反对

使用道具 举报

[动态]受到hirogg的挑战,被揍得晕头转向。 (打开TA的战斗卡片)

Lv3.寻梦者

梦石
0
星屑
1234
在线时间
1071 小时
注册时间
2015-7-4
帖子
1558

开拓者

发表于 2018-7-1 23:14:51 | 显示全部楼层
举报楼主太醋,我都瞎了,我这段字都是盲打的
不变的你,伫立在茫茫的尘世中。
回复 支持 反对

使用道具 举报

[动态]tan12345斗上了几百回合,未分胜负。 (打开TA的战斗卡片)

Lv4.逐梦者 (管理员)

砂上描绘的愿想

梦石
5
星屑
2143
在线时间
4917 小时
注册时间
2012-1-15
帖子
4561

开拓者贵宾短篇七成年组亚军剧作品鉴家

发表于 2018-7-1 23:23:00 | 显示全部楼层
很久以前网游『仙境传说RO』的客户端里似乎也有一样的问题,玩家传一个特殊的bmp当作公会图标,就可以让所有看到该图标的玩家跳错退出游戏。而自己可以通过锁缓存的方式来不跳错,于是团战一夫当关万夫莫开……

点评

这【安】字真形象  发表于 2018-8-14 13:22

评分

参与人数 1+1 收起 理由
小吵闹的革命 + 1 敲锅盖

查看全部评分

若后退就皆成谎言。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:fux2@moe9th.com|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2019-7-17 14:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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