Jump to content

Disabling that SHA check


nnvt

Recommended Posts

Hello!

 

 

I managed to apply most of the tutorials from this site to mod xcom on this game called "Outlast" and everything works really well (changing enemy behaviour, trashing doors, ...).

 

I found something in the game file that leads to an insane amount of awesome cheats which are disabled at start, the line:

 

if((bCheatsEnabled && InputMgr.bUsingGamepad) && InputMgr.IsKeyPressed('XboxTypeS_LeftThumbStick')

 

tells me that the boolean bCheatsEnabled needs to be set to true and that an xbox controller has to be used (which I don't have) and this will require removing/adding code to the file however the game WILL NOT load when the file size changes(insta crash).

 

I've read on the guides that you could find xcomgame.upk in the win32/64 excecutable and replace it with something else to stop it from checking it. This would require me to search for "OLGame.upk" in "OLGame.exe", i have tried different combinations and converted it to hex as well but I cannot find this in that file :/

 

Does anyone have some tips to get this to work? I know this isn't the right forum but this is the only place that I could find some information about modding (No upk mods exist for Outlast, I'm probably the first one trying it).

 

The game in question uses unreal engine 3.5

 

Thanks

 

 

Link to comment
Share on other sites

Do you have "<UPK filename>.uncompressed_size" files? If so, then this technique might work. In that case you need to search for the respective "<UPK filename>" entries in your Hex editor. In the case of XCOM only three specific files had companion ".uncompressed_size" files and were checked for SHA, so it's possible your "OLGame.upk" file is not in your game's embedded table in the EXE. Find one of those files and you should be in the vicinity of the table. But be careful. They can sometimes exist in more than one place. We found it only necessary to change one character of the filename in the table to disable the SHA check for that file. That alone should not change the size of the EXE, though it will change the CRC of the file. Which is why the XSHAPE tool was developed to adjust the CRC check.

If you can't find those entries in the ASCII display of your hex editor, then the game developers might have "hashed" them to hide them against just such an attempt. I imagine that would require reverse-engineering the code to discover where that was done. For more of the "nitty-gritty" of code-diving in that situation you might want to contact Amineri or wghost81 directly. (These days they are caught up in XCOM2 and don't hang around here that often.)

 

It is also possible they took a page from the Mac/OSX version of XCOM and put the SHA check information into a separate Hashes.sha file in Binaries\Win32 or similar.

Keeping the size of the game executable and UPK files the same was a limitation we had to initially work within. This meant you had to be very careful to determine the byte size and Unreal type casting of your operators and pad out sometimes, as well as reusing less necessary code. Which is why we developed the articles on "Hex values" and "Unreal type casting" in the "H" category of our wiki.

Later on tool sets such as Amineri's "UPK-Modder" and wghost81's "UPKUtils" mod provided tools like the "HexToPseudoCode" tool which made it possible to change the size of the UPK files by calculating and changing "jump offsets". These and other tool mods are briefly described and linked in the "Modding Tools" wiki article.

 

Good luck with your efforts. I remember those early days of teasing out how to mod a game that didn't provide any tools to help with the process as exciting, frustrating, and tedious. It literally took the community here years to get to the state where we could make something like "Long War".

-Dubious-

Edited by dubiousintent
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...