HTB Challenges GamePwn SokobanHTB
主站 分类 云安全 AI安全 开发安全 2025-11-24 10:16:21 Author: www.freebuf.com(查看原文) 阅读量:7 收藏

freeBuf

主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

1.打开程序界面如下

1763975577_69242199531524c4acc8d.png!small

试了一下发现可以用wasd移动,并且绿色的方块可以被推动

猜测是要把三个方块推到黄×上

2.尝试用CE直接搜索分数

从0->1->2,但是没成功

3.把程序放进Ghidra看下代码

从entry开始

void entry(void)

{
  __security_init_cookie();
  FUN_1400b32e0();
  return;
}

再进入FUN_1400b32e0()

观察到其中一段代码

iVar2 = FUN_1400045f0();
uVar5 = FUN_1400b432c();
if ((char)uVar5 != '\0') {
if (!bVar1) {
_cexit();
}
__scrt_uninitialize_crt(...);
return iVar2;
}
exit(iVar2);

推断FUN_1400045f0()大概率是主函数

4.进入FUN_1400045f0()
看了下代码逻辑大概是这样

FUN_1400045f0():

[1] 初始化本地变量、locale、字符串
[2] 加载字体
[3] 加载贴图 player.png
[4] 加载贴图 X.png(目标点)
[5] 加载贴图 box.png
[6] 初始化地图 (8x7)
[7] 根据地图堆叠各种对象:玩家、目标点、箱子、墙?
[8] 游戏循环 while(running):
       - 处理输入(WASD/方向键)
       - 更新玩家位置
       - 判断玩家位置是否撞墙/箱子
       - 箱子是否能被推动
       - 玩家是否走到目标
       - 绘图

5.发现在初始化时都会调用这个函数

FUN_140018fb0((longlong)local_670,
                      CONCAT44((float)iVar22 * 64.0 + 90.0,(float)iVar20 * 64.0 + 320.0));

猜测可能是物体的坐标

6.于是又打开CE试一下

根据代码判断是单浮点,类型选未知的初始值进行首次扫描

1763977195_692427eb94cdaffbc837d.png!small

然后操控人物向右走选择增加的数值进行再次扫描

1763977496_69242918ea7ff0df529fd.png!small

同理向左走选择减少的数值进行扫描

最后停一下选择未变动的数值进行扫描得到以下结果

1763977891_69242aa34586b3b32f35e.png!small

7.把这些地址都双击添加一下

对每个地址对应数值进行修改

观察到其中一个地址修改数值后游戏人物位置会发生改变

可以推断这个就是它的x坐标

并把其它多余地址删除
1763978149_69242ba537dc94970bc95.png!small

8.推测y坐标地址在x坐标地址附近

用x地址+4来添加地址,类型选用单浮点

得到一个看起来像y坐标的地址

1763978369_69242c819178812f6f643.png!small

操纵人物移动,并修改数值

成功验证该结果

继续在该地址附近±4看是否有其它有用的地址,结果没找到

9.接下来要确定外面方块的坐标

将人物x坐标改大到外面会被立马传回来

最后反复试了一下发现1024时人物刚好与方块重合

10.对1024进行反复扫描得到

1763979145_69242f8974ac26e853a42.png!small

11.同样依次修改确定

最后得到结果

1763979269_69243005219e59fa13e74.png!small

已在FreeBuf发表 0 篇文章

本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)


文章来源: https://www.freebuf.com/articles/game/458741.html
如有侵权请联系:admin#unsafe.sh