Removed the online allowing console cheats patches from the DLL.
[ 22 Nov 2018 - Update #3 (1.0.6) ]
Tinkered for quite a while with the UE4 SDK Generator you can find [Link]. The original author (KN4CK3R) removed it from GitHub due to some legal claims. However, the project was forked far too many times so I could find it someplace else Keep in mind I'm using this without that many modifications, for the sole purpose of dumping the FNameArray and GUObjectArray from the game. What will this information be useful for.. well, you'll see
Modifications done to the source code:
- commented out ProcessPackages function (needs fixing; don't need it)
- added a new thread to allow re-dumping of NamesDump and ObjectsDump .txt files (keep in mind UE objects are re-created once you enter/leave a map; so you do need to re-dump them to get the objects' memory addresses at that given point in time)
Code: Select all
DWORD WINAPI KeyCheckThread( LPVOID lpParameter )
{
while ( !bExiting )
{
if( GetAsyncKeyState( VK_DIVIDE ) & 1 )
{
char lpBuffer[MAX_PATH];
GetModuleFileNameA( NULL, lpBuffer, MAX_PATH );
fs::path outputDirectory( lpBuffer );
outputDirectory = fs::path( lpBuffer ).remove_filename();
Dump( outputDirectory );
}
Sleep(10);
}
return 0;
}
1) Extract archive content to a folder of your choice (pass: sunbeam).
2) Run injector (Extreme Injector v3.exe).
3) Click Add DLL button and choose TheWalkingDead.dll from your folder. (yes, another DLL)
4) Select the game target up top -> OTWD-Wind64-Shipping.exe.
5) Click Inject.
You will now find two text files in your Steam folder, where the executable is (e.g.: G:\SteamLibrary\steamapps\common\OVERKILL's The Walking Dead\OTWD\Binaries\Win64):
6) If you ever need to re-dump them, press Numpad /. The files will be re-created with synced information.
Now that you know what you have to do, what can I use these files for? Well, for analysis and quick editing of in-memory UE data. How? See the example below. Let's do an ammo scan and see how the ObjectDump.txt file helps us (this will be your main file to look at). So.. enter first map (in Private mode), kill first wave of zombies, then do a scan for the ammo value you see on-screen for your pistol. Continue the scan/next process till you have one address that you know is the address of your ammo. Here's my scenario:
Now we want to learn what writes to this address when we fire the gun. Right-click the address in the list > "Find out what writes to this address" > OK. And a window will open up. Then fire. This happens for me:
The instruction is: "mov [rbx+000002B8],esi". What this means is ESI value is written into the memory space appointed by RBX register (it is an address) at offset 0x2B8. In my case, RBX == 000001662E18F040.
Now comes the fun part. If you've injected the DLL, then press Numpad /. The two text files will be re-created. Let's open ObjectsDump.txt and search for our address:
Boom, shakalaka! Now you know what the fuck you're looking at; the name
Note that in this demo we're looking at the Widget value of our ammo; it's not the real deal. Ammo is stored someplace else you can find by back-tracing. Here's the run-down on a second map load (didn't have the console on to do "giveammo 999"):
Code: Select all
OTWD-Win64-Shipping.exe+19CB2A0 - 48 89 5C 24 20 - mov [rsp+20],rbx <-- break here
OTWD-Win64-Shipping.exe+19CB2A5 - 57 - push rdi
OTWD-Win64-Shipping.exe+19CB2A6 - 48 83 EC 40 - sub rsp,40 { 64 }
OTWD-Win64-Shipping.exe+19CB2AA - 48 8B D9 - mov rbx,rcx
OTWD-Win64-Shipping.exe+19CB2AD - 0FB6 FA - movzx edi,dl
OTWD-Win64-Shipping.exe+19CB2B0 - 48 8B 89 58020000 - mov rcx,[rcx+00000258]
OTWD-Win64-Shipping.exe+19CB2B7 - 48 85 C9 - test rcx,rcx
OTWD-Win64-Shipping.exe+19CB2BA - 0F84 BB010000 - je OTWD-Win64-Shipping.exe+19CB47B
OTWD-Win64-Shipping.exe+19CB2C0 - 48 89 6C 24 50 - mov [rsp+50],rbp
OTWD-Win64-Shipping.exe+19CB2C5 - B2 01 - mov dl,01 { 1 }
OTWD-Win64-Shipping.exe+19CB2C7 - 48 89 74 24 58 - mov [rsp+58],rsi
OTWD-Win64-Shipping.exe+19CB2CC - 4C 89 74 24 60 - mov [rsp+60],r14
OTWD-Win64-Shipping.exe+19CB2D1 - 0F29 74 24 30 - movaps [rsp+30],xmm6
OTWD-Win64-Shipping.exe+19CB2D6 - E8 25090400 - call OTWD-Win64-Shipping.exe+1A0BC00 <-- go in
..
..
OTWD-Win64-Shipping.exe+1A0BC00 - 33 C0 - xor eax,eax
OTWD-Win64-Shipping.exe+1A0BC02 - 84 D2 - test dl,dl
OTWD-Win64-Shipping.exe+1A0BC04 - 75 13 - jne OTWD-Win64-Shipping.exe+1A0BC19
OTWD-Win64-Shipping.exe+1A0BC06 - 8B 91 4C080000 - mov edx,[rcx+0000084C]
OTWD-Win64-Shipping.exe+1A0BC0C - 0FBF 89 480D0000 - movsx ecx,word ptr [rcx+00000D48]
OTWD-Win64-Shipping.exe+1A0BC13 - 2B CA - sub ecx,edx
OTWD-Win64-Shipping.exe+1A0BC15 - 0F49 C1 - cmovns eax,ecx
OTWD-Win64-Shipping.exe+1A0BC18 - C3 - ret
OTWD-Win64-Shipping.exe+1A0BC19 - 0FBF 89 480D0000 - movsx ecx,word ptr [rcx+00000D48] <-- see ecx after this
OTWD-Win64-Shipping.exe+1A0BC20 - 8B D0 - mov edx,eax
OTWD-Win64-Shipping.exe+1A0BC22 - 2B C8 - sub ecx,eax
OTWD-Win64-Shipping.exe+1A0BC24 - 0F49 C1 - cmovns eax,ecx
OTWD-Win64-Shipping.exe+1A0BC27 - C3 - ret
Code: Select all
Line 158597: [383039] BP_MP5_C CampAnderson_Defend_TheFirstShot_02.CampAnderson_Defend_TheFirstShot_02.PersistentLevel.BP_MP5_C_1 0x000001665B7750B0
And this is where the real write happens:
Code: Select all
OTWD-Win64-Shipping.exe+1A113ED - 0FB7 93 480D0000 - movzx edx,word ptr [rbx+00000D48]
OTWD-Win64-Shipping.exe+1A113F4 - 66 85 D2 - test dx,dx
OTWD-Win64-Shipping.exe+1A113F7 - 0F94 C1 - sete cl
OTWD-Win64-Shipping.exe+1A113FA - 66 85 FF - test di,di
OTWD-Win64-Shipping.exe+1A113FD - 0F94 C0 - sete al
OTWD-Win64-Shipping.exe+1A11400 - 3A C1 - cmp al,cl
OTWD-Win64-Shipping.exe+1A11402 - 74 0C - je OTWD-Win64-Shipping.exe+1A11410
OTWD-Win64-Shipping.exe+1A11404 - 44 0FB7 C7 - movzx r8d,di
OTWD-Win64-Shipping.exe+1A11408 - 48 8B CB - mov rcx,rbx
OTWD-Win64-Shipping.exe+1A1140B - E8 D0DE0000 - call OTWD-Win64-Shipping.exe+1A1F2E0
OTWD-Win64-Shipping.exe+1A11410 - 66 39 BB 480D0000 - cmp [rbx+00000D48],di
OTWD-Win64-Shipping.exe+1A11417 - 7D 07 - jnl OTWD-Win64-Shipping.exe+1A11420
OTWD-Win64-Shipping.exe+1A11419 - 66 89 BB 4C0D0000 - mov [rbx+00000D4C],di
OTWD-Win64-Shipping.exe+1A11420 - 48 8B CB - mov rcx,rbx
OTWD-Win64-Shipping.exe+1A11423 - 66 89 B3 4E0D0000 - mov [rbx+00000D4E],si
OTWD-Win64-Shipping.exe+1A1142A - 66 89 BB 480D0000 - mov [rbx+00000D48],di <-- write
OTWD-Win64-Shipping.exe+1A11431 - E8 2AC055FF - call OTWD-Win64-Shipping.exe+F6D460
OTWD-Win64-Shipping.exe+1A11436 - 83 F8 03 - cmp eax,03 <-- remember this?
And looking that address up in the .txt shows this:
Code: Select all
Line 127328: [138222] BlueprintGeneratedClass BP_MP5.BP_MP5_C 0x0000016624384F00
And so on
That's it for now. Enjoy.
BR,
Sun
P.S. Might be tempted to release the source code sometime in the future If anyone needs it.
--
[ 19 Nov 2018 - Update #2 (1.0.6) ]
Lib updated to v1.1
+ patched creation of UCheatManager to now also work in hosted games (when you're playing in Public games); aside from the below, the rest of the commands seem to work (e.g.: giveammo 999)
+ patched God function to allow setting flags while in Public games; keep in mind even though you see "God mode on", you will still die; can't do anything about it
I'll version this from now on. If you need the injector, it's in the archive below this Else, you can use Cheat Engine (Memory Viewer > Ctrl+I > OTWD_Console.dll > No). The password is the same: sunbeam.
--
[ 18 Nov 2018 - Update #1 (1.0.6) ]
Attached an archive containing an injector (yes, your AV will go haywire and tell you there's a virus in the archive; I don't care for your reports; the tool is legit, you can find it on google). Here's how to work it out:
1) Extract archive content to a folder of your choice (pass: sunbeam).
2) Run injector (Extreme Injector v3.exe).
3) Click Add DLL button and choose OTWD_Console.dll from your folder.
4) Select the game target up top -> OTWD-Wind64-Shipping.exe.
5) Click Inject.
If all is OK, you should now be able to open the console with the key you've assigned as bind in the .ini file:
AllowCheats is patched by the DLL so you can use the regular UCheatManager commands in-game
Having said that, the file I've linked below in the first release is obsolete (works only for 1.0.5).
Enjoy.
--
[ 14 Nov 2018 - First Release (1.0.5) ]
Hello folks.
As it stands today, the 13th of November 2018, google returns no results when looking up "the walking dead enable console". Try your best, high and low, and let me know if you find one such place. The reason I am writing this intro is I know a lot of websites/communities with high activity and a tremendous number of users will take this and claim it as theirs, without giving credit where due. Same goes for all your friendly youtubers who can't wait to grab something like this and advertise it to their benefit.
I've started working with 2 other games at the same time (Everspace, We Happy Few), narrowing down my analysis to what has turned to be what you're about to download. I thereby thank the Everspace developers for leaving in the .pdb file which helped a lot name the functions and determine WTF I was looking at. At the same time, "he used some .pdb and other games to come up with this; that's lame; anyone can do it" - - I welcome you to try it: waste 2-3 days at it and get to my conclusion, then we talk how simple it is.. or not.
Lastly, since this isn't posted anywhere else on the internet, this is where you got it FIRST. Remember this.
-eos
NOTES
======
The mod is provided in the form of added code content. The UE4 Engine creates the UGameViewportClient window and then initializes the respective UObject. Further along, when initializing ULocalPlayer it also initializes UConsole. The modification I applied cannot be provided in the form of a cheat table simply because you won't be fast enough to attach the game (the 2nd process, as Steam launches it 2 times), load the table and quickly enable the script - - all in 4-5 seconds. Therefore, want to bitch the file is unsafe and contains viruses? Be my guest. No one forces you to use it.
INSTRUCTIONS
=============
① Download the file linked here: [Link].
② Head to your game folder (e.g.: G:\SteamLibrary\steamapps\common\OVERKILL's The Walking Dead\OTWD\Binaries\Win64) and backup your original executable, renaming it from OTWD-Win64-Shipping.exe to OTWD-Win64-Shipping.exe.BAK. Don't know where the folder is? Check in Steam > right-click game > Properties > Local Files tab > Browse Local Files.
③ Extract OTWD-Win64-Shipping.exe from the archive you just downloaded to this folder.
④ Head to C:\Users\<your_user_here>\AppData\Local\OTWD\Saved\Config\WindowsNoEditor, open Input.ini and add the highlighted lines.
Save file. Note I used Tilde as console key. You can change it to whichever you like. Also, the first part (with bConsoleEnabled=True) doesn't apply to this game; but it doesn't hurt having it there Lastly, you can also add binds to commands here.
⑤ Run the game (from either the .exe or the Steam shortcut). Either at map or in-game, press Tilde to open the console up and type your stuff.
CONSOLE COMMANDS
==================
I'll list here the useful ones; feel free to join in
Code: Select all
god
fly (no effect)
ghost (no effect)
playersonly
slomo <val> (e.g.: slomo 0.2; slomo 0.5; slomo 1)
giveammo <val> (e.g.: giveammo 999)
Sun
How to use this cheat table?
- Install Cheat Engine
- Double-click the .CT file in order to open it.
- Click the PC icon in Cheat Engine in order to select the game process.
- Keep the list.
- Activate the trainer options by checking boxes or setting values from 0 to 1