-
๐ญ Iโm currently working on CheatGear
-
๐ฑ Iโm currently learning AI
Useful tool to help you fetch and dump Unreal Engine 4 Games information.
License: GNU General Public License v3.0
๐ญ Iโm currently working on CheatGear
๐ฑ Iโm currently learning AI
Help :C , im struggling to find the static ones for the initSDK...
Instead of dumping the entire SDK, just dump those two txt, they could help alot making game trainers with CE, and saves alot of time for the dump.
I tried use this tool on Survival Postapocalypse Now (UE 4.18 without anticheat) to find GObjects, but I can't find him because of the endless searching :(
void Package::SaveStructs(const fs::path & path) const
{
extern IGenerator* generator;
std::string name = GenerateFileName(FileContentType::Structs, *this);
std::ofstream os(path / name);//on here
PrintFileHeader(os, true);
if (!constants.empty())
{
PrintSectionHeader(os, "Constants");
for (auto&& c : constants) { PrintConstant(os, c); }
os << "\n";
}
if (!Enums.empty())
{
PrintSectionHeader(os, "Enums");
for (auto&& e : Enums) { PrintEnum(os, e); os << "\n"; }
os << "\n";
}
if (!ScriptStructs.empty())
{
PrintSectionHeader(os, "Script Structs");
for (auto&& s : ScriptStructs) { PrintStruct(os, s); os << "\n"; }
}
PrintFileFooter(os);
os.close();
}
Call Stack:
KernelBase.dll!00007ff9781a9129() unknow
vcruntime140.dll!00007ff963cb486d() unknow
UnrealFinderTool.exe!std::filesystem::_Check_convert_result(const __std_fs_convert_result _Result) 54 C++
UnrealFinderTool.exe!std::filesystem::_Convert_narrow_to_wide(const __std_code_page _Code_page, const std::basic_string_view<char, std::char_traits<char> > _Input) 71 C++
[inline] UnrealFinderTool.exe!std::filesystem::_Convert_stringoid_to_wide(const std::basic_string_view<char, std::char_traits<char> >) 264 C++
[inline] UnrealFinderTool.exe!std::filesystem::_Convert_Source_to_wide(const std::basic_string<char, std::char_traits<char>, std::allocator<char> > &) 362 C++
[inline] UnrealFinderTool.exe!std::filesystem::path::{ctor}(const std::basic_string<char, std::char_traits<char>, std::allocator<char> > &) 783 C++
UnrealFinderTool.exe!Package::SaveClasses(const std::filesystem::path & path) 807 C++
UnrealFinderTool.exe!Package::Save(const std::filesystem::path & path) 113 C++
UnrealFinderTool.exe!SdkGenerator::ProcessPackages::__l2::(UEObject * obj, ParallelOptions &) 261 C++
[inline] UnrealFinderTool.exe!std::_Func_class<void, unsigned __int64 &, ParallelOptions &>::operator()(unsigned __int64 &) 124 C++
UnrealFinderTool.exe!ParallelWorker<std::vector<unsigned __int64, std::allocator >, unsigned __int64>::Worker() 108 C++
[external]
Game: ARK: Survival Evolved
Screenshot error: https://i.imgur.com/bDi70YT.png
i generated the SDK, both internal and external, but how i can build a trainer that adds fullbright, unlimited power (on all levels with Torch/Battery power (rechargeable or not?), (and a god mode to avoid jumpscares) and how i can load that mod/function?
#11
well, i followed the video, i still get one gobject and one gname, and the gname is still invalid
I ask this question as none did about how json files creation
@CorrM can you please create a small tutorial or explain how the json work I want to know how to do json for game called code vein
ue 4.18
I use this tool dump the game "Remnant" with config
{
"name": "UStruct",
"super": "UField",
"vars": [
{ "pad_1": "16" },
{ "SuperField": "UStruct*" },
{ "Children": "UField*" },
{ "PropertySize": "int" },
{ "MinAlignment": "int" },
{ "pad_2": "48" }
],
"note": ""
}
no crash but a lot UnknownData
What should I do?
Since the latest release the game "KurzPel" crashes the program, once it is running I can't run the tool anymore, once it is closed everything works again. Here is a dump: https://i.lolisare.life/l6H93.mdmp
Hello!
When trying to generate an SDK for Fortnite 6.10, I am able to find the GObjects but the Unreal Finder Tool crashes when trying to find the GNames.
If you know how to fix this, I would greatly appreciate it. Thanks!
Was trying to find the explanation for this error when using the SDK creator for The Outer Worlds. I know the game is very new, but figured I'd give it a shot.
Doesn't end up dumping anything unfortunately.
does it support ue3 , I try to use it on blade and soul but I get that error always
I'm attempting to dump PUBG, but whenever i press the Find button i get a error saying Not Valid Process Id (I tried multiple different versions, i must just be missing something obvious).
What could be the reason for this? BeDaisy & Battleye services are not running.
I get the message from the subject line when I attempt to use the tool to dump PUBG. It occurs when I click "Find" on GObjects or GNames. It finds the correct Process ID when I hit the search button and I can see it is grabbing the correct Process ID number for Tslgame.exe. Any ideas?
Game: Monster Energy Supercross The Game 2
Engine Version: 4.20.2.0
The program crashes shortly after I click the "Find" button for GNames.
Dump: https://www.dropbox.com/s/3byqdi2hii6yuxh/20190706-091303-31292-6504.mdmp?dl=1
Okay, so at first I wanna say, AWESOME tool!!!
However some bugs I found. The generated SDK classes all include SDK.h but the SDK.hpp file is generated so it throws thousands of errors. Have to rename SDK.hpp to SDK.h then it works.
Also when a SDK is generated the package counter is increased. But when without closing tool generating another sdk it doesnt reset counter. just a small thing nothing bad
I found that in some games NameDump was incomplete(i.e. lost some names). This could be because that in NamesStore.cpp:30 for (int i = 0; i < 15; ++i)
. The limit for chunks is too small for some games, changing it to 30 or so may fix this problem.
Cheers
I play game called blade & soul complete using unreal engine 4.22
however the client is encrypted and engine config files not exist any idea what can I do?
Everything works great for me building form the source except the sorting after generation
I comment out below and it generates the SDK, If I leave it in it takes 2 hours and sometimes doesnt complete. The generation on my PC already takes 45 minutes without sorting (20k objects)
SdkGenerator::ProcessPackages
if (!packages.empty())
{
state = "Sorting";
// std::sort doesn't work, so use a simple bubble sort
//std::sort(std::begin(packages), std::end(packages), PackageDependencyComparer());
const PackageDependencyComparer comparer;
for (auto i = 0u; i < packages.size() - 1; ++i)
{
for (auto j = 0u; j < packages.size() - i - 1; ++j)
{
state = std::to_string(i) + " - " + std::to_string(j);
if (!comparer(packages[j], packages[j + 1]))
{
std::swap(packages[j], packages[j + 1]);
}
}
}
}
Does look like that "All UE4 Games, (32/64bit)" isn't true for Sea of Thieves, unfortunately. I mean, the part of finding GObjects/GNames (as of 92d38af) is (good work).
Trying all addresses generated with 2.2.0/2.2.1 the result always is either a crash of the game or a crash of the app (no error shown, after the NamesDump).
Build from source, the app crashes right a way (white window opens and closes without an error being shown). Could send you a build log. But it's running using the Local Windows Debugger.
Build from source it finishes after the CoreUObject dump (1/180k+) or due to (trying different addresses) "xC*5: Access violation reading location 0x000.."
If you need anything/logs, let me know.
I had a problem that every parameter in generated SDK had extra indirection level (float became float*, UWorld* became UWorld**, etc.):
// Wrong
void UCanvas::K2_DrawBox(struct FVector2D* ScreenPosition, struct FVector2D* ScreenSize, float* Thickness, struct FLinearColor* RenderColor) { ... }
// Correct
void UCanvas::K2_DrawBox(const struct FVector2D& ScreenPosition, const struct FVector2D& ScreenSize, float Thickness, const struct FLinearColor& RenderColor) { ... }
After debugging I found out that due to typos in Package::GenerateMethods following piece of code performs reads of garbage data. If read resulted in 0 or 1, bug wasn't noticable but in my case I had large negative numbers there.
void Package::GenerateMethods(const UEClass& classObj, std::vector<Method>& methods) const
{
// prop represents UFunction which should NOT be casted to UEProperty/UProperty because inheritance sequence looks like this: UFunction -> UStruct -> UField -> UObject
// We are only using GetNext here so casts should be to UEField/UField
for (auto prop = classObj.GetChildren().Cast<UEProperty>(); prop.IsValid(); prop = prop.GetNext().Cast<UEProperty>())
{
if (prop.IsA<UEFunction>())
{
// param represents UProperty, this is fine, inheritance sequence: UProperty -> UField -> UObject
for (auto param = function.GetChildren().Cast<UEProperty>(); param.IsValid(); param = param.GetNext().Cast<UEProperty>())
{
//...
if (p.ParamType == Type::Default)
{
// Here is the major problem, GetArrayDim() should be called on UProperty representing current parameter (param variable) NOT on UFunction which makes no sense and will always read garbage
if (prop.GetArrayDim() > 1)
{
p.CppType = p.CppType + "*";
}
else if (info.CanBeReference)
{
p.PassByReference = true;
}
}
// prop usage seems invalid here as well for same reason, why would we need same prop (UFunction) for every p? This should be param
parameters.emplace_back(std::make_pair(prop, std::move(p)));
}
// In current state this is usless because every first is exactly the same and isn't even UEProperty/UProperty
std::sort(std::begin(parameters), std::end(parameters), [](auto && lhs, auto && rhs) { return ComparePropertyLess(lhs.first, rhs.first); });
}
}
}
I will submit a pull request for this, issue posted for reference.
can the tool find the code via apk or emulated android client , I want to see if its work for this game
https://play.google.com/store/apps/details?id=com.zloong.eu.dr.gp&hl=en_US its created with ue4
I am running PUBG mobile on Gameloop emulator, I tried to use both easy and hard mode to find GObjects but it found nothing, and GNames finder found a GNames but it was not the correct one, game process was freezed and different SDK versions were tried.
game: dauntless
ue version: 4.20
issue: ur tool works completely fine in debug mode but fucks up and crashes 24/7 in release mode
Remnant have more than 250k names,but only dump to index 245759
Hello, I want to get back to Fortnite cheating and the SDK generators I find are outdated.
But this one came out very recently and I see you are very active.
https://anonfile.com/1eVf52van4/20190616-142409-7232-9100_mdmp ( Memory dump )
Finding GNames crashes the finder instantly. Is there anything I am doing wrong, or Fortnite is not supported?
I have been playing around with this tool for a few weeks and have finally gotten good results, using a slightly modified version based off of the SDK-New-Features
branch since it produces much more usable results with a few minor fixes.
I have been able to inject (internal) and call many different functions successfully, but I have hit a road block in the area of FText
, since many fields in this particular game use FText
s instead of FString
s.
As part of the UKismetTextLibrary
class, I get many utility functions, including these:
...
static struct FString STATIC_Conv_TextToString(const struct FText& InText);
static struct FText STATIC_Conv_StringToText(const struct FString& inString);
...
// Function Engine.KismetTextLibrary.Conv_TextToString
// (Final, Native, Static, Public, HasOutParms, BlueprintCallable, BlueprintPure)
// Parameters:
// struct FText InText (ConstParm, Parm, OutParm, ReferenceParm)
// struct FString ReturnValue (Parm, OutParm, ZeroConstructor, ReturnParm)
struct FString UKismetTextLibrary::STATIC_Conv_TextToString(const struct FText& InText){
static auto fn = UObject::FindObject<UFunction>("Function Engine.KismetTextLibrary.Conv_TextToString");
struct{
struct FText InText;
struct FString ReturnValue;
} params;
params.InText = InText;
auto flags = fn->FunctionFlags;
fn->FunctionFlags |= 0x00000400;
static auto defaultObj = StaticClass()->CreateDefaultObject();
defaultObj->ProcessEvent(fn, ¶ms);
fn->FunctionFlags = flags;
return params.ReturnValue;
}
// Function Engine.KismetTextLibrary.Conv_StringToText
// (Final, Native, Static, Public, BlueprintCallable, BlueprintPure)
// Parameters:
// struct FString inString (Parm, ZeroConstructor)
// struct FText eturnValue (Parm, OutParm, ReturnParm)
struct FText UKismetTextLibrary::STATIC_Conv_StringToText(const struct FString& inString){
static auto fn = UObject::FindObject<UFunction>("Function Engine.KismetTextLibrary.Conv_StringToText");
struct{
struct FString inString;
struct FText ReturnValue;
} params;
params.inString = inString;
auto flags = fn->FunctionFlags;
fn->FunctionFlags |= 0x00000400;
static auto defaultObj = StaticClass()->CreateDefaultObject();
defaultObj->ProcessEvent(fn, ¶ms); <--- Fatal Error
fn->FunctionFlags = flags;
return params.ReturnValue;
}
While STATIC_Conv_TextToString
works perfectly, STATIC_Conv_StringToText
instantly Fatal Errors.
SDK::FString str = SDK::UKismetTextLibrary::STATIC_Conv_TextToString(whateverFText); <--- works fine
SDK::FText txt = SDK::UKismetTextLibrary::STATIC_Conv_StringToText(L"Gamer Time"); <--- Fatal Error
This appears to be the same for (at least some) other functions in UKismetTextLibrary
that return FText as well, including FText
->FText
ones like STATIC_TextToUpper
.
Doing some debugging, the error occurs inside ProcessEvent (the call to fn crashes):
inline void ProcessEvent(class UFunction* function, void* parms) {
auto fn = (GetVFunction<void(*)(UObject*, class UFunction*, void*)>(this, 64));
return fn(this, function, parms); <--- Fatal Error
}
(note that ProcessEvent does work for many other functions)
Additionally, without full FText
support, I'm missing FText::FromString
(and FText::AsCultureInvariant
), which would serve the same purpose as STATIC_Conv_StringToText
.
I'm not sure why FText
is hardcoded like it is; do we not know the format of the UnknownData?
Am I just misunderstanding something? (I'm an experienced programmer but new to UE4)
Does this work with other games?
Otherwise, do we know of another way to create an instance of an FText
from a string?
Any info would be appreciated!
Hi,
I am attempting to use this tool to dump an SDK for Sea of Thieves. Currently, the tool is unable to find the GObjects address for this game.
Are there any modifications that can be made to the source to enable the tool to get this address?
I have left it running on "Hard Mode" for upwards of an hour... with no success.
Thanks for your work on this tool, hopefully we can get this working.
Tried this tool on multiple unreal engine games. On ARK it never finds GObject addresses. On Borderlands 2 it crashes and on Moons of Madness it finds everything but says wrong GNames address (there is only one).
I've tried following the video tutorial. Game is paused while scanning. What am I doing wrong?
Whenever I try to generate an SDK or find a Class on Fallen Order, the program crashes. (Engine Version 4.21) I did go into the engine base and switch it to that engine version, along with trying other jsons.
Screenshot error: https://imgur.com/3WwXTsX
Screenshot error: https://imgur.com/BqHKVML
Thanks :P
I have an error on startup "Program encountered an issue and was termindated. dump information is located in dumps folder in program directory
Dumps.zip
Using both the new features and master branch are resulting in a full SDK being generated but a stack overflow exception being thrown during the package sorting phase.
UnrealFinderTool.exe!std::unordered_map<UEObject,Package const *,std::hash<UEObject>,std::equal_to<UEObject>,std::allocator<std::pair<UEObject const ,Package const *>>>::operator[](const UEObject &) Line 401
UnrealFinderTool.exe!PackageDependencyComparer::operator()(const Package & lhs, const Package & rhs) Line 27
It appears some sort of infinite recursion is being reached as there's well over 5k nested instances of PackageDependencyComparer::operator()
being logged. Increasing stack size just results in a longer time before the exception is thrown. I've increased the stack as far as 16GB to see if eventually the sort completes but I had no success there.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.