Skip to content

附录 · 出处清单 ​

本专题所有结论的来源。正文里凡是给出一手来源的地方,都能在这张表里找到对应条目;凡是标注为「经验做法」的, 说明我们没有找到可引用的一手出处,请当作线索而非事实。

来源分级 ​

级别含义本专题的用法
A · 引擎源码Epic 官方源码(含需要关联 Epic 账号的私有仓库,以及公开镜像)结构定义的最终依据
B · 开源项目文档/源码工具与库的作者自己写的文档与代码实现事实的依据(「某个工具确实这么做」)
C · 工具官方文档工具自己的手册工具能力与用法
D · 经验做法无一手出处明确标注,仅供参考

A · 引擎源码 ​

#来源支撑内容
A1UObjectArray.h(EpicGames/UnrealTournament 公开镜像)FUObjectItem 的字段构成(Object / Flags / ClusterIndex / SerialNumber)
A2NameTypes.h(同上)FName 的三个字段:ComparisonIndex / DisplayIndex / Number,以及 Number 内部存「实际值 + 1」的原因
A3UObjectBase.h(同上)UObjectBase 持有 ClassPrivate / NamePrivate / OuterPrivate / InternalIndex / ObjectFlags;且 FUObjectArray 是它的 friend(说明 InternalIndex 与对象数组的对应关系)
A4Class.h(同上)UFunction 的持久字段:FunctionFlags / RepOffset / ParmsSize / ReturnValueOffset / EventGraphFunction
A5World.h(同上)UWorld 的 PersistentLevel、Levels(TSet<ULevel*>)、NetDriver,以及 GetPersistentLevel() / GetLevels() 访问器
A6Level.h(同上)ULevel::Actors:TArray<AActor*>,注释说明它「被 FActorIteratorBase 及其派生类使用」
A7GameInstance.h(同上)UGameInstance 与 LocalPlayers 的关系
A8LocalPlayer.h / PlayerController.h(同上)ULocalPlayer → PlayerController → Pawn 这一段的字段依据
A9Epic 官方引擎仓库中的 Object.h / UnrealEngine.h / NameTypes.h / UObjectArray.h在 UE5 侧的符号落点:ProcessEvent、GWorld、FNamePool、FUObjectItem(该仓库需关联 Epic 账号才能浏览,故这里给出的是代码搜索链接)

| A10 | CCB-Team/UnrealEngine(私有仓库,Epic 官方 UE5 源码镜像,release 分支,ENGINE 5.8.0):CoreUObject/Private/UObject/UObjectGlobals.cpp、CoreUObject/Public/UObject/UObjectArray.h、Core/Public/UObject/NameTypes.h、Core/Private/UObject/NameTypes.cpp、Engine/Classes/Engine/World.h、Engine/Classes/Engine/Level.h、Engine/Classes/Engine/GameInstance.h、Engine/Classes/GameFramework/PlayerController.h | 08 章的全部证据:extern COREUOBJECT_API FUObjectArray GUObjectArray; 的声明、StaticConstructObject_Internal 对 GUObjectArray.ObjectToIndex(...) 的调用、StaticFindObjectFastInternal、名称池全局量 NamePoolData 与位布局常量(OffsetBits = 16 / BlockBits = 13 / EntryStride = alignof(FNameEntry))、UWorld::PersistentLevel、ULevel::Actors 位于 WITH_EDITORONLY_DATA 的事实、UGameInstance::LocalPlayers 与 APlayerController::AcknowledgedPawn |

关于 A 级的版本差异

EpicGames/UnrealTournament 是公开可读的 UE4 源码镜像,对应较早的 UE4 版本,因此字段名可能与新版不同 (例如 FName 的索引字段在新版是 FNameEntryId 类型)。用它来理解结构与关系是可靠的,但不要把其中的具体 偏移或字段顺序套到 UE5 游戏上。

B · 开源项目文档与源码 ​

