专业丰富的破解论坛技术交流,提供软件安全,病毒分析,脱壳破解,安卓破解,加密解密等,由无数热衷于软件爱好者共同维护
 
发新帖
楼主: 零五零八
查看: 2075|回复: 0

[技术文章] 网易游戏的四种解密&解包,附工具

[复制链接]
零五零八 发表于 2020-10-9 16:50:00 | 显示全部楼层
游戏中大概有3种文件,分别是pyc,nxs,npk,还有一些配置文件就不说了
这里的pyc是修改过opcode的,pyc文件加密后就是nxs文件,nxs文件会被打包到npk文件中
我们从里向外说吧,先放出GitHub链接:https://github.com/yuanbi/NeteaseUnpackTools

Pyc文件

NeteasePycObject,这个文件夹中的文件是用来还原pyc opcode的,使用方式如下:
netpyc 输入文件 输出文件 [是否加密]
第三个参数是可选的,默认为0,代表解密,如果为1代表加密,就是将正常的opcode修改为游戏中python的opcode

这个工具的部分pyobject的偏移有问题,大部分文件不会出现问题,懂这方面的大佬可以自行修改下,后面修改过后也会在GitHub更新的

用netpyc修改opcode过后,可以使用uncomply6,进行反编译

还有一个问题就是部分pyc文件会有一个或两个字节码不是python中的字节码,极少数的文件会出现这种问题,这个时候在反编译的时候就会报error,如果报了error可以观察解析失败的opcode附近的代码,可以自行修改

如果被修改过的字节码不在opcode中,就要手动分析了,当然这种情况出现的很少

Nxs文件

接下来就是nxs文件了,nxs文件直接使用NeteaseNxsUnpack中的NeteaseNxsUnpack.py进行解密,使用方法如下
python2 NeteaseNxsUnpack.py 输入文件 输出文件
之后使用netpyc解密opcode,然后反编译就行了

Npk文件

直接使用NeteaseNpkUnpack中的NeteaseNpkUnpack.py,使用方法如下
python2 NeteaseNpkUnpack.py 输入文件 输出文件夹,解密后的文件无后缀,文件类型需要自己分析

Script.Npk解包


网易游戏基本上会有script.npk,解包方法如下
先解包npk,解包后文件夹中的所有文件都是nxs文件,在进行nxs文件解密的步骤就行了

DecodeBuffer

这些是三种文件,还有一种是这样的,这里说的是Windows的版本,在nxfilesystem.dll中会有一个decodebuffer函数,这个就是第四个,这个函数的上层是openwithloader
openwithloader作用是打开文件,文件校对,和部分初始化,在openwithloader中并不是所有的数据都要经过decodebuffer函数,部分数据需要解密,多数会是一些配置文件

在openwithloader中,捕获数据如下,在openwithloader的ret字节下断点,文件名,文件大小,会存储在[eax+4]的位置,如果我没记错的话

还有就是在Windows中并不是所有文件都存储在npk文件里,还有一部分存储在  C:\Users\用户名\AppData\Local\游戏名缩写 中,如果你在这里中找到了script文件夹,这个文件夹中会包含很多文件夹和一个文件

这些文件夹和文件的名字都是被加密过的,可以在nxfilesystem.dll中搜索导出的包含path的函数,具体名字忘记了,函数功能是这样的,传入正常路径,传出加密路径
快速回复 返回顶部 返回列表