ue4游戏dump

这篇具有很好参考价值的文章主要介绍了ue4游戏dump。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

链接
UE4Dumper:https://github.com/kp7742/UE4Dumper
游戏示例: https://www.bilibili.com/video/BV12v41167Gy
定义
GWorld 指向游戏世界对象

//Engine\Source\Runtime\Engine\Classes\Engine\World.h
/** Global UWorld pointer. Use of this pointer should be avoided whenever possible. */
extern ENGINE_API class UWorldProxy GWorld;

GNames 指向游戏字符串数组

//Engine\Source\Runtime\Core\Private\UObject\UnrealNames.cpp
static bool bNamePoolInitialized;
alignas(FNamePool) static uint8 NamePoolData[sizeof(FNamePool)];

GUObject 指向游戏对象数组

//Engine\Source\Runtime\CoreUObject\Public\UObject\UObjectArray.h
extern class FUObjectArray GUObjectArray;

UE4版本
查看AndroidManifest.xml
游戏版本为 U E 4 + R e l e a s e - 4 . 2 5
指针怎么找
GWorld
切换到Exports
搜索关键词【GWorld】
GWorld 即为 0BD23804
GNames
1.切换到Exports
搜索关键词【FNamePool::FNamePool(void)】
2.然后 按快捷键X查看是谁调用了该函数 随便点击一个进去
3.Gnames 即为 0xBBF3778(0xBBF3780-0x64D5634+0x64D562C)

.text:064D5628                 LDR             R0, =(unk_BBF3780 - 0x64D5634)
.text:064D562C                 ADD             R0, PC, R0 ; unk_BBF3780
.text:064D5630                 BL              _ZN9FNamePoolC2Ev ; 

FNamePool::FNamePool(void)
GUObject
切换到Exports
搜索关键词【GUObjectArray】
GUObject 即为 0BC06128
命令
示例

./ue4dumper --newue --sdkw --gworld 0BD23804 --gname 0BBF3778 --package com.wangyi.UE4_Bili_Brushify_01   --output /storage/emulated/0/三秋 --verbose
./ue4dumper --newue --objs --guobj 0BC06128 --gname 0BBF3778 --package com.wangyi.UE4_Bili_Brushify_01   --output /storage/emulated/0/三秋 --verbose
./ue4dumper --newue --strings --gname 0BBF3778 --package com.wangyi.UE4_Bili_Brushify_01   --output /storage/emulated/0/三秋 --verbose

帮助文档

 ./ue4dumper -h
  
 UE4Dumper v0.20 <==> Made By KMODs(kp7742)
 Usage: ./ue4dumper <option(s)>
 Dump Lib libUE4.so from Memory of Game Process and Generate structure SDK for UE4 Engine
 Tested on PUBG Mobile Series and Other UE4 Based Games
 Options:
 --SDK Dump With GObjectArray Args--------------------------------------------------------
   --sdku                              Dump SDK with GUObject
   --gname <address>                   GNames Pointer Address
   --guobj <address>                   GUObject Pointer Address
 --SDK Dump With GWorld Args--------------------------------------------------------------
   --sdkw                              Dump SDK with GWorld
   --gname <address>                   GNames Pointer Address
   --gworld <address>                  GWorld Pointer Address
 --Dump Strings Args----------------------------------------------------------------------
   --strings                           Dump Strings
   --gname <address>                   GNames Pointer Address
 --Dump Objects Args----------------------------------------------------------------------
   --objs                              Dumping Object List
   --gname <address>                   GNames Pointer Address
   --guobj <address>                   GUObject Pointer Address
 --Lib Dump Args--------------------------------------------------------------------------
   --lib                               Dump libUE4.so from Memory
   --raw(Optional)                     Output Raw Lib and Not Rebuild It
   --fast(Optional)                    Enable Fast Dumping(May Miss Some Bytes in Dump)
 --Show ActorList With GWorld Args--------------------------------------------------------
   --actors                            Show Actors with GWorld
   --gname <address>                   GNames Pointer Address
   --gworld <address>                  GWorld Pointer Address
 --Other Args-----------------------------------------------------------------------------
   --newue(Optional)                   Run in UE 4.23+ Mode
   --ptrdec(Optional)                  Use Pointer Decryption Mode
   --verbose(Optional)                 Show Verbose Output of Dumping
   --derefgname(Optional) <true/false> De-Reference GNames Address(Default: true)
   --derefguobj(Optional) <true/false> De-Reference GUObject Address(Default: false)
   --package <packageName>             Package Name of App(Default: com.tencent.ig)
   --output <outputPath>               File Output path(Default: /sdcard)
   --help                              Display this information

结果

