当前位置: 首页 > news >正文

北京网站怎么做优质服务的网页归档

北京网站怎么做,优质服务的网页归档,个人博客网站模板,哪里可以检测钢结构防火涂料本文的重点在于如何使用UnrealPak的加密功能#xff0c;以及相关的UE4源代码学习。本文参考了#xff1a;https://www.cnblogs.com/shiroe/p/14803859.html 。 设置密钥 在编辑、项目设置中找到下面栏目#xff0c;并点击“生成新的加密密钥”#xff0c;就可以为Unreal P…本文的重点在于如何使用UnrealPak的加密功能以及相关的UE4源代码学习。本文参考了https://www.cnblogs.com/shiroe/p/14803859.html 。 设置密钥 在编辑、项目设置中找到下面栏目并点击“生成新的加密密钥”就可以为Unreal Pak配置Encryption了。 保存后观察到工程路径下 Config\DefaultCrypto.ini 具有这些配置 [/Script/CryptoKeys.CryptoKeysSettings] EncryptionKey6A/h1s12rbKctPXXXXXXXXXX bEncryptPakIniFilesTrue bEncryptPakIndexTrue bEncryptUAssetFilesFalse bEncryptAllAssetFilesFalse SigningPublicExponent SigningModulus SigningPrivateExponent bEnablePakSigningFalse 其中的 bEncryptPakIniFiles 表示是否加密ini文件。bEncryptPakIndex 对应 UnrealPak.exe 的 -encryptindex 开关它和 -encrypt 的区别是 在UE4中-encryptindex和-encrypt是两个命令行参数用于对Pak文件进行加密的不同方式。 1. -encryptindex这个参数用于对Pak文件中的索引进行加密。Pak文件的索引包含了文件名、文件路径和文件偏移等信息。通过对索引进行加密可以防止未经授权的访问和修改Pak文件中的资源。 2. -encrypt这个参数用于对Pak文件中的资源文件进行加密。资源文件包括游戏的纹理、模型、声音等实际的资源数据。通过对资源文件进行加密可以保护这些资源的安全性防止未经授权的访问和使用。 区别在于-encryptindex只对Pak文件的索引进行加密而-encrypt则对Pak文件中的资源文件进行加密。索引加密主要用于保护Pak文件的结构和元数据而资源文件加密则用于保护实际的资源数据。 这两个参数可以根据项目的需求和安全性要求进行选择和组合使用。通常情况下建议至少对资源文件进行加密以保护游戏的核心资源。而对索引进行加密可以提供额外的保护层增加Pak文件的安全性。 需要注意的是加密Pak文件会增加加载和解密的开销可能会对游戏的性能产生一定影响。因此在使用这些参数时需要权衡安全性和性能之间的平衡并根据项目的需求进行选择。 在UnrealPak.exe的介绍中可以看到只要指定了 “-enginedir” 和 “-projectdir”  就会使用 DefaultCrypto.ini 中的Key来作为密钥参考 https://www.cnblogs.com/shiroe/p/14803859.html如下 unrealpak PAK_NAME.pak -createResponseFile -compress -encrypt -encryptindex -aes32bit_AESKey // 在\Config\DefaultEncryption.ini文件中查找AES的密钥4.26 提示用 -cryptokeys -encryptindex -encryptionini -enginedirEngineDir -projectdirGameDir -platformWindows // 新版使用可将项目设置中的 Encryption Key 填入到json中 //json 格式为 { EncryptionKey: {Key: tmAjE6/depliVQgG3XgI60bwrQE2iGgg5n8VRPXrGm0} } -encrypt -encryptindex -compress -cryptokeysCrypto.json 接下来我尝试找到【指定了 “-enginedir” 和 “-projectdir”  就会使用 DefaultCrypto.ini 中的Key来作为密钥】所对应的源代码 Engine\UE4\Source\Developer\PakFileUtilities\Private\PakFileUtilities.cpp 中的  void LoadKeyChain(const TCHAR* CmdLine, FKeyChain OutCryptoSettings) 中的 void LoadKeyChain(const TCHAR* CmdLine, FKeyChain OutCryptoSettings) { // ……if (FParse::Value(CmdLine, TEXT(projectdir), ProjectDir, false) FParse::Value(CmdLine, TEXT(enginedir), EngineDir, false) FParse::Value(CmdLine, TEXT(platform), Platform, false)){UE_LOG(LogPakFile, Warning, TEXT(A legacy command line syntax is being used for crypto config. Please update to using the -cryptokey parameter as soon as possible as this mode is deprecated));FConfigFile EngineConfig;FConfigCacheIni::LoadExternalIniFile(EngineConfig, TEXT(Engine), *FPaths::Combine(EngineDir, TEXT(Config\\)), *FPaths::Combine(ProjectDir, TEXT(Config/)), true, *Platform);bool bDataCryptoRequired false;EngineConfig.GetBool(TEXT(PlatformCrypto), TEXT(PlatformRequiresDataCrypto), bDataCryptoRequired);if (!bDataCryptoRequired) // 【MarkA】{return;}FConfigFile ConfigFile;FConfigCacheIni::LoadExternalIniFile(ConfigFile, TEXT(Crypto), *FPaths::Combine(EngineDir, TEXT(Config\\)), *FPaths::Combine(ProjectDir, TEXT(Config/)), true, *Platform);bool bSignPak false;// …… 代码块1 调试“加密生成Pak的过程” G:\TheTestingPak2.pak -Create{我的项目中的某个Pak命令}_PakCommands.txt -AlignForMemoryMapping0 -compress -encrypt -encryptindex -compressionformatsOodle -encryptionini -projectdir{我的项目目录} -enginedirG:\St\EngineSource -platformAndroid 如果不明白其中的PakCommands.txt的含义请自行了解它配置了“需要打包的资源”。 选择 UnrealPak 进行调试并将 Programe Arguments改为上述指令。 一个小坎 断点断在“代码块1”处发现在 MarkA 处就进不来了bDataCryptoRequired 始终是 false也就是 以下这个ini字段始终是false或没配置。 TEXT(PlatformCrypto), TEXT(PlatformRequiresDataCrypto) 图一处阻碍其中的 bDataCryptoRequired 始终是 false暂不知道在哪里配置 解决方法根据 http://t.csdnimg.cn/RHylE 的介绍如果我希望快速设置这个值我需要得知其“Ini层级”断点查看 EngineConfig.SourceIniHierarchy 得知只需要创建一个 UserEngine.ini 如下图红框所示并配置上该字段如图2再次运行就能通过了 D 。 [PlatformCrypto] PlatformRequiresDataCryptotrue 图2 最后如愿以偿进入到了我们的目标代码并能看到密钥 走完整个过程看到了日志输出 LogPakFile: Display: Creating pak G:\TheTestingPak4.pak. LogPakFile: Display: Using encryption key Default [00000000000000000000000000000000] LogPakFile: Display: CompressionFormats in priority order: Oodle, Zlib LogDerivedDataCache: Warning: bShared: 0, data cache Path: ../../../Engine/DerivedDataCache LogDerivedDataCache: Warning: CreateFileSystemDerivedDataBackend LogPakFile: Display: CompressionFormat 0 [Oodle] : 0 files, 0 - 0 bytes LogPakFile: Display: CompressionFormat 1 [Zlib] : 0 files, 0 - 0 bytes LogPakFile: Display: CompressionFormat 2 [None] : 4 files, 27297821 - 27297821 bytes LogPakFile: Display: Added 4 files, 27298849 bytes total, time 0.19s. LogPakFile: Display: PrimaryIndex size: 176 bytes LogPakFile: Display: PathHashIndex size: 64 bytes LogPakFile: Display: FullDirectoryIndex size: 320 bytes LogPakFile: Display: Encryption - ENABLED LogPakFile: Display: Files: 4 LogPakFile: Display: Index: Encrypted (176 bytes, 0.00MB) LogPakFile: Display: Total: 27297856 bytes (26.03MB) LogPakFile: Display: Unreal pak executed in 600.237102 seconds 尝试用UnrealPak.exe去验证一下这个新产生的包发现List不出来到这里就能说明产生的Pak是加密的。 G:\G:\St\{我的项目}\Engine\Binaries\Win64\UnrealPak.exe -List TheTestingPak.pak LogTemp: Display: FCustomCryptoModule::StartupModule LogPakFile: Display: Using command line for crypto configuration LogWindows: Error: Critical error: LogWindows: Error: LogWindows: Error: Fatal error: [File:D:/{我的项目}/EngineSource/Engine/Source/Runtime/PakFile/Private/IPlatformFilePak.cpp] [Line: 339] LogWindows: Error: Failed to find requested encryption key 00000000000000000000000000000000 LogWindows: Error: LogWindows: Error: LogWindows: Error: LogHeavyTaskMonitor: Warning: FHeavyTaskMonitor TaskKey GLog_TearDown ,TaskPath GLog_TearDown , TaskTime 37.61 FHeavyTaskMonitor TaskKey GLog_TearDown ,TaskPath GLog_TearDown , TaskTime 37.61 到这里我们就知道如何使用AES加密Pak了后面的内容是关于UnrealPak.exe解密的追加调试研究非重点。 UnrealPak.exe无法解密出“已加密的Pak” 原本我以为有了Key就可以用UnrealPak.exe罗列出“-List” 指令或者解析出“-Extract” 指令已加密的Pak中的内容但是我折腾了很久我始终无法通过 UnrealPak.exe 的指令进行解密。始终会报错 【命令行】 G:\G:\St\DFMEditor\Engine\Binaries\Win64\UnrealPak.exe  TheTestingPak.pak  -Extract G:\{我的解压后目录}  -cryptokeyG:\key.json 【具体内容见后文】 【输出】 LogTemp: Display: FCustomCryptoModule::StartupModule LogPakFile: Display: Using command line for crypto configuration LogWindows: Error: Critical error: LogWindows: Error: LogWindows: Error: Fatal error: [File:D:/StableEditor/EngineSource/Engine/Source/Runtime/PakFile/Private/IPlatformFilePak.cpp] [Line: 339] LogWindows: Error: Failed to find requested encryption key 00000000000000000000000000000000 LogWindows: Error: LogWindows: Error: LogWindows: Error: LogHeavyTaskMonitor: Warning: FHeavyTaskMonitor TaskKey GLog_TearDown ,TaskPath GLog_TearDown , TaskTime 37.69 FHeavyTaskMonitor TaskKey GLog_TearDown ,TaskPath GLog_TearDown , TaskTime 37.69 G:\key.json的内容是 { EncryptionKey: {     Name: null,     Guid: null,     Key: 6A/h1s12rbKctPygBwBcwQ7FaidXaWzfn/NE4IsjbA     } } 最终结论是没有办法通过UnrealPak.exe直接解压出加密的Pak内容。我查询到的资料有 1、如何在项目中而非用UnrealPak.exe 来进行解密 I cant encrypt and load my external .pak at runtime - Programming Scripting - Epic Developer Community Forums 2、主要EncryptionKey的GUID是 Guid:00000000-0000-0000-0000-000000000000只有 SecondaryEncryptionKeys 才可能非零 UE工具链配置与开发技巧 | 循迹研究室 3、 在UnrealPak.exe中主动重载 GUID -encryptionkeyoverrideguid (override the encryption key guid used for encrypting data in this pak file) https://www.cnblogs.com/shiroe/p/14803859.html 4、一个成功能够解密出加密内容的帖子但是内容比较复杂没有看出是怎么做到的How I Extracted an Unreal Engine Game’s WWise Audio - Just Still 5、EncryptionKey 中的 Guid 配置为null https://github.com/allcoolthingsatoneplace/UnrealPakTool/blob/master/Readme.md 6、有人遇到同样问题 But it still using default keys LogPakFile: Display: Using encryption key Default [00000000000000000000000000000000] https://gbatemp.net/threads/how-to-unpack-and-repack-unreal-engine-4-files.531784/page-14 相关代码是搜索 FNamedAESKey::Guid 的设值的地方下图的红色的引用处都是 Guid() 。 至于为什么游戏内可以成功解密出来用呢现在我还不了解。
http://www.zqtcl.cn/news/861494/

