From 9006c555ca45b4507626592a5eab4f0b1e2043ea Mon Sep 17 00:00:00 2001 From: Christoph Honal Date: Sat, 28 Nov 2020 10:52:16 +0100 Subject: [PATCH 1/3] Integrate deobfuscator into toolchain --- AUMInjector/AUMInjector.vcxproj | 12 +- AUMInjector/AUMInjector.vcxproj.filters | 83 +++++++----- AUMInjector/deobfuscate/.gitignore | 2 + AUMInjector/deobfuscate/2020_10_22s.h | 28 ++++ AUMInjector/deobfuscate/2020_11_17s.h | 28 ++++ AUMInjector/deobfuscate/2020_11_17s_1.h | 28 ++++ AUMInjector/deobfuscate/2020_11_4s.h | 28 ++++ AUMInjector/deobfuscate/2020_9_22s.h | 10 ++ AUMInjector/deobfuscate/deobfuscate.h | 22 ++++ AUMInjector/{user => deobfuscate}/version.h | 0 AUMInjector/user/.gitignore | 1 - AUMInjector/user/deobfuscate.h | 139 -------------------- decompile.bat | 8 +- dynamic_analysis.py | 2 +- setup.bat.example | 4 + 15 files changed, 215 insertions(+), 180 deletions(-) create mode 100644 AUMInjector/deobfuscate/.gitignore create mode 100644 AUMInjector/deobfuscate/2020_10_22s.h create mode 100644 AUMInjector/deobfuscate/2020_11_17s.h create mode 100644 AUMInjector/deobfuscate/2020_11_17s_1.h create mode 100644 AUMInjector/deobfuscate/2020_11_4s.h create mode 100644 AUMInjector/deobfuscate/2020_9_22s.h create mode 100644 AUMInjector/deobfuscate/deobfuscate.h rename AUMInjector/{user => deobfuscate}/version.h (100%) delete mode 100644 AUMInjector/user/.gitignore delete mode 100644 AUMInjector/user/deobfuscate.h diff --git a/AUMInjector/AUMInjector.vcxproj b/AUMInjector/AUMInjector.vcxproj index 0acc4e6..513d507 100644 --- a/AUMInjector/AUMInjector.vcxproj +++ b/AUMInjector/AUMInjector.vcxproj @@ -44,6 +44,12 @@ + + + + + + @@ -68,11 +74,9 @@ - - @@ -130,7 +134,7 @@ true NotUsing pch.h - $(ProjectDir)appdata;$(ProjectDir)framework;$(ProjectDir)user;$(ProjectDir)gui;$(ProjectDir)gui\imgui + $(ProjectDir)appdata;$(ProjectDir)framework;$(ProjectDir)user;$(ProjectDir)gui;$(ProjectDir)gui\imgui;;$(ProjectDir)deobfuscate false 4359 @@ -161,7 +165,7 @@ true NotUsing pch.h - $(ProjectDir)appdata;$(ProjectDir)framework;$(ProjectDir)user;$(ProjectDir)gui;$(ProjectDir)gui\imgui + $(ProjectDir)appdata;$(ProjectDir)framework;$(ProjectDir)user;$(ProjectDir)gui;$(ProjectDir)gui\imgui;;$(ProjectDir)deobfuscate false 4359 true diff --git a/AUMInjector/AUMInjector.vcxproj.filters b/AUMInjector/AUMInjector.vcxproj.filters index 2a3221e..3861c3e 100644 --- a/AUMInjector/AUMInjector.vcxproj.filters +++ b/AUMInjector/AUMInjector.vcxproj.filters @@ -1,18 +1,6 @@  - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - {b5a3830b-3a31-40ff-a58e-389055c64f63} @@ -25,19 +13,34 @@ {e54bbdb0-93fa-41ef-a5db-8518033be4c6} + + {59530ac7-9942-4f37-a815-80f2ba7b9668} + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + - Quelldateien + Source - Quelldateien + Source - Quelldateien + Source - Quelldateien + Source GUI @@ -52,7 +55,7 @@ GUI - Quelldateien + Source GUI\imgui @@ -85,7 +88,7 @@ GUI\Blocks - Quelldateien + Source IL2CPP @@ -103,39 +106,36 @@ - Quelldateien + Source - Headerdateien + Include - Headerdateien + Include - Headerdateien + Include - Headerdateien - - - Headerdateien + Include - Headerdateien + Include - Headerdateien + Include - Headerdateien + Include - Headerdateien + Include - Headerdateien + Include GUI\imgui @@ -206,13 +206,28 @@ GUI\Blocks - - Headerdateien + + Deobfuscate + + + Deobfuscate + + + Deobfuscate + + + Deobfuscate + + + Deobfuscate + + + Deobfuscate - Ressourcendateien + Resources \ No newline at end of file diff --git a/AUMInjector/deobfuscate/.gitignore b/AUMInjector/deobfuscate/.gitignore new file mode 100644 index 0000000..6568f00 --- /dev/null +++ b/AUMInjector/deobfuscate/.gitignore @@ -0,0 +1,2 @@ +dynamic_analysis.h +generated* \ No newline at end of file diff --git a/AUMInjector/deobfuscate/2020_10_22s.h b/AUMInjector/deobfuscate/2020_10_22s.h new file mode 100644 index 0000000..2fd1e04 --- /dev/null +++ b/AUMInjector/deobfuscate/2020_10_22s.h @@ -0,0 +1,28 @@ +using InnerNetClient_GameState__Enum = DNAFMCDBMCI_JPCEFDHGHAK__Enum; +using PlayerControl = GLHCHLEDNBA; +using Player_Die_Reason__Enum = CCCHKEBONBN__Enum; +using MeetingHud = GPOHFPAIEMA; +using InnerNetClient = DNAFMCDBMCI; +using InnerNet_DisconnectReasons__Enum = NCBONGGBCNE__Enum; +using HqHudOverrideTask = MMPIJGKLMDC; +using HudOverrideTask = GFBKIHICFNI; +using ChatController = MLINJDBIIEC; +using AmongUsClient = JNFEHNLGIFF; +InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Joined = DNAFMCDBMCI_JPCEFDHGHAK__Enum_Joined; +InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Ended = DNAFMCDBMCI_JPCEFDHGHAK__Enum_Ended; +InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Started = DNAFMCDBMCI_JPCEFDHGHAK__Enum_Started; +#define PlayerControl_FixedUpdate_Trampoline GLHCHLEDNBA_FixedUpdate +#define PlayerControl_GetTruePosition_Trampoline GLHCHLEDNBA_GetTruePosition +#define PlayerControl_Die_Trampoline GLHCHLEDNBA_Die +#define MeetingHud_Close_Trampoline GPOHFPAIEMA_Close +#define MeetingHud_Start_Trampoline GPOHFPAIEMA_Start +#define InnerNetClient_FixedUpdate_Trampoline DNAFMCDBMCI_FixedUpdate +#define InnerNetClient_Disconnect_Trampoline DNAFMCDBMCI_GPKBCOKMFHK +#define HqHudOverrideTask_Initialize_Trampoline MMPIJGKLMDC_Initialize +#define HqHudOverrideTask_Complete_Trampoline MMPIJGKLMDC_Complete +#define HudOverrideTask_Initialize_Trampoline GFBKIHICFNI_Initialize +#define HudOverrideTask_Complete_Trampoline GFBKIHICFNI_Complete +#define ChatController_AddChat_Trampoline MLINJDBIIEC_AddChat +#define InnerNetClient_StartRpc_Trampoline DNAFMCDBMCI_StartRpc +#define MessageWriter_Write_String_Trampoline MessageWriter_Write_6 +#define AmongUsClient_OnPlayerJoined_Trampoline JNFEHNLGIFF_IKDNNJNBKBO \ No newline at end of file diff --git a/AUMInjector/deobfuscate/2020_11_17s.h b/AUMInjector/deobfuscate/2020_11_17s.h new file mode 100644 index 0000000..5bc1c23 --- /dev/null +++ b/AUMInjector/deobfuscate/2020_11_17s.h @@ -0,0 +1,28 @@ +using Player_Die_Reason__Enum = EGEEFBOLHLP__Enum; +using PlayerControl = PPHGCHMFMLI; +using InnerNetClient = FIMOOCIGOAO; +using InnerNetClient_GameState__Enum = FIMOOCIGOAO_KBCHFKCGJKG__Enum; +using InnerNet_DisconnectReasons__Enum = GIDBHAMOKEA__Enum; +using MeetingHud = ILMBELNBDMA; +using HqHudOverrideTask = NPILPHBNAIC; +using HudOverrideTask = OGOEIBLEPKK; +using ChatController = KLDOCKJFNJL; +using AmongUsClient = NJGFKJNAEMN; +InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Joined = FIMOOCIGOAO_KBCHFKCGJKG__Enum_Joined; +InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Started = FIMOOCIGOAO_KBCHFKCGJKG__Enum_Started; +InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Ended = FIMOOCIGOAO_KBCHFKCGJKG__Enum_Ended; +#define PlayerControl_GetTruePosition_Trampoline PPHGCHMFMLI_GetTruePosition +#define PlayerControl_Die_Trampoline PPHGCHMFMLI_Die +#define PlayerControl_FixedUpdate_Trampoline PPHGCHMFMLI_FixedUpdate +#define InnerNetClient_FixedUpdate_Trampoline FIMOOCIGOAO_FixedUpdate +#define InnerNetClient_Disconnect_Trampoline FIMOOCIGOAO_OEIIMGAFPOO +#define InnerNetClient_StartRpc_Trampoline FIMOOCIGOAO_StartRpc +#define MeetingHud_Close_Trampoline ILMBELNBDMA_Close +#define MeetingHud_Start_Trampoline ILMBELNBDMA_Start +#define HqHudOverrideTask_Initialize_Trampoline NPILPHBNAIC_Initialize +#define HqHudOverrideTask_Complete_Trampoline NPILPHBNAIC_Complete +#define HudOverrideTask_Initialize_Trampoline OGOEIBLEPKK_Initialize +#define HudOverrideTask_Complete_Trampoline OGOEIBLEPKK_Complete +#define ChatController_AddChat_Trampoline KLDOCKJFNJL_AddChat +#define AmongUsClient_OnPlayerJoined_Trampoline NJGFKJNAEMN_LOFILOLGOGD +#define MessageWriter_Write_String_Trampoline MessageWriter_Write_6 \ No newline at end of file diff --git a/AUMInjector/deobfuscate/2020_11_17s_1.h b/AUMInjector/deobfuscate/2020_11_17s_1.h new file mode 100644 index 0000000..27f8c67 --- /dev/null +++ b/AUMInjector/deobfuscate/2020_11_17s_1.h @@ -0,0 +1,28 @@ +using Player_Die_Reason__Enum = OOBDLHLDDAF__Enum; +using PlayerControl = JENJGDMOEOC; +using InnerNetClient = FMJPJKCNIKM; +using InnerNetClient_GameState__Enum = FMJPJKCNIKM_ONHEJJJIKDI__Enum; +using InnerNet_DisconnectReasons__Enum = CLFGKJHHBOK__Enum; +using MeetingHud = NEOCOBOAGFJ; +using HqHudOverrideTask = AFFPOFMFHEF; +using HudOverrideTask = KALDPINPHCD; +using ChatController = BPPJFAOEOMH; +using AmongUsClient = MMMGPAPEEBJ; +InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Joined = FMJPJKCNIKM_ONHEJJJIKDI__Enum_Joined; +InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Started = FMJPJKCNIKM_ONHEJJJIKDI__Enum_Started; +InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Ended = FMJPJKCNIKM_ONHEJJJIKDI__Enum_Ended; +#define PlayerControl_GetTruePosition_Trampoline JENJGDMOEOC_GetTruePosition +#define PlayerControl_Die_Trampoline JENJGDMOEOC_Die +#define PlayerControl_FixedUpdate_Trampoline JENJGDMOEOC_FixedUpdate +#define InnerNetClient_FixedUpdate_Trampoline FMJPJKCNIKM_FixedUpdate +#define InnerNetClient_Disconnect_Trampoline FMJPJKCNIKM_AAKFLNMJNBJ +#define InnerNetClient_StartRpc_Trampoline FMJPJKCNIKM_StartRpc +#define MeetingHud_Close_Trampoline NEOCOBOAGFJ_Close +#define MeetingHud_Start_Trampoline NEOCOBOAGFJ_Start +#define HqHudOverrideTask_Initialize_Trampoline AFFPOFMFHEF_Initialize +#define HqHudOverrideTask_Complete_Trampoline AFFPOFMFHEF_Complete +#define HudOverrideTask_Initialize_Trampoline KALDPINPHCD_Initialize +#define HudOverrideTask_Complete_Trampoline KALDPINPHCD_Complete +#define AmongUsClient_OnPlayerJoined_Trampoline MMMGPAPEEBJ_NDONNDIFBON +#define MessageWriter_Write_Byte_Trampoline MessageWriter_Write_1 +#define InnerNetClient_HandleGameDataInner_Trampoline FMJPJKCNIKM_AOAKDFPIOOA \ No newline at end of file diff --git a/AUMInjector/deobfuscate/2020_11_4s.h b/AUMInjector/deobfuscate/2020_11_4s.h new file mode 100644 index 0000000..d633bd5 --- /dev/null +++ b/AUMInjector/deobfuscate/2020_11_4s.h @@ -0,0 +1,28 @@ +using InnerNetClient_GameState__Enum = DBDDAJAICFN_DKEKFCCGGEO__Enum; +using PlayerControl = APNNOJFGDGP; +using Player_Die_Reason__Enum = LKBAAGPFMCB__Enum; +using MeetingHud = APFHIONIINA; +using InnerNetClient = DBDDAJAICFN; +using InnerNet_DisconnectReasons__Enum = OBELNHOKKLD__Enum; +using HqHudOverrideTask = OFCAMODPCOA; +using HudOverrideTask = MHKPCHGHHOK; +using ChatController = LOGKEMANPPL; +using AmongUsClient = HJNEPPHDLBA; +InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Joined = DBDDAJAICFN_DKEKFCCGGEO__Enum_Joined; +InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Ended = DBDDAJAICFN_DKEKFCCGGEO__Enum_Ended; +InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Started = DBDDAJAICFN_DKEKFCCGGEO__Enum_Started; +#define PlayerControl_FixedUpdate_Trampoline APNNOJFGDGP_FixedUpdate +#define PlayerControl_GetTruePosition_Trampoline APNNOJFGDGP_GetTruePosition +#define PlayerControl_Die_Trampoline APNNOJFGDGP_Die +#define MeetingHud_Close_Trampoline APFHIONIINA_Close +#define MeetingHud_Start_Trampoline APFHIONIINA_Start +#define InnerNetClient_FixedUpdate_Trampoline DBDDAJAICFN_FixedUpdate +#define InnerNetClient_Disconnect_Trampoline DBDDAJAICFN_LJKOGKNHGGA +#define HqHudOverrideTask_Initialize_Trampoline OFCAMODPCOA_Initialize +#define HqHudOverrideTask_Complete_Trampoline OFCAMODPCOA_Complete +#define HudOverrideTask_Initialize_Trampoline MHKPCHGHHOK_Initialize +#define HudOverrideTask_Complete_Trampoline MHKPCHGHHOK_Complete +#define ChatController_AddChat_Trampoline LOGKEMANPPL_AddChat +#define InnerNetClient_StartRpc_Trampoline DBDDAJAICFN_StartRpc +#define MessageWriter_Write_String_Trampoline MessageWriter_Write_6 +#define AmongUsClient_OnPlayerJoined_Trampoline HJNEPPHDLBA_LKMONKFOADB \ No newline at end of file diff --git a/AUMInjector/deobfuscate/2020_9_22s.h b/AUMInjector/deobfuscate/2020_9_22s.h new file mode 100644 index 0000000..95791d4 --- /dev/null +++ b/AUMInjector/deobfuscate/2020_9_22s.h @@ -0,0 +1,10 @@ +using InnerNetClient_GameState__Enum = InnerNetClient_IFLBIJFJPMK__Enum; +using Player_Die_Reason__Enum = NPLMBOLMMLB__Enum; +InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Joined = InnerNetClient_IFLBIJFJPMK__Enum_Joined; +InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Ended = InnerNetClient_IFLBIJFJPMK__Enum_Ended; +#define PlayerControl_FixedUpdate_Trampoline PlayerControl_FixedUpdate +#define PlayerControl_GetTruePosition_Trampoline PlayerControl_GetTruePosition +#define PlayerControl_Die_Trampoline PlayerControl_Die +#define MeetingHud_Close_Trampoline MeetingHud_Close +#define MeetingHud_Start_Trampoline MeetingHud_Start +#define InnerNetClient_FixedUpdate_Trampoline InnerNetClient_FixedUpdate \ No newline at end of file diff --git a/AUMInjector/deobfuscate/deobfuscate.h b/AUMInjector/deobfuscate/deobfuscate.h new file mode 100644 index 0000000..d5ee8e3 --- /dev/null +++ b/AUMInjector/deobfuscate/deobfuscate.h @@ -0,0 +1,22 @@ +// This file contains deobfuscation mappings for different versions of the game + +#pragma once +#include "il2cpp-appdata.h" +#include "version.h" + +using namespace app; + +// Deobfuscate game bindings, depending on version +#if GAME_VERSION == GAME_VERSION_2020_9_22s + #include "2020_9_22s.h" +#elif GAME_VERSION == GAME_VERSION_2020_10_22s + #include "2020_10_22s.h" +#elif GAME_VERSION == GAME_VERSION_2020_11_4s + #include "2020_11_4s.h" +#elif GAME_VERSION == GAME_VERSION_2020_11_17s + #include "2020_11_17s.h" +#elif GAME_VERSION == GAME_VERSION_2020_11_17s_1 + #include "2020_11_17s_1.h" +#else + #error Unknown game version! +#endif \ No newline at end of file diff --git a/AUMInjector/user/version.h b/AUMInjector/deobfuscate/version.h similarity index 100% rename from AUMInjector/user/version.h rename to AUMInjector/deobfuscate/version.h diff --git a/AUMInjector/user/.gitignore b/AUMInjector/user/.gitignore deleted file mode 100644 index e1f01d9..0000000 --- a/AUMInjector/user/.gitignore +++ /dev/null @@ -1 +0,0 @@ -dynamic_analysis.h \ No newline at end of file diff --git a/AUMInjector/user/deobfuscate.h b/AUMInjector/user/deobfuscate.h deleted file mode 100644 index dfaadd2..0000000 --- a/AUMInjector/user/deobfuscate.h +++ /dev/null @@ -1,139 +0,0 @@ -// This file contains deobfuscation mappings for different versions of the game - -#pragma once -#include "il2cpp-appdata.h" -#include "version.h" - -using namespace app; - -// Deobfuscate game bindings, depending on version -#if GAME_VERSION == GAME_VERSION_2020_9_22s - using InnerNetClient_GameState__Enum = InnerNetClient_IFLBIJFJPMK__Enum; - using Player_Die_Reason__Enum = NPLMBOLMMLB__Enum; - InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Joined = InnerNetClient_IFLBIJFJPMK__Enum_Joined; - InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Ended = InnerNetClient_IFLBIJFJPMK__Enum_Ended; - #define PlayerControl_FixedUpdate_Trampoline PlayerControl_FixedUpdate - #define PlayerControl_GetTruePosition_Trampoline PlayerControl_GetTruePosition - #define PlayerControl_Die_Trampoline PlayerControl_Die - #define MeetingHud_Close_Trampoline MeetingHud_Close - #define MeetingHud_Start_Trampoline MeetingHud_Start - #define InnerNetClient_FixedUpdate_Trampoline InnerNetClient_FixedUpdate -#elif GAME_VERSION == GAME_VERSION_2020_10_22s - using InnerNetClient_GameState__Enum = DNAFMCDBMCI_JPCEFDHGHAK__Enum; - using PlayerControl = GLHCHLEDNBA; - using Player_Die_Reason__Enum = CCCHKEBONBN__Enum; - using MeetingHud = GPOHFPAIEMA; - using InnerNetClient = DNAFMCDBMCI; - using InnerNet_DisconnectReasons__Enum = NCBONGGBCNE__Enum; - using HqHudOverrideTask = MMPIJGKLMDC; - using HudOverrideTask = GFBKIHICFNI; - using ChatController = MLINJDBIIEC; - using AmongUsClient = JNFEHNLGIFF; - InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Joined = DNAFMCDBMCI_JPCEFDHGHAK__Enum_Joined; - InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Ended = DNAFMCDBMCI_JPCEFDHGHAK__Enum_Ended; - InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Started = DNAFMCDBMCI_JPCEFDHGHAK__Enum_Started; - #define PlayerControl_FixedUpdate_Trampoline GLHCHLEDNBA_FixedUpdate - #define PlayerControl_GetTruePosition_Trampoline GLHCHLEDNBA_GetTruePosition - #define PlayerControl_Die_Trampoline GLHCHLEDNBA_Die - #define MeetingHud_Close_Trampoline GPOHFPAIEMA_Close - #define MeetingHud_Start_Trampoline GPOHFPAIEMA_Start - #define InnerNetClient_FixedUpdate_Trampoline DNAFMCDBMCI_FixedUpdate - #define InnerNetClient_Disconnect_Trampoline DNAFMCDBMCI_GPKBCOKMFHK - #define HqHudOverrideTask_Initialize_Trampoline MMPIJGKLMDC_Initialize - #define HqHudOverrideTask_Complete_Trampoline MMPIJGKLMDC_Complete - #define HudOverrideTask_Initialize_Trampoline GFBKIHICFNI_Initialize - #define HudOverrideTask_Complete_Trampoline GFBKIHICFNI_Complete - #define ChatController_AddChat_Trampoline MLINJDBIIEC_AddChat - #define InnerNetClient_StartRpc_Trampoline DNAFMCDBMCI_StartRpc - #define MessageWriter_Write_String_Trampoline MessageWriter_Write_6 - #define AmongUsClient_OnPlayerJoined_Trampoline JNFEHNLGIFF_IKDNNJNBKBO -#elif GAME_VERSION == GAME_VERSION_2020_11_4s - using InnerNetClient_GameState__Enum = DBDDAJAICFN_DKEKFCCGGEO__Enum; - using PlayerControl = APNNOJFGDGP; - using Player_Die_Reason__Enum = LKBAAGPFMCB__Enum; - using MeetingHud = APFHIONIINA; - using InnerNetClient = DBDDAJAICFN; - using InnerNet_DisconnectReasons__Enum = OBELNHOKKLD__Enum; - using HqHudOverrideTask = OFCAMODPCOA; - using HudOverrideTask = MHKPCHGHHOK; - using ChatController = LOGKEMANPPL; - using AmongUsClient = HJNEPPHDLBA; - InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Joined = DBDDAJAICFN_DKEKFCCGGEO__Enum_Joined; - InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Ended = DBDDAJAICFN_DKEKFCCGGEO__Enum_Ended; - InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Started = DBDDAJAICFN_DKEKFCCGGEO__Enum_Started; - #define PlayerControl_FixedUpdate_Trampoline APNNOJFGDGP_FixedUpdate - #define PlayerControl_GetTruePosition_Trampoline APNNOJFGDGP_GetTruePosition - #define PlayerControl_Die_Trampoline APNNOJFGDGP_Die - #define MeetingHud_Close_Trampoline APFHIONIINA_Close - #define MeetingHud_Start_Trampoline APFHIONIINA_Start - #define InnerNetClient_FixedUpdate_Trampoline DBDDAJAICFN_FixedUpdate - #define InnerNetClient_Disconnect_Trampoline DBDDAJAICFN_LJKOGKNHGGA - #define HqHudOverrideTask_Initialize_Trampoline OFCAMODPCOA_Initialize - #define HqHudOverrideTask_Complete_Trampoline OFCAMODPCOA_Complete - #define HudOverrideTask_Initialize_Trampoline MHKPCHGHHOK_Initialize - #define HudOverrideTask_Complete_Trampoline MHKPCHGHHOK_Complete - #define ChatController_AddChat_Trampoline LOGKEMANPPL_AddChat - #define InnerNetClient_StartRpc_Trampoline DBDDAJAICFN_StartRpc - #define MessageWriter_Write_String_Trampoline MessageWriter_Write_6 - #define AmongUsClient_OnPlayerJoined_Trampoline HJNEPPHDLBA_LKMONKFOADB -#elif GAME_VERSION == GAME_VERSION_2020_11_17s - using Player_Die_Reason__Enum = EGEEFBOLHLP__Enum; - using PlayerControl = PPHGCHMFMLI; - using InnerNetClient = FIMOOCIGOAO; - using InnerNetClient_GameState__Enum = FIMOOCIGOAO_KBCHFKCGJKG__Enum; - using InnerNet_DisconnectReasons__Enum = GIDBHAMOKEA__Enum; - using MeetingHud = ILMBELNBDMA; - using HqHudOverrideTask = NPILPHBNAIC; - using HudOverrideTask = OGOEIBLEPKK; - using ChatController = KLDOCKJFNJL; - using AmongUsClient = NJGFKJNAEMN; - InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Joined = FIMOOCIGOAO_KBCHFKCGJKG__Enum_Joined; - InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Started = FIMOOCIGOAO_KBCHFKCGJKG__Enum_Started; - InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Ended = FIMOOCIGOAO_KBCHFKCGJKG__Enum_Ended; - #define PlayerControl_GetTruePosition_Trampoline PPHGCHMFMLI_GetTruePosition - #define PlayerControl_Die_Trampoline PPHGCHMFMLI_Die - #define PlayerControl_FixedUpdate_Trampoline PPHGCHMFMLI_FixedUpdate - #define InnerNetClient_FixedUpdate_Trampoline FIMOOCIGOAO_FixedUpdate - #define InnerNetClient_Disconnect_Trampoline FIMOOCIGOAO_OEIIMGAFPOO - #define InnerNetClient_StartRpc_Trampoline FIMOOCIGOAO_StartRpc - #define MeetingHud_Close_Trampoline ILMBELNBDMA_Close - #define MeetingHud_Start_Trampoline ILMBELNBDMA_Start - #define HqHudOverrideTask_Initialize_Trampoline NPILPHBNAIC_Initialize - #define HqHudOverrideTask_Complete_Trampoline NPILPHBNAIC_Complete - #define HudOverrideTask_Initialize_Trampoline OGOEIBLEPKK_Initialize - #define HudOverrideTask_Complete_Trampoline OGOEIBLEPKK_Complete - #define ChatController_AddChat_Trampoline KLDOCKJFNJL_AddChat - #define AmongUsClient_OnPlayerJoined_Trampoline NJGFKJNAEMN_LOFILOLGOGD - #define MessageWriter_Write_String_Trampoline MessageWriter_Write_6 -#elif GAME_VERSION == GAME_VERSION_2020_11_17s_1 - using Player_Die_Reason__Enum = OOBDLHLDDAF__Enum; - using PlayerControl = JENJGDMOEOC; - using InnerNetClient = FMJPJKCNIKM; - using InnerNetClient_GameState__Enum = FMJPJKCNIKM_ONHEJJJIKDI__Enum; - using InnerNet_DisconnectReasons__Enum = CLFGKJHHBOK__Enum; - using MeetingHud = NEOCOBOAGFJ; - using HqHudOverrideTask = AFFPOFMFHEF; - using HudOverrideTask = KALDPINPHCD; - using ChatController = BPPJFAOEOMH; - using AmongUsClient = MMMGPAPEEBJ; - InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Joined = FMJPJKCNIKM_ONHEJJJIKDI__Enum_Joined; - InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Started = FMJPJKCNIKM_ONHEJJJIKDI__Enum_Started; - InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Ended = FMJPJKCNIKM_ONHEJJJIKDI__Enum_Ended; - #define PlayerControl_GetTruePosition_Trampoline JENJGDMOEOC_GetTruePosition - #define PlayerControl_Die_Trampoline JENJGDMOEOC_Die - #define PlayerControl_FixedUpdate_Trampoline JENJGDMOEOC_FixedUpdate - #define InnerNetClient_FixedUpdate_Trampoline FMJPJKCNIKM_FixedUpdate - #define InnerNetClient_Disconnect_Trampoline FMJPJKCNIKM_AAKFLNMJNBJ - #define InnerNetClient_StartRpc_Trampoline FMJPJKCNIKM_StartRpc - #define MeetingHud_Close_Trampoline NEOCOBOAGFJ_Close - #define MeetingHud_Start_Trampoline NEOCOBOAGFJ_Start - #define HqHudOverrideTask_Initialize_Trampoline AFFPOFMFHEF_Initialize - #define HqHudOverrideTask_Complete_Trampoline AFFPOFMFHEF_Complete - #define HudOverrideTask_Initialize_Trampoline KALDPINPHCD_Initialize - #define HudOverrideTask_Complete_Trampoline KALDPINPHCD_Complete - #define AmongUsClient_OnPlayerJoined_Trampoline MMMGPAPEEBJ_NDONNDIFBON - #define MessageWriter_Write_Byte_Trampoline MessageWriter_Write_1 - #define InnerNetClient_HandleGameDataInner_Trampoline FMJPJKCNIKM_AOAKDFPIOOA -#else - #error Unknown game version! -#endif \ No newline at end of file diff --git a/decompile.bat b/decompile.bat index 00f85c4..2ae95f8 100644 --- a/decompile.bat +++ b/decompile.bat @@ -12,9 +12,15 @@ MKDIR dump XCOPY "dump\*GameAssembly.dll*x86.dll" ".\GameAssembly.dll*" /Y REM Decompile dumped module -"%IL2CPPINSPECTOR%" -i ".\GameAssembly.dll" -m "%AMONGUS%\Among Us_Data\il2cpp_data\Metadata\global-metadata.dat" -h "cpp" --cpp-compiler MSVC +"%IL2CPPINSPECTOR%" -i ".\GameAssembly.dll" -m "%AMONGUS%\Among Us_Data\il2cpp_data\Metadata\global-metadata.dat" -h "cpp" -c "cs" --layout "tree" -k --cpp-compiler "MSVC" + +REM Copy c++ signatures to project XCOPY "cpp\appdata\*.*" "..\AUMInjector\appdata\" /K /D /H /Y +REM Generate deobfuctation map +dotnet build "..\AUMDeobfuscator\AUMDeobfuscator.csproj" -c "Release" +"..\AUMDeobfuscator\bin\Release\net5.0\AUMDeobfuscator.exe" "cs" --gameversion "%AMONGUS_VERSION%" -o "..\AUMInjector\deobfuscate\generated_%AMONGUS_VERSION%.h" + CD .. DEL /s /q tmp\* >NUL 2>&1 RMDIR /s /q tmp diff --git a/dynamic_analysis.py b/dynamic_analysis.py index 3349f5a..fdca7c9 100644 --- a/dynamic_analysis.py +++ b/dynamic_analysis.py @@ -3,7 +3,7 @@ basepath = os.path.join(pathlib.Path(__file__).parent.absolute(), "AUMInjector") functions_file = os.path.join(basepath, "appdata", "il2cpp-functions.h") -output_file = os.path.join(basepath, "user", "dynamic_analysis.h") +output_file = os.path.join(basepath, "deobfuscate", "dynamic_analysis.h") if(len(sys.argv) < 2): print("Specify search token as first CLI argument, excluding tokens as following arguments") exit(1) diff --git a/setup.bat.example b/setup.bat.example index bc28a83..d2fc411 100644 --- a/setup.bat.example +++ b/setup.bat.example @@ -3,9 +3,13 @@ REM set the path to your game folder SET "AMONGUS=C:\Steam\steamapps\common\Among Us" +REM set the version of the generated deobfuscations +SET "AMONGUS_VERSION=2020_11_17s" + REM set the path of tools SET "IL2CPPINSPECTOR=Il2CppInspector-cli.exe" SET "PD32=pd32.exe" +SET "AUMDEOBFUSCATOR=.\AUMDeobfuscator\bin\Release\net5.0\AUMDeobfuscator.exe" REM setup virtual machines for deployment REM uncomment the following line to enable vm upload From c1a8676c77d6d7e261e124531a2e50c2f436a1d1 Mon Sep 17 00:00:00 2001 From: Christoph Honal Date: Fri, 4 Dec 2020 20:51:56 +0100 Subject: [PATCH 2/3] Update to 2020.12.3s --- AUMInjector/AUMInjector.rc | 8 +++---- AUMInjector/AUMInjector.vcxproj | 1 + AUMInjector/AUMInjector.vcxproj.filters | 3 +++ AUMInjector/deobfuscate/2020_12_3s.h | 28 +++++++++++++++++++++++++ AUMInjector/deobfuscate/deobfuscate.h | 2 ++ AUMInjector/deobfuscate/version.h | 5 ++++- AUMInjector/user/main.cpp | 2 +- 7 files changed, 43 insertions(+), 6 deletions(-) create mode 100644 AUMInjector/deobfuscate/2020_12_3s.h diff --git a/AUMInjector/AUMInjector.rc b/AUMInjector/AUMInjector.rc index 1f2ff9b..7a6b92d 100644 --- a/AUMInjector/AUMInjector.rc +++ b/AUMInjector/AUMInjector.rc @@ -51,8 +51,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,0,0,10 - PRODUCTVERSION 1,0,0,10 + FILEVERSION 1,0,0,11 + PRODUCTVERSION 1,0,0,11 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -69,12 +69,12 @@ BEGIN BEGIN VALUE "CompanyName", "chrz.de" VALUE "FileDescription", "Among Us to Mumble VoIP adapter" - VALUE "FileVersion", "1.0.0.10" + VALUE "FileVersion", "1.0.0.11" VALUE "InternalName", "winhttp.dll" VALUE "LegalCopyright", "Copyright (C) chrz.de 2020" VALUE "OriginalFilename", "winhttp.dll" VALUE "ProductName", "AmongUs-Mumble" - VALUE "ProductVersion", "1.0.0.10" + VALUE "ProductVersion", "1.0.0.11" END END BLOCK "VarFileInfo" diff --git a/AUMInjector/AUMInjector.vcxproj b/AUMInjector/AUMInjector.vcxproj index 513d507..b512fbc 100644 --- a/AUMInjector/AUMInjector.vcxproj +++ b/AUMInjector/AUMInjector.vcxproj @@ -47,6 +47,7 @@ + diff --git a/AUMInjector/AUMInjector.vcxproj.filters b/AUMInjector/AUMInjector.vcxproj.filters index 3861c3e..adf5463 100644 --- a/AUMInjector/AUMInjector.vcxproj.filters +++ b/AUMInjector/AUMInjector.vcxproj.filters @@ -224,6 +224,9 @@ Deobfuscate + + Deobfuscate + diff --git a/AUMInjector/deobfuscate/2020_12_3s.h b/AUMInjector/deobfuscate/2020_12_3s.h new file mode 100644 index 0000000..12ff095 --- /dev/null +++ b/AUMInjector/deobfuscate/2020_12_3s.h @@ -0,0 +1,28 @@ +using Player_Die_Reason__Enum = BMOPDKNGEHP__Enum; +using PlayerControl = LBADNGJPJGH; +using InnerNetClient = IFEMMDOEKDL; +using InnerNetClient_GameState__Enum = IFEMMDOEKDL_MDKCICGKNBA__Enum; +using InnerNet_DisconnectReasons__Enum = JPONPMHDFBL__Enum; +using MeetingHud = LMJOGIIMCMB; +using HqHudOverrideTask = KEKFAIIFGLL; +using HudOverrideTask = JGMIPAPJPGD; +using ChatController = FLICDOHEDCM; +using AmongUsClient = KNKBHCOHCOM; +InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Joined = IFEMMDOEKDL_MDKCICGKNBA__Enum_Joined; +InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Started = IFEMMDOEKDL_MDKCICGKNBA__Enum_Started; +InnerNetClient_GameState__Enum InnerNetClient_GameState__Enum_Ended = IFEMMDOEKDL_MDKCICGKNBA__Enum_Ended; +#define PlayerControl_GetTruePosition_Trampoline LBADNGJPJGH_GetTruePosition +#define PlayerControl_Die_Trampoline LBADNGJPJGH_Die +#define PlayerControl_FixedUpdate_Trampoline LBADNGJPJGH_FixedUpdate +#define InnerNetClient_FixedUpdate_Trampoline IFEMMDOEKDL_FixedUpdate +#define InnerNetClient_Disconnect_Trampoline IFEMMDOEKDL_HFDOHDBDGGL +#define InnerNetClient_StartRpc_Trampoline IFEMMDOEKDL_StartRpc +#define MeetingHud_Close_Trampoline LMJOGIIMCMB_Close +#define MeetingHud_Start_Trampoline LMJOGIIMCMB_Start +#define HqHudOverrideTask_Initialize_Trampoline KEKFAIIFGLL_Initialize +#define HqHudOverrideTask_Complete_Trampoline KEKFAIIFGLL_Complete +#define HudOverrideTask_Initialize_Trampoline JGMIPAPJPGD_Initialize +#define HudOverrideTask_Complete_Trampoline JGMIPAPJPGD_Complete +#define AmongUsClient_OnPlayerJoined_Trampoline KNKBHCOHCOM_DMGHDNOADBO +#define MessageWriter_Write_Byte_Trampoline MessageWriter_Write_1 +#define InnerNetClient_HandleGameDataInner_Trampoline IFEMMDOEKDL_BCNEDMEDMKH \ No newline at end of file diff --git a/AUMInjector/deobfuscate/deobfuscate.h b/AUMInjector/deobfuscate/deobfuscate.h index d5ee8e3..c5bca5c 100644 --- a/AUMInjector/deobfuscate/deobfuscate.h +++ b/AUMInjector/deobfuscate/deobfuscate.h @@ -17,6 +17,8 @@ using namespace app; #include "2020_11_17s.h" #elif GAME_VERSION == GAME_VERSION_2020_11_17s_1 #include "2020_11_17s_1.h" +#elif GAME_VERSION == GAME_VERSION_2020_12_3s + #include "2020_12_3s.h" #else #error Unknown game version! #endif \ No newline at end of file diff --git a/AUMInjector/deobfuscate/version.h b/AUMInjector/deobfuscate/version.h index ab926e4..aa40f9b 100644 --- a/AUMInjector/deobfuscate/version.h +++ b/AUMInjector/deobfuscate/version.h @@ -3,8 +3,9 @@ #define GAME_VERSION_2020_11_4s 202011040 #define GAME_VERSION_2020_11_17s 202011170 #define GAME_VERSION_2020_11_17s_1 202011171 +#define GAME_VERSION_2020_12_3s 202012030 #ifndef GAME_VERSION - #define GAME_VERSION GAME_VERSION_2020_11_17s_1 + #define GAME_VERSION GAME_VERSION_2020_12_3s #endif #if GAME_VERSION == GAME_VERSION_2020_9_22s @@ -17,6 +18,8 @@ #define version_text "2020.11.17s" #elif GAME_VERSION == GAME_VERSION_2020_11_17s_1 #define version_text "2020.11.17s Patch 1" +#elif GAME_VERSION == GAME_VERSION_2020_12_3s + #define version_text "2020.12.3s" #else #error Unknown game version! #endif diff --git a/AUMInjector/user/main.cpp b/AUMInjector/user/main.cpp index f8b03c8..b67dec5 100644 --- a/AUMInjector/user/main.cpp +++ b/AUMInjector/user/main.cpp @@ -248,7 +248,7 @@ void AmongUsClient_OnPlayerJoined_Hook(AmongUsClient* __this, ClientData* data, //} // Gets called when a game data packet is received -void InnerNetClient_HandleGameDataInner_Hook(FMJPJKCNIKM* __this, MessageReader* reader, int32_t count, MethodInfo* method) +void InnerNetClient_HandleGameDataInner_Hook(InnerNetClient* __this, MessageReader* reader, int32_t count, MethodInfo* method) { // Tag 2 = RPC call if (reader->fields.Tag == 2) From 9cd7a43674c6de0d2b23646a32bf5b7d3b6fc084 Mon Sep 17 00:00:00 2001 From: Christoph Honal Date: Fri, 4 Dec 2020 20:54:55 +0100 Subject: [PATCH 3/3] update readme --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 29386fc..46b7f02 100644 --- a/README.md +++ b/README.md @@ -9,9 +9,10 @@ Version numbering: Release compatible builds use `1.0.0.X`, beta builds use `1.0 Patch versions refer to unmarked Steam updates where the game version did not change. -| Game version | Game channel | Mod Status | DLL version | GAME_VERSION | +| Game version | Game channel | Status | DLL version | GAME_VERSION | | -------------------- | ------------ | ----------------------------- | ------------------------------------------------------------------------------- | ------------ | -| 2020.11.17s Patch 1 | Release | :heavy_check_mark: Maintained | [1.0.0.10](https://github.com/StarGate01/AmongUs-Mumble/releases/tag/v1.0.0.10) | `202011171` | +| 2020.12.3s | Release | :heavy_check_mark: Maintained | [1.0.0.11](https://github.com/StarGate01/AmongUs-Mumble/releases/tag/v1.0.0.11) | `202012031` | +| 2020.11.17s Patch 1 | Release | :warning: Outdated | [1.0.0.10](https://github.com/StarGate01/AmongUs-Mumble/releases/tag/v1.0.0.10) | `202011171` | | 2020.11.17s | Release | :warning: Outdated | [1.0.0.8](https://github.com/StarGate01/AmongUs-Mumble/releases/tag/v1.0.0.8) | `202011170` | | 2020.11.4s | Beta | :warning: Outdated | [1.0.1.7](https://github.com/StarGate01/AmongUs-Mumble/releases/tag/v1.0.1.7) | `202011040` | | 2020.10.22s | Release | :warning: Outdated | [1.0.0.7](https://github.com/StarGate01/AmongUs-Mumble/releases/tag/v1.0.0.7) | `202010220` |