SDK.txt
游戏类成员偏移以及函数地址
Class: World.Object
	Level* PersistentLevel;//[Offset: 0x20, Size: 0x4]
	NetDriver* NetDriver;//[Offset: 0x24, Size: 0x4]
	LineBatchComponent* LineBatcher;//[Offset: 0x28, Size: 0x4]
	LineBatchComponent* PersistentLineBatcher;//[Offset: 0x2c, Size: 0x4]
	LineBatchComponent* ForegroundLineBatcher;//[Offset: 0x30, Size: 0x4]
	GameNetworkManager* NetworkManager;//[Offset: 0x34, Size: 0x4]
	PhysicsCollisionHandler* PhysicsCollisionHandler;//[Offset: 0x38, Size: 0x4]
	Object*[] ExtraReferencedObjects;//[Offset: 0x3c, Size: 0xc]
	Object*[] PerModuleDataObjects;//[Offset: 0x48, Size: 0xc]
	Actor*[] LevelSequenceActors;//[Offset: 0x54, Size: 0xc]
	LevelStreaming*[] StreamingLevels;//[Offset: 0x60, Size: 0xc]
	StreamingLevelsToConsider StreamingLevelsToConsider;//[Offset: 0x6c, Size: 0x1c]
	FString StreamingLevelsPrefix;//[Offset: 0x88, Size: 0xc]
	Level* CurrentLevelPendingVisibility;//[Offset: 0x94, Size: 0x4]
	Level* CurrentLevelPendingInvisibility;//[Offset: 0x98, Size: 0x4]
	DemoNetDriver* DemoNetDriver;//[Offset: 0x9c, Size: 0x4]
	ParticleEventManager* MyParticleEventManager;//[Offset: 0xa0, Size: 0x4]
	PhysicsVolume* DefaultPhysicsVolume;//[Offset: 0xa4, Size: 0x4]
	bool bAreConstraintsDirty;//(ByteOffset: 0, ByteMask: 8, FieldMask: 8)[Offset: 0xba, Size: 0x1]
	NavigationSystemBase* NavigationSystem;//[Offset: 0xbc, Size: 0x4]
	GameModeBase* AuthorityGameMode;//[Offset: 0xc0, Size: 0x4]
	GameStateBase* GameState;//[Offset: 0xc4, Size: 0x4]
	AISystemBase* AISystem;//[Offset: 0xc8, Size: 0x4]
	AvoidanceManager* AvoidanceManager;//[Offset: 0xcc, Size: 0x4]
	Level*[] Levels;//[Offset: 0xd0, Size: 0xc]
	LevelCollection[] LevelCollections;//[Offset: 0xdc, Size: 0xc]
	GameInstance* OwningGameInstance;//[Offset: 0xf8, Size: 0x4]
	MaterialParameterCollectionInstance*[] ParameterCollectionInstances;//[Offset: 0xfc, Size: 0xc]
	Canvas* CanvasForRenderingToTarget;//[Offset: 0x108, Size: 0x4]
	Canvas* CanvasForDrawMaterialToRenderTarget;//[Offset: 0x10c, Size: 0x4]
	ActorComponent*[] ComponentsThatNeedEndOfFrameUpdate;//[Offset: 0x148, Size: 0xc]
	ActorComponent*[] ComponentsThatNeedEndOfFrameUpdate_OnGameThread;//[Offset: 0x154, Size: 0xc]
	WorldComposition* WorldComposition;//[Offset: 0x3e8, Size: 0x4]
	WorldPSCPool PSCPool;//[Offset: 0x468, Size: 0x44]
	WorldSettings* K2_GetWorldSettings();// 0xa705f50
	None None;//[Size: 0xae1d7e68]
	None None;//[Size: 0xa000006]
	None None;//[Size: 0x0]

--------------------------------
Class: Object
	void ExecuteUbergraph(int EntryPoint);// 0x681a184
	None None;//[Size: 0xae1d7e68]
	None None;//[Size: 0xa000006]
	None None;//[Size: 0x0]
...

Objects.txt
游戏对象信息
[0x0]:
Name: /Script/CoreUObject
Class: Package
ObjectPtr: 0x8d7af200
ClassPtr: 0xc81b9a00

[0x5]:
Name: MaterialExpressionTextureBase
Class: Class
ObjectPtr: 0xd4827980
ClassPtr: 0xc81b9bc0

[0xa]:
Name: /Script/Paper2D
Class: Package
ObjectPtr: 0x8d7aef80
ClassPtr: 0xc81b9a00

[0xf]:
Name: Character
Class: Class
ObjectPtr: 0xd4827280
ClassPtr: 0xc81b9bc0
...
Strings.txt
游戏字符串信息
{4} [0]: None
{12} [2]: ByteProperty
{11} [8]: IntProperty
{12} [d]: BoolProperty
{13} [13]: FloatProperty
{14} [19]: ObjectProperty
{12} [20]: NameProperty
{16} [26]: DelegateProperty
{14} [2e]: DoubleProperty
{13} [35]: ArrayProperty
{14} [3b]: StructProperty
{14} [42]: VectorProperty
{15} [49]: RotatorProperty
{11} [50]: StrProperty
{12} [55]: TextProperty
{17} [5b]: InterfaceProperty
{25} [63]: MulticastDelegateProperty
{18} [6f]: LazyObjectProperty
{18} [78]: SoftObjectProperty
{13} [81]: Int64Property
{13} [87]: Int32Property
{13} [8d]: Int16Property
{12} [93]: Int8Property
{14} [99]: UInt64Property
{14} [a0]: UInt32Property
{14} [a7]: UInt16Property
...