#来源支撑内容
B1UE4SS 文档首页功能清单(Lua API / C++ Mod API / Live View / 各类 dumper)、支持版本 4.7–5.8、「不是即插即用方案,你可能需要自己更新 AOB」、Credits 中「UFunction hook method」的演进
B2UE4SS · Fixing missing AOBsAOB 的字节/通配写法、六步制作流程、六个签名的语义要求、Register / OnMatchFound / DerefToInt32、SwissArmyKnife
B3UE4SS 安装指南代理 DLL(默认 dwmapi.dll)、root / working directory 的区别、三种安装方式
B4UE4SS · dumpers 文档C++ Header Generator(生成带偏移的头文件)、UHT Dumper、usmap Dumper、UMAP Recreation Dumper
B5UE4SS 各游戏签名目录多版本签名库的组织形态;不同游戏需要补的签名不同
B6Avowed/UE4SS_Signatures/GUObjectArray.lua真实 AOB 实例:lea rcx, [rip+disp] 的 RIP 相对解析
B7Final Fantasy 7 Rebirth/.../GUObjectArray.lua真实 AOB 实例:先算下一条指令、再解一次偏移
B8DeadAsDisco/.../FName_Constructor.lua真实 AOB 实例:直接命中、无需解引用
B9Far Far West/.../GNatives.lua真实 AOB 实例:带完整注释的 RIP 推导(UE 5.8)
B10Dumper-7 README用法、ObjectArray::Init / InitObjectArrayDecryption / FName::Init / Off::InSDK::InitPE 四个覆盖入口、默认布局表、Dumper-7.ini 配置项
B11Dumper/Engine/Private/Unreal/ObjectArray.cpp多套分块数组布局(UE5.8 dev / Back4Blood / Multiversus 字段顺序被改)——「不能写死偏移」的硬证据
B12Dumper/Engine/Private/OffsetFinder/OffsetFinder.cpp不靠特征码的统计启发式(0x43 flags、0xA0 阈值、前 0x100 个对象);CmpIdx > 0x10 && < 0xF0000000 的范围校验;UObject::Name 与 UObject::Class 不同偏移的互斥约束
B13Dumper/Engine/Public/OffsetFinder/Offsets.hFName::bIsUsingAppendStringOverToString / FNameSize / FNamePoolBlockOffsetBits / FNameEntryStride;FName::NameArray 与 FName::NamePool 两套命名空间;FField::Vft / FFieldClass::Name;case preserving 与 outline number 导致的结构修正
B14CUE4Parse README资产/包解析库的定位与示例(LoadAllObjects)
B15UAssetAPI低层 .NET 资产读写库
B16UnrealMappingsDumper / Unreal-Mappings-Archive.usmap 的生成工具与社区归档
B17kismet-analyzer蓝图 / Kismet 字节码逆向工具
B18UE5DumperUE5 SDK dump 的同类实现
B19Unreal-Finder-Tool README「找 GNames / 找 GObjects / 实例日志 / 生成 C++ SDK」的功能划分;项目已废弃并转向 CheatGear

C · 工具官方文档 ​

#来源支撑内容
C1x64dbg 文档读内存、断点、表达式与命令体系(UE4SS 流程中的第 2、5 步)
C2Ghidra静态逆向框架
C3MinHook(include/MinHook.h、src/hook.c 与 README)Windows x86/x64 inline hook 库;09 章引用的 API 签名(MH_CreateHook / MH_EnableHook / MH_QueueEnableHook / MH_ApplyQueued)、MH_ALL_HOOKS 的定义,「每次 Enable/Disable 都会挂起并恢复所有线程」这条官方说明,以及 MH_RemoveHook 不支持 MH_ALL_HOOKS 这一行为(src/hook.c 中 MH_RemoveHook 未做该分支、FindHookEntry 按地址逐项比较的源码事实)
C4frida动态插桩框架

数据来源 ​

  • 仓库星标数、许可、描述:GitHub REST API(repos/{owner}/{repo}、search/repositories),2026-09 实测;
  • 各源码文件的字段与注释:通过 GitHub API 读取对应文件原文(非二手转述)。

关于未收录的社区来源 ​

本专题刻意没有引用若干常见的社区来源,原因是它们在本次整理环境下不可访问(返回 403 / Cloudflare 拦截), 既然无法核对原文,就不列出处、不写内容:

来源状态
guidedhacking.com返回 403(Cloudflare 拦截)
wiki.cheatengine.org返回 403(Cloudflare 拦截)
unknowncheats.me未收录(同类社区论坛,未取得可核对内容)
各类中文博客(知乎 / CSDN / 博客园等)未收录(本次未能检索到可核对的原文)

这意味着什么

上表里的来源在社区里流传很广,但它们不是本专题的依据。如果你要引用本专题的某条结论,请顺着正文里的链接 回到 A/B/C 级来源去核对;如果你发现某条结论其实早有更好的公开出处,欢迎在 本站仓库 提 Issue 或 PR 补上。

相关 ​