Jump to content

Identity V Assets (.npk) zlib compression


Go to solution Solved by TeaEffTeu,

Recommended Posts

Posted
13 hours ago, wq223 said:

Have you found a way? Are they encrypted or compressed?

nxs   opcode .pyc  please download!

  • 1 month later...
Posted
On 5/16/2025 at 12:58 PM, wq223 said:

These opcodes are standard opcodes. I unpacked the script.npk of the official server and the co-research server, but I still couldn't find the opcode.pyc file

新版没opcode文件了 凉了

  • 1 month later...
Posted

Did anyone successfully get files? I'm trying to get the models and such so I can rig it and do youtube thumbnails. If anyone successfully got the models can they either send or guide me on how to do it? Any help would be much appreciated

  • Supporter
Posted
11 minutes ago, Vangsguard said:

Did anyone successfully get files? I'm trying to get the models and such so I can rig it and do youtube thumbnails. If anyone successfully got the models can they either send or guide me on how to do it? Any help would be much appreciated

It seems that there is a model viewer for the neox engine. I am not sure whether it is suitable for your own game.

  • 2 weeks later...
Posted
On 6/20/2025 at 10:58 PM, Vangsguard said:

Did anyone successfully get files? I'm trying to get the models and such so I can rig it and do youtube thumbnails. If anyone successfully got the models can they either send or guide me on how to do it? Any help would be much appreciated

hi, i was able to extract older versions of idV and also load entire scenes and recover filenames. image.thumb.png.fe7e9977ce488876861ad7aa8ef497ec.pngimage.thumb.png.868b347fd31956e3e9371c3690258746.png

  • Thanks 2
Posted (edited)
On 6/29/2025 at 7:38 AM, AexaDev said:

hi, i was able to extract older versions of idV and also load entire scenes and recover filenames. image.thumb.png.fe7e9977ce488876861ad7aa8ef497ec.pngimage.thumb.png.868b347fd31956e3e9371c3690258746.png

You can join Neox Labs, and I can also extract all models.

Edited by JohnSmith
Posted (edited)
3 hours ago, JohnSmith said:

You can join Neox Labs, and I can also extract all models.

I’m already in it as Ricardo3734, and I’m also a contributor 

Edited by AexaDev
Posted
On 7/1/2025 at 4:30 PM, AexaDev said:

I’m already in it as Ricardo3734, and I’m also a contributor 

Hello, would you mind sharing how you managed to retrieve the filenames? I've been trying for a long time with no luck.

  • Supporter
Posted
14 hours ago, JohnSmith said:

Hello, would you mind sharing how you managed to retrieve the filenames? I've been trying for a long time with no luck.

I remember that most games of the same type will store the filename part in several files associated with the original npk, or store them in a list list, and of course some games will store the filename list at the end of the npk file.

I have tried to download from the server whether there are list or related npk files, but unfortunately, I didn't download it.

Only script.npk has some associated files, but they do not restore file names, I looked at the local files and found no files associated with npk

Several url constructions related to file downloads, taking the domestic version as an example

Get the latest version number via this link

Official server: https://h55.update.netease.com/pl/iosuni_patch_release_force_update_neox2.plist?r=1519

Co-research and service: https://h55.update.netease.com/pl/iosuni_patch_neox2_gongyan_release.plist?r=6961

Build download links through version number and file list

Official server: https://h55.gph.netease.com/iosuni_netease_2.90.125221.2268510/script.npk

Co-research and service: https://h55.gph.netease.com/iosuni_netease_2.1.1650975.2254182/script.npk

Also I found a few extra files, which may have some effect on restoring file names.

https://h55.gph.netease.com/iosuni_netease_2.90.125221.2268510/res.mini.skip.txt

https://h55.gph.netease.com/iosuni_netease_2.90.125221.2268510/res.npk.map

https://h55.gph.netease.com/iosuni_netease_2.90.125221.2268510/res.mini.npk.map

https://h55.gph.netease.com/iosuni_netease_2.90.125221.2268510/res.skip.txt

https://h55.gph.netease.com/iosuni_netease_2.90.125221.2268510/res.mini.npk.bin

https://h55.gph.netease.com/iosuni_netease_2.90.125221.2268510/res.mini.npk.txt

https://h55.gph.netease.com/iosuni_netease_2.90.125221.2268510/res.skip.map

https://h55.gph.netease.com/iosuni_netease_2.90.125221.2268510/res.mini.skip.map

https://h55.gph.netease.com/iosuni_netease_2.90.125221.2268510/res.npk.bin

https://h55.gph.netease.com/iosuni_netease_2.90.125221.2268510/res.npk.txt