PS
1.UE4引擎 4.23及以上和4.23以下查找GNames的方法不同,而GWorld和GUObject查找方式一致
2.IDA 解析 so的速度是真的慢,而且非常容易未响应
3.UE4几乎每个版本结构都有区别,所以需要修改 UE4Dumper中的 Offset.h文章来源地址https://www.toymoban.com/news/detail-445395.html

到了这里,关于ue4游戏dump的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • UE4初学者设计小游戏(一)

    目录 一、设计简介及故事概要 二、环境设计与场景搭建 1. 将天空球改成黑夜 1 2. 通过画刷(BSP)搭建逃脱石头屋 2 3. 添加地形 5 4. 添加氛围元素 5 5. 感应灯 7 三、游戏机关蓝图设计 1.手电筒设计 8 2.设计开关门 9 6. 天梯设计 12 7. 加血装置 13 四、UI设计 2. 开始界面 14 3. 暂停

    2024年02月06日
    浏览(45)
  • UE4 回合游戏项目 01- 创建人物-玩家角色

    步骤: 1.下载游戏资源,链接:https://pan.baidu.com/s/1l2hpeEtIoFcUC4vAhut-ig 提取码:wlcp 2.解压第一节课资源 双击打开项目:  3.新建一个空白工程  设置好项目的存储路径和项目名  4.打开含有游戏资源的虚幻编辑器,右键点击内容,选择迁移  将所有的游戏资源迁移到新项目中

    2024年02月08日
    浏览(68)
  • ue4初级UI设置一(游戏的开始界面)

    1.file——new level 创建一个新关卡。 2.打开新的关卡蓝图中的蓝图关卡:游戏一开始是创建一个游戏游戏ui界面,在增加一个视口(这样才能看到uiwidget的界面) 3.在创建好游戏一开始的ui界面后要用鼠标点击游戏开始,这时我们需要获取到游戏的控制权get player controller ——s

    2024年02月13日
    浏览(57)
  • UE4中实现鼠标拖动游戏中的物体

    一、显示鼠标光标、启用鼠标点击事件         可以在关卡蓝图中或者游戏模式中加入下面代码  二、点击物体进入选中状态  三、根据通道获取命中结果          通过这个函数可以获取当前鼠标光标下接触的actor,重新设定actor位置即可。这里可以将类型转换去掉,就可

    2024年02月11日
    浏览(53)
  • UE4 在游戏运行时显示或隐藏鼠标

    在关卡蓝图中进行如下设置,当按下“Tab”键时显示鼠标,按第二次隐藏,以此类推: 如果希望显示鼠标的同时还能够触发点击事件,就添加如下两个节点 然后就可以在蓝图中编辑静态网格体的点击事件:

    2024年02月11日
    浏览(41)
  • UE4第三人称多人联机游戏开发01

    单人游戏 中一台电脑只有一个游戏会话(Session),我们可以通过在同一电脑中分屏并用不同的输入设备,单人游戏不需要使用互联网。 多人游戏 中,游戏实例在独立的两台电脑中运行,而由于玩家在不断地输入指令,因此我们需要将一个游戏实例中的信息通过互联网传输到

    2024年02月07日
    浏览(90)
  • 游戏开发入门ue4和unity要怎么选择?

    关于两款引擎该怎么选的问题 先从行业大环境这个角度分析: 目前市场主流是U3D,这并不意味着UE4不好。UE4的学习成本更 高且招人困难导致了大部分公司不选择用UE4去做游戏。U3D是做端游也可以,做手游格外方便,而且U3D学起来也更简单导致了市场上大部分都在用U3D开发游

    2023年04月15日
    浏览(85)
  • 【UE4 塔防游戏系列】06-炮塔发射子弹攻击敌人

    1. 新建一个Actor蓝图类,命名为“TotalBulletsCategory”,用来表示子弹蓝图总类,后面会有很多不同类型的子弹会继承该类 打开“TotalBulletsCategory”,添加粒子系统组件、盒体碰撞组件和发射物移动组件  调整发射物重力范围为0 添加一个变量,命名为“ChoosedEnemy”,用来表示子

    2024年02月17日
    浏览(48)
  • 【UE4 塔防游戏系列】07-子弹对敌人造成伤害

    目录 效果 步骤 一、让子弹拥有不同伤害 二、敌人拥有不同血量  三、修改“BP_TowerBase”逻辑 四、发射的子弹对敌人造成伤害   一、让子弹拥有不同伤害 为了让每一种子弹拥有不同的伤害值,打开“TotalBulletsCategory”(所有子弹的父类),新建一个浮点型变量,命名为“

    2024年02月16日
    浏览(42)
  • Unity和UE4两大游戏引擎,你该如何选择?

    目录 游戏引擎 2 —— 难易区别 编程语言 3 —— 游戏产品 UE4制作的游戏产品  Unity制作的游戏产品  产品类型 5 —— 资源商店 6 —— 人才需求 平均薪资 总结      Unity和UE4都是游戏引擎,所谓游戏引擎就是集成了复杂功能的游戏开发软件,他们帮我们实现了复杂的底层逻

    2023年04月08日
    浏览(72)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包