Skip to content

Ynkcc/AutoUEDump-Android

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AutoUEDump

Android Unreal Engine Dumper with dedicated game profiles and a generic AutoFix pipeline.

创作者: 曦曦 (DreamFekk)
GitHub: https://github.com/DreamFekk
禁止圈钱盗卖

简介

AutoUEDump 是一个面向 Android Unreal Engine 游戏的外部可执行 Dumper,基于 AndUEDumper 持续修改而来,并融合了多项接近 Dumper-7 风格的自动化流程。

项目当前的设计目标是:

  • 优先匹配已适配游戏的专用 Profile
  • 对未适配游戏自动回落到通用 AutoFix
  • 自动完成 UE 版本识别、关键地址定位和偏移修补
  • 自动输出 SDK、对象、偏移、日志与函数脚本

当前版本默认使用自动流程,不再要求用户手动选择游戏类型。

特性

  • 自动扫描当前正在运行的 UE 游戏进程
  • 自动区分专用 Profile 与通用 AutoFix
  • 自动初始化 GNamesFNamePoolGUObjectArray
  • 自动检测 UE4 / UE5 版本信息
  • 自动加载预设偏移并执行运行时修补
  • 自动修补 NamePrivateSuperStructChildrenPropertyFunction 等关键偏移
  • 自动解析 GWorldGEngineMatrixPhysxFrameCount
  • 自动定位 StaticFindObjectNativeAndroidAppProcessEvent
  • 支持从内存导出 libUE4.so / libUnreal.so
  • 生成适用于 IDA / Ghidra 的 script.json
  • SDK 按类型拆分输出,不再全部塞进单个 AIOHeader.hpp
  • 虚表注释同时输出 VTableIndex、槽位偏移和函数相对 UE 基址偏移

工作流程

程序启动后会执行以下流程:

  1. 自动扫描正在运行的 UE 游戏进程
  2. 如果只找到一个候选进程则直接使用
  3. 如果找到多个候选进程,则只要求用户选择进程序号
  4. 如果包名命中已适配游戏,则优先使用专用 Profile
  5. 如果没有命中专用 Profile,则自动使用 AutoFix (UE4/UE5 Generic)
  6. 运行时询问是否需要额外导出 UE 动态库

默认输出目录为:

/sdcard/AutoUEDump

每个游戏的输出目录为:

/sdcard/AutoUEDump/<package>

已适配游戏

当前仓库包含以下专用游戏 Profile:

  • 暗区突围
  • 三角洲行动(Guobject 目前还没有修复好 有缘人可以自己修复)
  • 远光 84
  • 枪战特训 2
  • 无畏契约
  • 洛克王国: 世界
  • 和平精英

说明:

  • 命中以上包名时,会优先使用专用 Profile
  • 未命中时,自动回落到通用 AutoFix

AutoFix

当前 AutoFix 已集成以下能力:

  • 扫描 UE 版本字符串
  • 同时扫描 UE ELF 段与全进程 rw-p 内存段
  • 按 UE4 / UE5 家族加载预设偏移
  • 执行运行时偏移修补
  • 输出修补前后结果
  • 通过通用特征码扫描 MatrixPhysxFrameCount
  • 以接近 Dumper-7 的方式暴力定位 GNamesFNamePoolGUObjectArray

输出文件

导出目录中通常会生成以下文件:

Logs.txt

运行日志,包含进程识别、初始化、修补、导出阶段和错误信息。

Objects.txt

对象列表导出,便于快速查看对象索引、地址与全名。

Offsets.hpp

关键偏移与地址导出,通常包含:

  • UE 结构偏移
  • GNames / FNamePool
  • GUObjectArray
  • GWorld / GEngine
  • Matrix / Physx / FrameCount
  • StaticFindObject / NativeAndroidApp / ProcessEvent

AIOHeader.hpp

SDK 总入口头文件。当前仅负责聚合包含:

  • SDK_Enums.hpp
  • SDK_Structs.hpp
  • SDK_Classes.hpp

SDK_Enums.hpp

所有枚举统一输出文件。

SDK_Structs.hpp

所有结构体统一输出文件。

SDK_Classes.hpp

所有类统一输出文件,函数声明与虚表相关注释也会出现在这里。

script.json

函数脚本导出,适合后续用于 IDA / Ghidra 等逆向工具。当前 JSON 顶层还会包含:

  • __author
  • __author_url
  • __notice

SDK 输出说明

当前 SDK 输出具有以下特点:

  • 枚举、结构体、类已经按类型拆分到不同头文件
  • 每个导出文件顶部会自动追加以下声明
// 创作者: 曦曦(DreamFekk) https://github.com/DreamFekk
// 禁止圈钱盗卖
  • 虚表函数注释中会输出:
    • VTableIndex
    • Offset
    • Real

其中:

  • Offset 表示虚表槽位偏移
  • Real 表示函数地址相对 libUE4.so / libUnreal.so 基址的偏移

快速开始

1. 推送到设备

建议将可执行文件推送到:

/data/local/tmp

示例:

adb push AutoUEDump /data/local/tmp/
adb shell chmod 777 /data/local/tmp/AutoUEDump

2. 在设备上运行

adb shell
su
cd /data/local/tmp
./AutoUEDump

3. 按提示操作

程序启动后会询问:

  • 是否从内存导出 UE 动态库

如果检测到多个 UE 进程,则需要输入:

  • 进程序号

4. 查看导出结果

导出完成后,结果默认位于:

/sdcard/AutoUEDump/<package>

构建

当前项目主构建方式为 CMake

环境要求

  • Android NDK
  • CMake
  • Ninja
  • 支持 C++20 的 clang 工具链

当前构建配置

主项目 CMakeLists.txt 位于:

AndUEDumper/CMakeLists.txt

当前主要配置包括:

  • 项目名:AutoUEDump
  • 构建类型:Release
  • ABI:arm64-v8a
  • Android API:30

编译步骤

进入主工程目录:

cd AndUEDumper/AndUEDumper

使用 CMake 生成并编译:

cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build -j4

可执行文件默认输出到:

AndUEDumper/AndUEDumper/outputs/arm64-v8a

目录结构

主要源码目录如下:

  • AndUEDumper/src/executable.cpp 负责程序入口、交互逻辑、自动进程检测与文件保存
  • AndUEDumper/src/Dumper.cpp 负责整体导出流程
  • AndUEDumper/src/UPackageGenerator.cpp 负责 SDK 生成逻辑
  • AndUEDumper/src/UE/UEGameProfiles 包含各专用游戏 Profile 与 AutoFixProfile
  • AndUEDumper/src/AutoFix 包含自动偏移修补、虚表解析、ARM64 解码等功能

说明

本项目仅用于学习研究 Unreal Engine 结构、逆向分析与自动化导出流程。

  • 禁止圈钱
  • 禁止盗卖
  • 禁止将导出结果包装后进行付费售卖

致谢

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C++ 95.7%
  • C 3.8%
  • Other 0.5%