Closed UroshUchiha closed 2 years ago
Without a copy of the exe you are trying to unpack, I cannot investigate if this is an actual issue or not.
Jericho.zip Closed the issue by misclick. Here's the Jericho.exe in the attachment.
This issue should now be fixed in the latest release. https://github.com/atom0s/Steamless/releases/latest
The exe gets unpacked now, but ultimately it still doesn't work. The game doesn't load. No error message at all whatsoever. I found an executable for this game that another member manually removed SteamStub and it works so I compared the two and the only real difference I can personally see (don't know a lot about these things as you so take it with a grain of salt) is the offset 00000140 and then the first three values. Steamless puts them to 00 10 00, but if I put them to 47 D8 27 and save the modifications the game boots up properly.
Provided in the attachment are the clean exe (unmodified), Steamless unpacked one and the one that has SteamStub removed and works. In case you want to compare.
For now this issue will land up remaining a problem until I have the free time to rewrite parts of the v2.0 (x86) variant unpacker plugin. Since I only had 1 sample before this issue using that variant, the plugin I wrote for it is fairly specific to that one file. Your sample has shown that there are multiple versions of the variant and they [widely] change the stub header between versions.
The issue at hand right now is that the stub header is different between this file and the other sample I have. They changed things and shifted stuff around which makes the stub header incorrect for your file that Steamless contains atm. Going forward, the plugin will need to detect the size of the header and base its unpacking process on that vs. just seeing that its v2.0 and using a single header.
The difference you are seeing in those files is that the OEP
is incorrect. This, again, is due to the stub headers being different. In your file, the OEP
would be properly fixed by using the current ValidationHash
value which is where its aligned to in the header. This isn't too big of an issue to fix by having Steamless detect the header sizes but at the moment I don't have time to work on Steamless more. I'll reopen this issue until I do get it fixed though.
Closing this again as completed. Your file should now fully and properly unpack. I have also fixed the checksum calculation which should resolve issues with that too. (The 'proper' file you posted has an incorrect checksum as well. (off by 2))
Steamless detects that the executable contains SteamStub Variant 2.0, but it fails to remove it.