本帖最后由 q504860058 于 2024-6-24 14:05 编辑
效果:获取部分美术资产,比如Texture2D
![](https://static.52pojie.cn/static/image/smiley/laohu/laohu29.gif)
最近有机会接触UE相关资产的加解密方向,浅析了一下调用链以及hook时机,供同僚们交流。
开始之前可以先下载UE的源码,了解UE的Texture2D加载流程,最终定位到
[C++] 纯文本查看 复制代码
FPngImageWrapper::UncompressPNGData(const ERGBFormat InFormat, const int32 InBitDepth)
[font=-apple-system, BlinkMacSystemFont, "]
ERGBFormat结构中的rawData经过dump测试后可以正常显示图片。
![](https://bbs.kanxue.com/upload/attach/202406/899617_6BMP9J75YCHQYJU.webp)
在目标app中定位UncompressPNGData,可以采用字符串大法
![](https://bbs.kanxue.com/upload/attach/202406/899617_BAGKDQP5PFQ3PK6.webp)
可以通过一下两个方法利用frIDA全程hook并dump jpg文件 UncompressPNGData 、FJpegImageWrapper::UncompressTurbo
如果有需求获取其他格式的资产,可以尝试在其他图片类型的wrapper方法中尝试寻找合适的Uncompress***Data方法(比如imageWrapper)进行hook获取。
本文仅抛出一个思路,并已在本地demo工程测试。
大佬们可以交流一波
|