Jump to content

Once Human (Beta) Noesis script


Recommended Posts

  • Supporter
Posted
On 8/18/2024 at 12:01 AM, Dabbius said:

Anyone been able to decompile the .pyc files? Im just trying to find the game data to make some online tools. Thinks like armor stats and rolls etc. Along with ui images for items. They have this thing locked down. I was able to unpack the .npk files and the script.npk is the juice with all the game stuff but i cant get the .pyc decompiled 

 

This game has recently been launched for the official version. The python version used seems to be very special and feels like a customized version because I haven't found this version in the public version
The version number corresponding to the magic number of pyc files exceeds the final version number of the official CPython 3.11 branch (3495)
Refer to the version definition in the CPython source code (importlib/_bootstrap_external.py), which has exceeded the standard release scope: https://github.com/python/cpython/blob/8303d32ff55945c5b38eeeaf1b1811dbcf8aa9be/Lib/importlib/_bootstrap_external.py#L421
I tried changing 3496 to 3495 and disassembly, and I could only process part of the content but it was much better than not being able to handle it before it was modified
For decompilation, they may need to reverse the game file to get the opcode, they use a custom opcode and need to map it to a standard opcode (if necessary, you should also find the actual version they are using)
By the way, pycdc support is not perfect, and many files are very confusing to decompile, so sometimes disassembly is also a good solution, at least for the text content is clearer.

  • Supporter
Posted (edited)
9 hours ago, DKDave said:

At least he left my name on it - some don't 🙂

 

I cannot use the noesis script you wrote to load the official version of the .mesh file. Is it outdated?

mesh.zip

Edited by wq223
Posted
6 hours ago, wq223 said:

I cannot use the noesis script you wrote to load the official version of the .mesh file. Is it outdated?

mesh.zip 1.01 MB · 3 downloads

Files look compressed so they won't work directly.  Not sure of compression method, although I think someone else posted a script recently to decompress other compression types.  Or upload a sample .npk archive so I can alter my script as well.

 

  • Supporter
Posted (edited)
2 hours ago, DKDave said:

Files look compressed so they won't work directly.  Not sure of compression method, although I think someone else posted a script recently to decompress other compression types.  Or upload a sample .npk archive so I can alter my script as well.

 

The uploaded res_novice_pack_8.npk file can be processed using the bms script you wrote.
The script.npk file from the installation package cannot be processed. I found that it uses compression type 10, using the zstd header but cannot be decompressed (in all files, only this patch uses this compression type)
I have uploaded the file to cloud disk
This patch should allow for a closer test

https://drive.google.com/drive/folders/1R8ZnpQ8xZIzYyw8Qb6IytYWcoS8cLxUX?usp=sharing

 

Edited by wq223
Posted
1 hour ago, wq223 said:

The uploaded res_novice_pack_8.npk file can be processed using the bms script you wrote.
The script.npk file from the installation package cannot be processed. I found that it uses compression type 10, using the zstd header but cannot be decompressed (in all files, only this patch uses this compression type)
I have uploaded the file to cloud disk
This patch should allow for a closer test

https://drive.google.com/drive/folders/1R8ZnpQ8xZIzYyw8Qb6IytYWcoS8cLxUX?usp=sharing

 

While type 3 is normal ZSTD which decompresses fine, types 4 and 10 seem to have the ZSTD 4-byte identifier, but then some modifications to the data so that it doesn't decompress normally.  The meshes that can be decompressed do have some slight differences to the ones in the beta, so I'll need to look at them sometime.

 

  • Thanks 1
Posted
20 hours ago, 12121212j said:

Thank you for your efforts. Unfortunately, the latest version we downloaded still cannot read the mesh file.

 

I'll provide an NPK file for your reference.

res_normal_pack_28.7z 106.35 MB · 4 downloads

I tried using GPT to remove references to .mtg, .mtl, and .pvr files, and after that, about 30% of the model could be read. I'm not sure where the issue lies, but this suggests the script still works — perhaps the model now uses a new data layout?

  • 4 months later...
  • 4 weeks later...
  • 2 months later...
Posted
On 5/6/2025 at 12:13 AM, DKDave said:

While type 3 is normal ZSTD which decompresses fine, types 4 and 10 seem to have the ZSTD 4-byte identifier, but then some modifications to the data so that it doesn't decompress normally.  The meshes that can be decompressed do have some slight differences to the ones in the beta, so I'll need to look at them sometime.

 

Now that the game has officially launched, does this method no longer allow access to the game's model assets?

  • 4 weeks later...
Posted

quick question ... how manage the loading of the albedo map, the normal map , the control map , the feature map .. and time to time the patern for the rare skin ???

  • 2 months later...
Posted

@DKDave hello , can you look on the BMS script ? with the new update many files cannot be unpack , as the script.npk  , all shaders , and new names of files

regards

  • Supporter
Posted
2 hours ago, Champs said:

@DKDave hello , can you look on the BMS script ? with the new update many files cannot be unpack , as the script.npk  , all shaders , and new names of files

regards

Send a sample file and let someone who knows it take a look at it for you.

  • Like 1
  • Supporter
Posted (edited)
6 hours ago, DKDave said:

It's the same issue mentioned above - the files are compression type 4, which is some form of ZSTD, maybe encrypted, but I don't know in what way.

 

They are used to using single-byte keys for XOR, and it is possible to flip bytes, but I brute force tested all the results, unfortunately it has no effect
Judging from the compressed files, it seems that some compressed files have plain text strings. If this is the case, it is difficult to establish XOR. Maybe a custom dictionary is used, because the error encountered when trying to decompress is Dictionary mismatch.
Probably should have looked for clues from the executable file, but unfortunately it was obfuscated

Edited by wq223
  • 2 months later...
Posted (edited)

i think i have correctly update the script .. it work

not perfect but it work .. with my limited skill

need now how to decrypt .pyc files 

now need to convert files with the magic number 28 B5 2F FD

 

Edited by Champs

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...