UE4游戏从何下手?

看了你们聊了那么多,咋感觉 你这是在 探讨,怎么找数据呢…

都是搞逆向的,既然找数据的话,肯定从汇编层考虑,比较实际。。。因为这是根本…

咱就不具体探讨对哪些具体功能了…只说写方向性的东西。

1,我想问,你会开发 简单的 UE4 小游戏demo 么?
UE4里的蓝图啊,对应的都是c++代码…如果你要知道UE4 代码执行流程的时候,那么你就需要去分析UE4 的 代码调用流程…然后你就可以轻松定位到,某个功能会调用某个函数…
既然知道了函数,那么必然就有游戏数据,就有游戏业务逻辑。。。所以,你可以在关键的jmp处,魔改成你希望的样子

2,当你不想深入理解UE4 引擎的原理的时候,你可以去大概的了解 UE4的设计理念。比如:世界指针,对象指针…以及和他们相关的结构体…这样,你就能拿到你想要的 数据,当然,还有方法了。同样…拿到数据和方法,然后分析方法的业务逻辑,你就可以在你想要的地方,魔改了

3,回到内存级分析来看。任何以后游戏,都需要有内存,你可以遍历到 你要的 信息的地址…然后通过动态调试…或者 IDA 的静态分析…最终能定位到 你需要的 某句汇编代码…此时,方法函数,你就拿到了…同样深入分析函数的 业务逻辑,你可以随意魔改了

4,api层的…这个怎么说呢…如果你读写文件,保存文件,肯定与 该系统下的 readfile,writefile 类函数相关…直接对这些api 下断点…然后通过堆栈回溯…找到你需要的 函数,分析函数业务逻辑,最后魔改…

所以说来,切入是啥,是拿到这个功能后,你觉得去怎么开发:
(a):只用 c/c++,你会怎么实现?
(b):用 UE4 框架,你又会怎么实现?
…当你有自己的实现方案后,就可以根据你的方案中需要的api ,到 UE4 游戏中 下断点… 然后拿到关键函数
(c):还有消息循环机制…你同样,去hook 消息循环的分发,拿到 每个消息的响应函数…

对逆向的咱们来说…程序本质就是 汇编 ;
对游戏来说,95%以上都有个消息循环…
而对功能是来说,肯定需要系统的某些api的支持;
当然对特定框架来说,肯定有他的一套运行流程…暂时归结为框架的原理吧…
对界面显示而言,肯定有内存与之对应…
对内存而言,肯定有函数对其读写…
以上 都是我们的 出发点…

举几个最简单的例子来说…
a,游戏的人物走路…他必然有个 时钟来控制 人物走一步的时间…
加速,减速…可以通过去魔改时钟 的间隔来实现
b,游戏里的打怪,必然和 玩家 对象以及怪物对象相关
c,游戏的透视,必然和 渲染有关。。。如果数据都在本地。。他肯定有先渲染哪个,然后用另外一个覆盖前面的。颠倒他们的渲染顺序…那么不就是透视么
d,秒杀怪物,肯定和怪物的状态,或者血量有关… 不同的游戏,怪物死亡的设计不一样
e,而无敌呢…要么是hook 减血函数,要么是改变 被攻击的检测

5 个赞