This repository manages the Cheat Gear CLI tool. For community support please visit our Discord Server.
For version 4:
For version 5(beta):
- .Net 8.
- You can install using WinGet
winget install Microsoft.DotNet.DesktopRuntime.8
.
- You can install using WinGet
- Version 4
- Version 5 (Recommended)
- After installing v5 you should update to the latest version Update CLI
Make sure you are using the latest CLI version:
CheatGear.CLI.exe update
There is two methods to provide your API key to CLI:
- Pass your key as a command line arg
--api CG-XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- Set it in your environment variables using your terminal:
- Windows:
setx CG_API_KEY CG-XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- Linux:
sudo sh -c "echo "CG_API_KEY=CG-XXXXXXXXXXXXXXXXXXXXXXXXXXXXX" >> /etc/environment"
then logout
- Windows:
It's recommended to upgrade configs before starting:
CheatGear.CLI.exe unreal config upgrade
The main objective of using this tool is to generate SDK, You will need two things to do that,GNames and GObjects addresses. To obtain these address please utilize the following commands:
CheatGear.CLI.exe unreal search names -p PID -v UNREAL_VER -l SEARCH_LVL -c CONFIG_NAME
CheatGear.CLI.exe unreal search objects -p PID -v UNREAL_VER -l SEARCH_LVL -c CONFIG_NAME
PID
: Target process id in decimalUNREAL_VER
: Unreal version your target are using. (eg. unreal3/unreal4/unreal5)SEARCH_LVL
: Each level uses a different algorithm going up means takes more time. (eg. 1/2/3)CONFIG_NAME
: Engine config that defines how the tool will interact with target memory. (eg. 3.0/3.1/4.21/4.25/5.0/5.3)
Notes:
- You can add
--objects-xor-key 0xGOBJECT_BLOCKS_XOR_KEY
(keep in mind0x
) when search forobjects
so when CG try to derefernce blocks address will doxor
op firstGObjects->Objects = reinterpret_cast<uintptr_t>(GObjects->Objects) ^ OBJECTS_XOR_KEY
After getting GNames/GObjects address we are ready to generate our SDK now to do that use this command:
CheatGear.CLI.exe unreal sdk generate -p PID -v UNREAL_VER -c CONFIG_NAME -n GNAMES_ADDRESS -o GOBJECTS_ADDRESS -gn GAME_NAME -gv GAME_VERSION
PID
: Target process id in decimalUNREAL_VER
: Unreal version your target are using. (eg. unreal3/unreal4/unreal5)CONFIG_NAME
: Engine config that defines how the tool will interact with target memory. (eg. 3.0/3.1/4.21/4.25/5.0/5.3)GNAMES_ADDRESS
: GNames address you got yourself or by usingsearch
command in hex format. (eg. 0x7FF745F1E908)GOBJECTS_ADDRESS
: GObjects address you got yourself or by usingsearch
command in hex format. (eg. 0x7FF745F22C18)GAME_NAME
: Game name. (eg. MyNiceGame)GAME_VERSION
: Game version. (eg. 1.0)
Notes:
- You can add
--objects-xor-key 0xGOBJECT_BLOCKS_XOR_KEY
(keep in mind0x
) so when CG try to derefernce blocks address will doxor
op firstGObjects->Objects = reinterpret_cast<uintptr_t>(GObjects->Objects) ^ OBJECTS_XOR_KEY
Generate SDK give us a .cgs
file allowing us to convert it to a different programming language syntaxes:
CheatGear.CLI.exe unreal sdk convert -f "CGS_FILE_PATH" -l LANGUAGE -t SYNTAX_TYPE
CGS_FILE_PATH
:.cgs
file path that you get fromsdk generate
command.LANGUAGE
: Programming language name to generate syntax for. (eg. cpp)SYNTAX_TYPE
: There are two types of syntax you can generateinternal
orexternal
.
TODO
You have two options:
1. Delete this function from header and cpp file
FUObjectItem::IsUnreachable // BasicTypes_FUObjectItem.h, BasicTypes.cpp
FUObjectItem::IsPendingKill // BasicTypes_FUObjectItem.h, BasicTypes.cpp
FWeakObjectPtr::SerialNumbersMatch // BasicTypes_FWeakObjectPtr.h, BasicTypes.cpp
FWeakObjectPtr::IsValid // BasicTypes_FWeakObjectPtr.h, BasicTypes.cpp
FWeakObjectPtr::Get // BasicTypes_FWeakObjectPtr.h, BasicTypes.cpp
2. Add required fields
FUObjectItem::Flags // int32
FUObjectItem::SerialNumber // int32