决战平安京解包 |
您所在的位置:网站首页 › 决战平安京段位列表 › 决战平安京解包 |
据我观察 这若干游戏中 平安京的桔梗模型是最精致的 打算就从这里面搞出来模型来 woc b站这编辑器怎么不支持markdown 前言 通用游戏模型提取方式 数据包里的模型 -> 内存中的模型 -> 显卡显存中的模型 数据包里的模型 经过 游戏引擎读取后放到内存中 然后经过当作动作和物理计算后 把结果最终发送到显卡显存中 什么opengl ripper、ninja ripper都是从显卡显存或者发送到显卡前的内存中读取的 因此得到的结果是含有动作的模型 使用价值不大 信息搜集 已经有网易Neox的解包方法了 https://www.bilibili.com/read/cv1348159 然而最大的问题是决战平安京用到的是EXPK(Encryption neoX PacKage) 现在的问题是如何解密 分析 其实解密要么ida pro反编译找到加密的方式 要么直接dump内存 曾经尝试用第一种方法 结果平安京实在是太大了 根本不好下断点调试 那就用第二种 pidof com.netease.moba 查看平安京的进程号 cat /proc/`pidof com.netease.moba/maps 查看平安京的内存映射 cat /proc/`pidof com.netease.moba/maps | grep malloc > /data/local/tmp/memmaps.txt 找到平安京malloc分配的堆内存 并把映射表保存下来 ida pro按这个表把堆内存拉下来 注意要用dword而不是byte 不然会慢四倍 至此得到平安京运行时堆内存镜像 接下来我们来从镜像中寻找突破口 分析原有的nxpk文件 觉得可能索引表留在内存中 接下来从文件数量最多的包入手查找(原因:数量多 表大 很可能 单独分配个大内存块 找到后兴高采烈得去解密内容 然后发现也加密了 怎么搞? 接下来又三条路 1 只提取一个模型 还原类得信息 (投入与回报太少了 2 仍旧反汇编 很难啊 3 根据明文跟密文破解 没玩过 我们先看一下从内存dump出来的索引表 跟阴阳师的一模一样 尤其是第七块 要么0要么1 也就是说压缩算法也是zlib zlib有个标头(magic number) 78 9c 但我们在expk包里发现的是15 23 搜索一下15 23的数量 跟 一个随便同长度的数字的数量 发现差基本是文件数量 可以确认这个加密算法应该是对每个文件做相同的变化(也就是说加密不会与文件内容之外的信息有关,比如文件索引号等) 很可能是基于字节的 根据程序员的三大美德之首 懒惰 猜测可能跟索引加密方法一样(突破的核心 加密方法很可能是 异或运算 从索引表推出xor 的值 解密内容 可以还原出zlib头 至此 解密结束 剩下的翻上面阴阳师解包的文章找工具查看模型跟转模型 (注:我相信一大堆人都搞出来了 索引表 但是都卡在文件内容解密了 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |