ue4读取配置文件_UE4的资源加密

本文介绍了UE4如何使用用户提供的素数进行RSA加密,详细讲解了加密流程,包括配置文件的读取、秘钥的计算与保存。还提到了AES加密在pak揭秘过程中的作用,并指出要实现更高级的加密需修改源码,特别是针对UELinkerFixups.cpp中秘钥的处理。最后建议深入理解unrealpak源码以了解更多细节。
摘要由CSDN通过智能技术生成

9d5b76892ea084ad7e7d90a45826be6c.png

官方的加密在UnrealPak里 它有自己的单独的exe,独立程序(但是它还是依赖引擎的,因为没引擎你打包加密什么资源呢)

50340a32a5a7de47aac7f68e28cc51df.png

8896c5b79ea2becc874a8ae3165cc937.png

如果你单独运行该exe 会报错告诉你没有可打包资源

be3157cd5a4501226900d675036b8263.png

在EngineSourceProgramsUnrealPakPrivateUnrealPak.cpp里

67bcef420c8cf0a97b567137f47bb14e.png

d5f76e35422471b112f5481acafcbf2c.png

ue4靠用户给定的两个素数(这两个素数一定得是16进制的而且不能相同),计算出私钥公钥和系数。如果你没有给定两个十六进制的素数那么从Primes.inl里随机选中两个。

08b4686969ff3d6f751be98f5be77231.png

根据给给定的素数进行计算

b7f163243351361956ed18235130669d.png

7c794328937381f2730c18e250b5d2bb.png

4b2c1a2c0e0708883fb0185ddfc776c6.png

87e40ff3352342af2356d3955ba7c8f1.png

保存到某个文件

e5b6a33440e0b87e4e15d3fe5a39ee62.png

计算出来秘钥对Pak进行加密还需要配置文件,在打包时候会首先对配置读取如果你的私钥公钥和系数不是通过ue4的加密算法计算出来的那么就会出错

64df042c4a9b670b6a8aa14fc0622b1f.png

778467baf8ed53e942a5cf01292343cc.png

a5e724d2a0007fd1fbb1371c88d48e07.png

说完计算通过两个素数计算rsa相关系数但是没有说pak加密的aes 这个aes可以自己设置,并不需要计算,pak在揭秘时会用到aes,aes不能少于32位

bacc8d3638f4e2850c81a37dfdbf6eea.png

8b4a1f49301bd4837411806699b71438.png

PrepareEncryptionAndSigningKeys函数是对pak加密做前期准备判断是否正确使用加密。

配置文件

config下

637f26fac95f0a4f4976d1802366cf1d.png

807018d8492dcc56332bc03696807363.png

这样就可以加密了,在EngineSourceRuntimePakFile模块里 我们可以找到加载pak 揭秘pak等。揭秘我就不说了,大家可以用ue4的模板实验比如加载第三人称模板也是需要pak揭秘挂载的。

这些加密的东西放在那里了呢 在UELinkerFixups.cpp里能找到,在exe启动时会自己从这里查到秘钥

更可怕的是打包的exe里依然能解析出公钥 系数和aes,从而根据ue4生成rsa秘钥的算法依然可以解析出pak,堡垒之夜就无法从exe里看到任何秘钥东西,可见是更改过源码的,所以想加密好点还是改源码吧,在从UELinkerFixups.cpp读取秘钥的那个函数自己再加密一次这才能更安全。加密还是有很多东西用了openssl的算法,具体的细节还是读源码unrealpak为好,毕竟ue4最好的文章就是源码了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值