相关文章:

  • 建设旅游网站的总结做网站链接怎么做
  • 深圳网站建设建设wordpress cms 布局
  • 企业网站的建立必要性公司建网站哪家
  • 自己做的旅游网站 介绍免费的网站推广在线推广
  • 阿里巴巴 网站设计龙华建设网站公司
  • 番禺网站优化手机商城是什么意思
  • 如何做网站关键词wordpress安装卡死
  • word模板免费下载网站山东定制网站建设公司
  • 郑州网站推广排名公司win7上怎样卸载wordpress
  • 科技网站有哪些wordpress代码编辑器件
  • 做英文企业网站多钱钱wordpress调用外链图片
  • 自学网站查分数西双版纳傣族自治州天气
  • 网站建设一个多少钱wordpress朗读句子插件
  • 网站关键词怎么填写找代理商的渠道有哪些
  • 网站开发销售简历范文新建网站网络空间
  • 舟山外贸建站公司制作公司简介
  • 菜鸟是什么网站威海网站建设费用
  • 网站开发花费如何制作个人网页兼职
  • 网站鼠标特效用户体验最好的网站
  • 网站设计步骤图南通网站建设公司
  • 做盗版系统网站会不会开发次元世界
  • 下载爱南宁官方网站手机app开发软件有哪些
  • 云浮网站设计不收费的企业查询网站
  • 网站栏目怎么做iis网站筛选器被挂马
  • 网站开发中遇到的主要问题品牌营销策略包括哪些内容
  • 网站制作易捷网络十大社区团购平台有哪些
  • 哈尔滨口碑好的建站公司做网站制作一般多少钱
  • 河南网站网站制作华为品牌vi设计
  • 网站设置默认主页甘肃省第八建设集团公司网站
  • 自己做网站美工关键词优化排名网站