UE4 游戏Dump 教程
对UE4 引擎进行分析看到网上很少UE4资料(其实外网已经很多了),查阅了一些资料都是卖课程,看见好几套教程都在教逆向 BattleRoyaleTrainer 这个单机游戏,手法也都是一样的用CE
一直扫一直筛选,这虽然这是最简单暴力的方法, 个人认为也是最笨的~如果想彻底研究透 UE4 的SDK Dump 需要付出很多时间去研究。这种无脑用CE扫只会让你原地踏步
而且复杂点的游戏你也不一定能扫出来
既然这么多教程用BattleRoyaleTrainer来示范,我也用BattleRoyaleTrainer来测试,这次教大家如何dump Gname和Object
一、UE4是开源的 GitHub有项目,必须要学会结合项目来进行分析而且很多代码都需要使用到
https://github.com/EpicGames
二、知道两个重要的结构
UE4中有两个重要结构:Gname 和 Object 简单来说
Gname :是保存着UE4整个世界对象的名字
Object:是保存着世界的对象地址
#!!! 怎么查阅UE4代码 自己去官网看教程
GnameDump 需要参考的代码
https://github.com/EpicGames/UnrealEngine/blob/4.18/Engine/Source/Runtime/Core/Public/UObject/NameTypes.h
ObjectDump需要参考的代码
https://github.com/EpicGames/UnrealEngine/blob/4.18/Engine/Source/Runtime/CoreUObject/Public/UObject/UObjectArray.h
三、开始 Dump Gname
1、首先查看看看Gname 返回的是TNameEntryArray 这个类型 去看看UE4是怎么定义的
一个 TStaticIndirectArrayThreadSafeRead 类模板它中间使用到了 一个FNameEntry的结构
2、接下来去看FNameEntry 源代码 NameTypes.h 中有一个结构 FNameEntry 这个结构存储这全局名称想Dump 就得先了解这个结构
2、看源代码中TStaticIndirectArrayThreadSafeRead 这个类看看UE4 是怎么处理Gname的我们代码中就怎么处理
其中关键的是 GetItemPtr 这个函数,可以看到它返回类型是ElementType 在源代码在查看一下这个是什么
可以看到它是个类模板 还有看到这个类 TStaticIndirectArrayThreadSafeRead 它有定义了三个变量 Chunks NumElements NumChunks 也需要写到源代码中
写帖子太累了...Object 下次在说吧。文章中还有很多细节没讲到 算是一个入门吧。
注入测试
UE4 dump一直是一个很深奥的话题。楼主用简短的语言和代码却能讲的如此绘声绘色。确实用心良苦,好文章。爱了 zeroko14 发表于 2022-2-6 18:16
大佬,请问为什么提供的那几个网址打不开了
红色字体已经说了去UE4官网有说关注一下GitHub 不玩游戏的我还是感谢你的分享 学到了学到了 大佬,请问为什么提供的那几个网址打不开了 催更催更```! 学到了,去试试 技术好文,收藏 点赞!!谢谢分享!! 感谢分享 谢谢楼主分享{:1_893:}