-
-
Notifications
You must be signed in to change notification settings - Fork 562
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP support for GamePass/Xbox/WindowsStore edition of Among Us #422
base: master
Are you sure you want to change the base?
Conversation
Great work. Can't wait to use it |
What tools are used to figure out the memory offsets? I've been using Artmoney and the source code of https://github.com/denverquane/amonguscapture but I'm not sure if there are any tricks being used to figure out the memory offsets when a new release of Among Us is released. |
@cspotcode CrewLink uses the pointers I acquire after we update. |
The game is written in unity you can use tools like: https://github.com/Perfare/Il2CppDumper or https://github.com/djkaty/Il2CppInspector/ to get the offsets pretty easy. But to the point of the PR I myself think we just need to implement pattern scanning for the base addresses, if you do that it will support any version of the game (steam, windows store, beta, cracked etc). But this is a nice small temp fix I guess. // nvm just saw that the game on store is x64 which changes things _ (nvm didn't see the changes in the windows store ver) |
Unfortunately I've hit the following issues with the Windows Store binary: DRM prevents reading the binary files at all. I believe @varedz was saying this makes it impossible to use Il2CppDumper or Il2CppInspector. Also, the classes / structures appear to have a different memory layout than in the Steam release of the game. So I'm not sure we can merely update the base addresses; we'll also need to update the offsets and struct layouts. I suspect this is because Unity->UWP is accomplished by exporting an .sln to Visual Studio, then building from there. So the compiler toolchain and emitted code are different. Let me know if I'm wrong about any of the above. |
Here's some extra info for you: You can open UWP apps from the command line. For example, Epic Games has its own web protocol, itch.io has its own web protocol, |
Has anyone considered allowing the user to input their version manually? Or is there some other gotcha there that would make that infeasible? |
Opening the application is not our problem @jbmagination |
The new correct offsets, be aware you need to change the readstring as well to 0x10 -> length 0x14 -> char* Here is the dump from il2cppdumper: |
Thanks, I was having a rough time making heads or tails of that dump. I'll update the PR. |
I've pushed the code I have so far. It's still not working. Could be a silly typo on my part, could be a uint32 -> uint64 change I missed, could be something with the offsets. I'm not sure. It appears to be reading garbage from memory. This is probably the limit of how much time I'm able to invest here. Github should allow anyone to take this branch, fix it, improve it, do whatever and make it work. |
cross-reference: https://github.com/Rob--/memoryjs/issues/74 |
@varedz There's a big "Open Game" button when you launch CrewLink if you don't have Among Us open. Seems to me like that info could be useful |
@jbmagination i have it on gamepass, so i installed it to get the launch string for you. explorer.exe shell:appsFolder\Innersloth.AmongUs_fw5x688tam7rm!Game |
Made a working version & PR for this issue: #444 |
Could you go through the process from downloading il2cppdumper to having the offset results. I've been trying to do my research but it seems as is there is so many methods and it this point I just need something straight up. |
--- Dumping --- Getting the offsets Now if you compare those results you will end up with "EGLJNOMOGNP" (steam ver: 2020.12.9) now u can also see that for example the Playerlist is at 0x24 etc. Ok so now what? we have the Gamedata classname and how do we get the actual class now? Here is the old among us dump forgot which game version it was tbh. https://gist.github.com/OhMyGuus/292fca58de9bf859054ef49f238f01e6 |
I've started working on support for the Windows Store version of Among Us, to fix #411.
I'm able to use a powershell.exe invocation to get a version number:
2020.12.4.0
. This version number looks different than the Steam release. Partly I think this is because Windows appx manifests must have a version number with 4 parts, hence the trailing.0
. But also it appears that the 2x newest offsets files are not correct for this binary, so offsets will need to be recomputed.To make things easier for myself, I've increased the window size and hardcoded the offsets data rather than fetching it from
crewl.ink
. I'll need to remove those changes from the PR before it can be merged.EDIT: like I said in a comment below, I've run out of free time to invest in this. Anyone else can take this branch and fix it, improve it, whatever is needed to make it work.