好友
阅读权限10
听众
最后登录1970-1-1
|
单独编写一个启动器/登录器或者使用DLL劫持, 里面hook到游戏加载res的api, 通过判断是否游玩mod版游戏来决定是否调用解密api
启动游戏->是否加载mod->加载mod则先调用解密api将资源加载至内存或其他位置->将解密后的资源作为参数调用游戏加载资源函数
AheadLib 通过DLL生成DLL劫持代码,
MinHook Hook用的api,
然后通过调试去找一下游戏加载资源的函数, 根据情况编写自己的解密函数
根据描述游戏资源是打包成一个文件的所以应该只用hook一处加载dat包的代码, 对于只加载一次的资源文件这种方法应该比较简单, 如果资源需要多次加载也只需加个判断
如果想要更高的安全性可以单独把从包中提取音频, 图片, 模型的函数也进行hook然后在打包前对每项资源单独进行加密, 不过我感觉这些提取函数很可能就是加载资源函数的一部分, 所以这样加密可能需要重写加载资源的函数
或者通过游戏加载mod的某些特征或者游戏脚本来加载解密用的DLL, 比如某游戏加载某个mod是通过游戏脚本语言来实现的, 该mod通过这种脚本来调用了自己的DLL实现了新的特性, 我知道的不多, 靠楼主自己研究咯
|
|