Posted
10 hours ago, wq223 said:

I remember that most games of the same type will store the filename part in several files associated with the original npk, or store them in a list list, and of course some games will store the filename list at the end of the npk file.

I have tried to download from the server whether there are list or related npk files, but unfortunately, I didn't download it.

Only script.npk has some associated files, but they do not restore file names, I looked at the local files and found no files associated with npk

Several url constructions related to file downloads, taking the domestic version as an example

Get the latest version number via this link

Official server: https://h55.update.netease.com/pl/iosuni_patch_release_force_update_neox2.plist?r=1519

Co-research and service: https://h55.update.netease.com/pl/iosuni_patch_neox2_gongyan_release.plist?r=6961

Build download links through version number and file list

Official server: https://h55.gph.netease.com/iosuni_netease_2.90.125221.2268510/script.npk

Co-research and service: https://h55.gph.netease.com/iosuni_netease_2.1.1650975.2254182/script.npk

Also I found a few extra files, which may have some effect on restoring file names.

https://h55.gph.netease.com/iosuni_netease_2.90.125221.2268510/res.mini.skip.txt

https://h55.gph.netease.com/iosuni_netease_2.90.125221.2268510/res.npk.map

https://h55.gph.netease.com/iosuni_netease_2.90.125221.2268510/res.mini.npk.map

https://h55.gph.netease.com/iosuni_netease_2.90.125221.2268510/res.skip.txt

https://h55.gph.netease.com/iosuni_netease_2.90.125221.2268510/res.mini.npk.bin

https://h55.gph.netease.com/iosuni_netease_2.90.125221.2268510/res.mini.npk.txt

https://h55.gph.netease.com/iosuni_netease_2.90.125221.2268510/res.skip.map

https://h55.gph.netease.com/iosuni_netease_2.90.125221.2268510/res.mini.skip.map

https://h55.gph.netease.com/iosuni_netease_2.90.125221.2268510/res.npk.bin

https://h55.gph.netease.com/iosuni_netease_2.90.125221.2268510/res.npk.txt

Not really, most games just work by cross reference there is no TOC(table of content), I used my custom engine reimplementation to load a known file path that gets hashed using their custom hashing algorithm and via the loading process I just dump the files.

  • Supporter
Posted
2 hours ago, AexaDev said:

Not really, most games just work by cross reference there is no TOC(table of content), I used my custom engine reimplementation to load a known file path that gets hashed using their custom hashing algorithm and via the loading process I just dump the files.

It sounds a bit complicated. Does this process have to be completed through reverse engineering? For example, some games can only dump the file name through dynamic debugging during runtime.

Just now, wq223 said:

It sounds a bit complicated. Does this process have to be completed through reverse engineering? For example, some games can only dump the file name through dynamic debugging during runtime.

I remember that this game seemed to have a content list in the early stages, but I remembered it wrongly

Posted (edited)
1 hour ago, wq223 said:

It sounds a bit complicated. Does this process have to be completed through reverse engineering? For example, some games can only dump the file name through dynamic debugging during runtime.

I remember that this game seemed to have a content list in the early stages, but I remembered it wrongly

Yes you need to do it thru reversing as the binary only loads on-demand. The above picture with the loaded scene is the aforementioned custom engine reimplementation.

Especially in IDV the entities are all referenced in the actual script bytecode those files have been compressed, xored and marshalled. 
For example the model loader follows a tree structure it starts with a path whose computed hash leads to a buffer with other file references and so on, and that’s what my engine tries to mimic.

Edited by AexaDev
  • Supporter
Posted (edited)
8 hours ago, AexaDev said:

Yes you need to do it thru reversing as the binary only loads on-demand. The above picture with the loaded scene is the aforementioned custom engine reimplementation.

Especially in IDV the entities are all referenced in the actual script bytecode those files have been compressed, xored and marshalled. 
For example the model loader follows a tree structure it starts with a path whose computed hash leads to a buffer with other file references and so on, and that’s what my engine tries to mimic.

So does this reverse engineering require reverse library files or reverse their python files?
I know that python scripts may contain some file lists, but the opcodes for each game are different, which also requires some reverse engineering for a specific game to find the opcode.
Personally, I think the file name on the Messiah is easier to recover, and most of them only need a resource library file.

Edited by wq223
Posted
2025年6月29日,在AM7点38分,AexaDev说:

嗨,我能够提取旧版本的idV,并加载整个场景并恢复文件名。image.thumb.png.fe7e9977ce488876861ad7aa8ef497ec.pngimage.thumb.png.868b347fd31956e3e9371c3690258746.png

How's the progress of this project?

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...