提问人:Mehmet Mert 提问时间:11/16/2023 最后编辑:egleaseMehmet Mert 更新时间:11/16/2023 访问量:42
我想打开具有 plist 和 ExportJson 文件的游戏的 png 文件中的纹理,但我无法做到
I want to open the textures in the png file of a game that has plist and ExportJson files, but I couldn't do it
问:
我想在移动设备上检查我喜欢的游戏的纹理。据我了解,游戏纹理是用 cocos2d 制作的。 我以前反转过其他 2D 游戏的纹理,但我做不到,请帮忙。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>frames</key>
<dict>
<key>npc_alisa_arrange_black_01.png</key>
<dict>
<key>frame</key>
<string>{{82,60},{22,32}}</string>
<key>offset</key>
<string>{-1,16}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{28,8},{22,32}}</string>
<key>sourceSize</key>
<string>{80,80}</string>
</dict>
<key>npc_alisa_arrange_black_02.png</key>
<dict>
<key>frame</key>
<string>{{74,188},{22,30}}</string>
<key>offset</key>
<string>{-1,15}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{28,10},{22,30}}</string>
<key>sourceSize</key>
<string>{80,80}</string>
</dict>
<key>npc_alisa_cooking_black_01.png</key>
<dict>
<key>frame</key>
<string>{{34,84},{22,36}}</string>
<key>offset</key>
<string>{-1,17}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{28,5},{22,36}}</string>
<key>sourceSize</key>
<string>{80,80}</string>
</dict>
<key>npc_alisa_cooking_black_02.png</key>
<dict>
<key>frame</key>
<string>{{66,2},{22,38}}</string>
<key>offset</key>
<string>{-1,18}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{28,3},{22,38}}</string>
<key>sourceSize</key>
<string>{80,80}</string>
</dict>
<key>npc_alisa_cooking_black_03.png</key>
<dict>
<key>frame</key>
<string>{{2,126},{22,36}}</string>
<key>offset</key>
<string>{-1,17}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{28,5},{22,36}}</string>
<key>sourceSize</key>
<string>{80,80}</string>
</dict>
我尝试使用经典的纹理解包器,但没有成功。通常它们很容易打开,但我不断收到错误。
答:
0赞
Mark Setchell
11/16/2023
#1
如果对 PNG 文件进行十六进制转储,则如下所示:
xxd npc_alisa.png | more
00000000: 0050 4e47 0d0a 1a0a 5000 000d 4948 4452 .PNG....P...IHDR
00000010: 0000 0100 0000 00f4 0803 0000 0043 d808 .............C..
00000020: ef00 0000 0467 414d 4100 00b1 8f0b fc61 .....gAMA......a
PNG 文件的“文件魔术”(又名签名)是:
89 50 4e 47 0d 0a 1a 0a
所以第一个字节被损坏了。你可以用十六进制编辑器编辑它,或者如果你像我一样是恐龙,用它来转储它为纯 ASCII,然后用于将第一个字节从 更改为 ,然后从纯 ASCII 重新组装二进制 PNG:xxd
sed
00
89
它看起来像这样:
xxd -p npc_alisa.png | sed '1s/00/89/' | xxd -r -p > patched.png
如果您尝试使用该文件,则会出现错误,因为块的字段设置为这是一个巨大的数字,这将使 PNG 读者尝试读取 1342177293 字节并从文件末尾掉落。an 的正确长度是 13 个字节,所以应该是 .所以,我摆脱了可信赖的旧,并改变了它:length
IHDR
50 00 00 0d
IHDR
IHDR
00 00 00 0d
xxd
sed
xxd -p npc_alisa.png | sed -e '1s/00/89/' -e '1s/1a0a50/1a0a00/' | xxd -r -p > patched.png
请注意,如果您没有/喜欢 和 ,则可以使用十六进制编辑器。这不是认可,我没有隶属关系,但这里有一个相当不错的在线,这意味着您不必在机器上安装任何东西,它也适用于倒霉的 Windows 用户。xxd
sed
评论