求助万能的大佬

求助大佬。然后属实看不清解决办法了,是个海贼王盗版,里面的图片文件转成pkm了

【超级会员V3】通过百度网盘分享的文件:166488超神…
链接:https://pan.baidu.com/s/1ftVInixc1bVxgUaaPEiCPg?pwd=9wih
复制这段内容打开「百度网盘APP 即可获取」
这个是文件的安装包。
另外求大佬不吝赐教,这种png加密的有教程贴吗?后面还有个咒术的游戏,我看过文件也是一样的

是不会pkm转png,还是pkm是加密的?

应该是pkm加密的,我有个手机转的软件,转完了图片还是查看不了。文件头看正常pkm图片是pkm的,但是这个看不太懂了,转换也没用

from pathlib import Path
from numpy import frombuffer as npfb, uint8

def batch(datPath: str = '', ext: str = '*.pkm', subfolder: bool = False):
    path = Path(datPath) if datPath else Path.cwd()
    need = [i for i in (path.rglob(ext) if subfolder else path.glob(ext)) if i.is_file()]
    for i in need:
        with open(i, 'rb') as f:
            darr = npfb(bytearray(f.read()), dtype=uint8)
        if len(darr) <= 2: continue
        key = darr[0]
        darr = darr[1:]
        mask = (darr != 0) & (darr != key)
        darr[mask] ^= key
        with open(i, 'wb') as w:
            w.write(darr.tobytes())

if __name__ == '__main__':
    path = r'' # 游戏文件所在的路径
    ext = '*.pkm' # 要解密的文件后缀
    subfolder = False # 是否查找字文件夹内的文件
    batch(path, ext, subfolder)

解密函数是cocos2d::Image::initWithImageFile
解密原理是 获取文件的第一个字节做为key, 然后找出所有字节中不是0且不等于key的字节进行xor
解密完成

然后可以正常转png了哈?大佬。

当然…

大佬太棒了,强大
对了,因为之前小白,没接触过这些内容
所以我电脑上有个visual studio系列的软件,没下载过ida跟python
所以每次看大佬们教程都get不到击球点
用您发的代码,我需要先安装什么前置软件啊

python

然后 pip install numpy

完美解决,感谢大佬的指点