虚幻4(ue4)引擎加密pak解包教程（初学者向x64源码逆向）

游客

标题:虚幻4(ue4)引擎加密pak解包教程（初学者向x64源码逆向）
正文:
本文为看雪论坛优秀文章看雪论坛作者ID：devseed 前言 遇到了喜欢的游戏，想提取壁纸，于是找quickbms等虚幻4引擎解包工具。无奈游戏加密，无法解包。不知密钥情况下，也没在网上找到现成的加密pak解包工具。想到Unreal4已经开源，就尝试着自己找一下密钥，也算是对照源码的x64逆向分析调试。以前接触的OllyDbg都是32位程序，64位稍有不同，这篇教程也算是我的初次接触x64dbg笔记了，包括了我对源码和编译器优化特征的理解，以及如何定位源码和反汇编代码的想法。本教程仅适用于非魔改版引擎和未加壳源码对照分析，以ue 4.23为例。注意，此教程仅用于逆向学习分析，请勿用于各种侵权行为。完全初学者应该也能很容易看明白，欢迎大家讨论交流，如有错误请多指教~本文内容与我在隔壁发的完全一样。 观察源码，寻找切入点 我用的vscode，搜索关键字decrypt。我们发现FAES:: Key结构，就是加密key，去epic官网查[5]发现是aes256加密。注意游戏版本要与源码版本一致，否则源码有可能修改对不上，还有此处不讨论魔改版ue4和程序加壳等问题。 看见void DecryptData(uint8* InData, uint32 InDataSize，FGuid InEncryptionKeyGuid)函数，右键findallreference找到相关信息，寻找切入点，我们看到文件IPlatformFilePak.cpp文件中void FPakFile::LoadIndex(FArchive* Reader)函数有fatal error的log，这个可以成为我们的关键点（因为是fatal，一般都会保留log，其他的log可能就没有编译到程序中[1])。 x64dbg寻找切入点 （为了减少break，在setting中只勾选entry和attach breakpoint，但是不知为什么还是在raiseerror中断？）右键搜索all module，reference string &quot;Corrupted index offset in pak file.&quot;，可以定位void FP
[<<][[1]][2][3][>>]

查看评论(0)
发表评论

首页