Giter Club home page Giter Club logo

dumper-7's Introduction

Dumper-7

SDK Generator for all Unreal Engine games. Supported versions are all of UE4 and UE5.

How to use

  • Compile the dll in x64-Release
  • Inject the dll into your target game
  • The SDK is generated into the path specified by Settings::SDKGenerationPath, by default this is C:\\Dumper-7
  • See UsingTheSDK for a guide to get started, or to migrate from an old SDK.

Support Me

KoFi: https://ko-fi.com/fischsalat
Patreon: https://patreon.com/user?u=119629245

Changelog

Summary:

  • Added TUObjectArrayWrapper which automatically initializes GObjects the first time it's accessed
  • Added predefined member ULevel::Actors to the SDK
  • Added support for more Properties
  • Functions with EFunctionFlags::Static are now automatically called on the classes' DefaultObject
  • Fixed name-collisions between classes/structs, between enums, between members/functions, and between packages
  • Fixed cyclic dependencies
  • Fixed incorrect size/alignment on classes

You can find the full changelog for the new GeneratorRewrite in Changelog.md.

Overriding Offsets

  • Only override any offsets if the generator doesn't find them by itself

  • All overrides are made in Generator::InitEngineCore() inside of Generator.cpp

  • GObjects

    ObjectArray::Init(/*GObjectsOffset*/, /*ChunkSize*/, /*bIsChunked*/);
    /* Make sure only to use types which exist in the sdk (eg. uint8, uint64) */
    InitObjectArrayDecryption([](void* ObjPtr) -> uint8* { return reinterpret_cast<uint8*>(uint64(ObjPtr) ^ 0x8375); });
  • FName::AppendString

    FName::Init(/*FName::AppendStringOffset*/);
  • ProcessEvent

    Off::InSDK::InitPE(/*PEIndex*/);

Issues

If you have any issues using the Dumper, please create an Issue on this repository
and explain the problem in detail.

  • Should your game be crashing while dumping, attach Visual Studios' debugger to the game and inject the Dumper-7.dll in debug-configuration. Then include screenshots of the exception causing the crash, a screenshot of the callstack, as well as the console output.

  • Should there be any compiler-errors in the SDK please send screenshots of them. Please note that only build errors are considered errors, as Intellisense often reports false positives. Make sure to always send screenshots of the code causing the first error, as it's likely to cause a chain-reaction of errors.

  • Should your own dll-project crash, verify your code thoroughly to make sure the error actually lies within the generated SDK.

dumper-7's People

Contributors

fischsalat avatar encryqed avatar gmatrixgames avatar gir489returns avatar midterm-cn avatar samuelsiv avatar k-i-o avatar spuckwaffel avatar xsip avatar mlodyskiny avatar xutaxkamay avatar

Stargazers

ᴅᴊʟᴏʀ3xᴢᴏ avatar Quentin avatar  avatar  avatar  avatar s.k. avatar One avatar 碧翠斯卡洛儿 avatar DRR avatar Yoga Budiman avatar Mao avatar Nils Wiesinger avatar  avatar  avatar Trevor Winn avatar red avatar [redacted] avatar Audrey MP avatar Tomie avatar KingKrouch avatar  avatar  avatar Xerx Lugnov avatar Joey avatar Nasu Ni Furenaide avatar nonamenolife avatar  avatar  avatar Xiangyang Zhang avatar  avatar 初雪 avatar  avatar  avatar S1h4ck avatar  avatar LWBalance avatar  avatar zzb avatar  avatar  avatar Ahmad Thoriq Najahi avatar  avatar Haru avatar  avatar 沙耶 avatar 维Ta命D avatar JokelBaf avatar SPPrague avatar Kg avatar Jim_Di avatar shay avatar Frost avatar  avatar  avatar Pauli Jokela avatar Lok3rn3t avatar Nick088 avatar  avatar Nu avatar Istaroth avatar  avatar 黄昏 avatar  avatar emoose avatar  avatar donya avatar 翻车鱼从不翻车 avatar itsreallyroot avatar  avatar The Melancholy Of Slime avatar Yanis avatar  avatar 1A7V9A avatar  avatar  avatar kaze avatar Cotodama avatar R avatar ONE avatar Layle | Luca avatar  avatar Zangetsu avatar Modstar avatar  avatar InitCool avatar  avatar jmp avatar hhoang97 avatar Lin feng avatar Gktwo avatar  avatar  avatar Lawrence_XS avatar  avatar 0xChrisJL avatar  avatar John Gage Faulkner avatar 啊这. avatar  avatar  avatar

Watchers

 avatar  avatar Zinou avatar  avatar ALISA-EMPRESS  REVERSECODE-TEAM  avatar  avatar  avatar  avatar  avatar clientinfo avatar Tim2023 avatar  avatar  avatar Ryuu avatar Zay avatar

dumper-7's Issues

don't even know how to explain this

sdk on latest fn (ue 5.2, fn 25.11) generates both FortniteGame and FortniteAI files (structs, classes & params), and both of them are using structs from eachother, for example, UAthenaAIBotDebugMiniMapIndicator : public UFortMiniMapIndicator (from FortniteAI_classes) uses UFortMiniMapIndicator from FortniteGame_classes, so it leads to errors like 'SDK::UFortMiniMapIndicator': base class undefined or incomplete type is not allowed, makes it impossible to compile

Generator appears to generate broken enums

For some reason, generator generates enums of type uint8 and then puts bigger values in them, bigger than the type can handle. Here's an example:

enum class EAkSpeakerConfiguration : uint8
{
	Ak_Speaker_Front_Left          = 1,
	Ak_Speaker_Front_Right         = 2,
	Ak_Speaker_Front_Center        = 4,
	Ak_Speaker_Low_Frequency       = 8,
	Ak_Speaker_Back_Left           = 16,
	Ak_Speaker_Back_Right          = 32,
	Ak_Speaker_Back_Center         = 256,
	Ak_Speaker_Side_Left           = 512,
	Ak_Speaker_Side_Right          = 1024,
	Ak_Speaker_Top                 = 2048,
	Ak_Speaker_Height_Front_Left   = 4096,
	Ak_Speaker_Height_Front_Center = 8192,
	Ak_Speaker_Height_Front_Right  = 16384,
	Ak_Speaker_Height_Back_Left    = 32768,
	Ak_Speaker_Height_Back_Center  = 65536,
	Ak_Speaker_Height_Back_Right   = 131072,
	Ak_Speaker_MAX                 = 131073,
};

There are many of them like this.

Generated SDK:
5.1.1-0+++UE5+Release-5.1-Polaris.zip

Plans to dump Mappings as well as SDK?

Since this is more actively maintained than UnrealMappingsDumper for the time being, are there plans to add support for dumping mappings as well as the SDK?

The generator doesn't generate anything on 5.0.3 and 5.1.2 projects

  1. Ship a barebones UE5.0.3 project in x64 release configuration for Windows.
  2. Compile Dumper-7 in x64 Release configuration.
  3. Run the project.
  4. Inject Dumper-7.dll into the barebones project.

Generator shows logs and reports done, but there are no folders and no files created.
Video:
https://github.com/Encryqed/Dumper-7/assets/16989713/a44a9cdb-f4d0-42ad-9cde-6904c5d4558f

Log:

Started Generation [Dumper-7]!

Dumper-7 by me, you & him


Searching for GObjects...

Found FChunkedFixedUObjectArray GObjects at offset 0x7bc7c70

Found FName::AppendString at Offset 0x1a3e200

Off::UStruct::Children: 48
Off::UField::Next: 28
Off::UStruct::SuperStruct: 40
Off::UStruct::Size: 58
Off::UClass::CastFlags: d8
Game uses FProperty system

Off::UStruct::ChildProperties: 50
Off::UClass::ClassDefaultObject: 110
Off::UEnum::Names: 40
Off::UFunction::FunctionFlags: b0

Off::UProperty::ElementSize: 3c
Off::UProperty::ArrayDim: 38
Off::UProperty::Offset_Internal: 4c
Off::UProperty::PropertyFlags: 40
UPropertySize: 78

Off::UArrayProperty::Inner: 78
Off::USetProperty::ElementProp: 78
Off::UMapProperty::Base: 78

PE-Offset: 0x1ca07b0
PE-Index: 0x4b

GameName: UE53rdPersonShooter
GameVersion: 5.0.3-20979098+++UE5+Release-5.0



[=] Done [=]

Also tried to inject it into a real game on 5.1.2 with the same result. Same result with a different injector.

I do have write access to all of these folders and other generators like UE4SS do successfully generate headers for UHT.

Generated SDK problems

Recently built the dumper at commit 2f8743d

and these errors have appeared in basic.hpp:
There are duplicate functions in this image and the EClassFlags enum is not in the right place:
Error Image

There is also this error inside of CoreUObject_classes.hpp:
Error Image2

skunked

fix yo goddamn sdk dumper!!!! 12.41 crashg!!!!!!!!! omg so bad
😡😡😡😡😡😡

8.51 dump issues

LoginId:c29ae7924c473cd763a05e970ce8e17e
EpicAccountId:f8c93c8174944b7088aab0920a8ab9fa

Unhandled exception

Dumper_7!UEObject::GetIndex() [E:\Dumper-7-main\Dumper\UnrealObjects.cpp:25]
Dumper_7!ObjectArray::Init() [E:\Dumper-7-main\Dumper\ObjectArray.cpp:176]
Dumper_7!Generator::Init() [E:\Dumper-7-main\Dumper\Generator.cpp:11]
Dumper_7!MainThread() [E:\Dumper-7-main\Dumper\Main.cpp:35]
kernel32
ntdll

Missing File

Hello it seems that SDK/Border_ItemInfo_Blank_DkBlue_structs.hpp don't exist in my folder.

image
image

SDK Crashes

When you use the sdk in a project the dll will not work because the SDK fails

Crash on getting class static

Hey,
I crash when i try to get all this adress

if (!this->MathLib) this->MathLib = (SDK::UKismetMathLibrary*)SDK::UKismetMathLibrary::GetDefaultObj();
if (!this->KismetSystemLib) this->KismetSystemLib = (SDK::UKismetSystemLibrary*)SDK::UKismetSystemLibrary::GetDefaultObj();
if (!this->GPStatics) this->GPStatics = (SDK::UGameplayStatics*)SDK::UGameplayStatics::GetDefaultObj();

or

if (!this->MathLib) this->MathLib = (SDK::UKismetMathLibrary*)SDK::UKismetMathLibrary::StaticClass();
if (!this->KismetSystemLib) this->KismetSystemLib = (SDK::UKismetSystemLibrary*)SDK::UKismetSystemLibrary::StaticClass();
if (!this->GPStatics) this->GPStatics = (SDK::UGameplayStatics*)SDK::UGameplayStatics::StaticClass();

SDK: https://anonymfile.com/zDV0/sdk.rar

Like you tell me i set the offset or maybe it's not what you tell me.

Missing Files

Trying to use FProperty branch on 12.10 but theres missing Border/TextStyle Files
image

Wrong offsets on DBD

Hello i just tried generating an SDK for Dead by Daylight, i get a lot of errors in the static_assert that offsets are wrong? Is there a way to fix it inside my cheat or do i need to use manual overrides in the Generator.cpp?

Screenshot 2023-10-24 170508

Error On Unreal 4.26.1

idk if you already fixed this, but it gave me an error. However, I have already fixed it. :/
image

Alignment and struct size bug

Check out these structs:

// 0x40 (0x2D8 - 0x298)
// Class Polaris.Barrier
class ABarrier : public AActor
{
public:
	TArray<struct FWallBarrierGroup>             WallBarrierGroups;                                 // 0x298(0x10)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, NativeAccessSpecifierPublic)
	TArray<struct FBarrierGroup>                 BarrierGroups;                                     // 0x2A8(0x10)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, NativeAccessSpecifierPublic)
	TArray<struct FWallBarrierGroup>             WallCullBackGroups;                                // 0x2B8(0x10)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, NativeAccessSpecifierPublic)
	TArray<struct FBarrierInitializeRequestOne>  InitializeRequest;                                 // 0x2C8(0x10)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, ContainsInstancedReference, NativeAccessSpecifierPublic)

	static class UClass* StaticClass();
	static class ABarrier* GetDefaultObj();

	struct FBarrierInitializeRequestOne PopInitializeRequest();
};

// 0xD9 (0x3B1 - 0x2D8)
// BlueprintGeneratedClass BP_Barrier.BP_Barrier_C
class ABP_Barrier_C : public ABarrier
{
public:
	struct FPointerToUberGraphFrame              UberGraphFrame;                                    // 0x2D8(0x8)(ZeroConstructor, Transient, DuplicateTransient)
	class USceneComponent*                       DefaultSceneRoot;                                  // 0x2E0(0x8)(BlueprintVisible, ZeroConstructor, InstancedReference, NonTransactional, NoDestructor, HasGetValueTypeHash)
	double                                       MinDistance;                                       // 0x2E8(0x8)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	double                                       MaxDistance;                                       // 0x2F0(0x8)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	double                                       MinHeight;                                         // 0x2F8(0x8)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	double                                       MaxHeight;                                         // 0x300(0x8)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	double                                       FloorHeightFB;                                     // 0x308(0x8)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	double                                       FloorBarrierAlphaOffset;                           // 0x310(0x8)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	TArray<class UMaterialInstanceDynamic*>      MIDs;                                              // 0x318(0x10)(Edit, BlueprintVisible, DisableEditOnInstance)
	TArray<class ABP_WallBarrierCamera_C*>       OverlapVolumes_DEPLICATED;                         // 0x328(0x10)(Edit, BlueprintVisible, DisableEditOnTemplate)
	double                                       OverlapVolumeCount_DEPLICATED;                     // 0x338(0x8)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	double                                       PrevOverlapVolumeCount_DEPLICATED;                 // 0x340(0x8)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	bool                                         UseOverlapVolumes_DEPLICATED;                      // 0x348(0x1)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	uint8                                        Pad_1C7A[0x7];                                     // Fixing Size After Last Property  [ Dumper-7 ]
	TArray<class UMaterialInstanceDynamic*>      EffectMIDs;                                        // 0x350(0x10)(Edit, BlueprintVisible, DisableEditOnInstance)
	double                                       FloorHeight;                                       // 0x360(0x8)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	bool                                         EnabledCullBack;                                   // 0x368(0x1)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	bool                                         QueuedVisibility;                                  // 0x369(0x1)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	bool                                         Queueing;                                          // 0x36A(0x1)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	bool                                         Initialized;                                       // 0x36B(0x1)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	uint8                                        Pad_1C7B[0x4];                                     // Fixing Size After Last Property  [ Dumper-7 ]
	double                                       DistanceScale;                                     // 0x370(0x8)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	double                                       AlphaOffset;                                       // 0x378(0x8)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	struct FVector                               FacadeVector;                                      // 0x380(0x18)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	bool                                         LocalFacade;                                       // 0x398(0x1)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	uint8                                        Pad_1C7C[0x7];                                     // Fixing Size After Last Property  [ Dumper-7 ]
	double                                       AlphaOffset1;                                      // 0x3A0(0x8)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	int32                                        Step;                                              // 0x3A8(0x4)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	int32                                        NumReplaceTimeSlice;                               // 0x3AC(0x4)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	bool                                         EveryBattle_StageReset;                            // 0x3B0(0x1)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
};

// 0xF (0x3C0 - 0x3B1)
// BlueprintGeneratedClass BP_BarrierCol1.BP_BarrierCol1_C
class ABP_BarrierCol1_C : public ABP_Barrier_C
{
public:
	uint8                                        Pad_1035[0x7];                                     // Fixing Size After Last Property  [ Dumper-7 ]
	class UBoxComponent*                         Box;                                               // 0x3B8(0x8)(BlueprintVisible, ZeroConstructor, InstancedReference, NonTransactional, NoDestructor, HasGetValueTypeHash)

	static class UClass* StaticClass();
	static class ABP_BarrierCol1_C* GetDefaultObj();

};

I'm interested in the ABP_BarrierCol1_C::Box member. It's commented by the dumper offset of 0x3B8 is correct: I verified it manually with reclass.

But the tests won't pass here:

static_assert(offsetof(ABP_BarrierCol1_C, Box) == 0x3B8);
static_assert(sizeof ABP_BarrierCol1_C == 0x3C0);

The reason they won't pass is because size of ABP_Barrier_C is actually 0x3B8, because it has its' last member at offset 0x3B0: bool EveryBattle_StageReset, and so it's size becomes 0x3B1, but then the compiler aligns struct's size to be 0x3B8. But then at the start of ABP_BarrierCol1_C it also adds 7 bytes of padding, and the offset of the Box becomes 0x3C0 and the size of ABP_BarrierCol1_C becomes 0x3C8.

The SDK dumper reports the size of ABP_Barrier_C to be 0x3B1. I also verified it manually and it does report 0x3B1 in the reflection system. But I doubt it is, since the default on x64 is to align structs bigger than 8 by 16, align pointers by 8, etc.

I don't think this bug was present in the original Kn4cker's SDK generator. So whatever algorithm he wrote to add paddings should also work here correctly.

Generator generates structs with the same names, which causes struct redefinition errors

2 examples:
In file AB_SKT_CH_base_msl_wait_structs.hpp:

// 0x0 (0x1 - 0x1)
// ScriptStruct AB_SKT_CH_base_msl_wait.AB_SKT_CH_base_msl_wait_C.AnimBlueprintGeneratedMutableData
struct FAnimBlueprintGeneratedMutableData : public FAnimBlueprintMutableData
{
public:
};

}

Then in file AB_SKT_CH_base_msl_structs.hpp:

// 0x0 (0x1 - 0x1)
// ScriptStruct AB_SKT_CH_base_msl.AB_SKT_CH_base_msl_C.AnimBlueprintGeneratedMutableData
struct FAnimBlueprintGeneratedMutableData : public FAnimBlueprintMutableData
{
public:
};

}

This causes struct redefinition error: Error C2011 'SDK::FAnimBlueprintGeneratedMutableData': 'struct' type redefinition.

These are just 2, there are like 20 of them and other FAnimBlueprintGeneratedMutableData are not empty. They're only used inside their respective classes, so I managed to fix the name clashes by adding name of the class before them: AB_SKT_CH_base_msl_FAnimBlueprintGeneratedMutableData.

A fix for a generator could be just this:
• Keep a list with all struct names.
• Once there's more than just 1 struct with the same name detected, prepend the name of the class to both of them.

Here's the generated SDK:
5.1.1-0+++UE5+Release-5.1-Polaris.zip

worked well

is possible to generate json format for dumps.host ?

how can i watch UDataTable details data

class UDataTable : public UObject
{
public:
class UScriptStruct* RowStruct; // 0x28(0x8)(Edit, ZeroConstructor, EditConst, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 Pad_2199[0x50]; // Fixing Size After Last Property [ Dumper-7 ]
uint8 bStripFromClientBuilds : 1; // Mask: 0x1, PropSize: 0x10x80(0x1)(Edit, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 bIgnoreExtraFields : 1; // Mask: 0x2, PropSize: 0x10x80(0x1)(Edit, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 bIgnoreMissingFields : 1; // Mask: 0x4, PropSize: 0x10x80(0x1)(Edit, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 BitPad_103 : 5; // Fixing Bit-Field Size [ Dumper-7 ]
uint8 Pad_21B8[0x7]; // Fixing Size After Last Property [ Dumper-7 ]
class FString ImportKeyField; // 0x88(0x10)(Edit, ZeroConstructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
bool InInitialLoadOrDestruction; // 0x98(0x1)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 Pad_21B9[0x1F]; // Fixing Size Of Struct [ Dumper-7 ]

static class UClass* StaticClass();
static class UDataTable* GetDefaultObj();

};

Can't get static classes

i was trying to get the static class in my internal but it gives me no result

/*Objects & Names inits*/

auto GStatic = (SDK::UGameplayStatics*)SDK::UGameplayStatics::StaticClass();/// 0000000000

but when i try to get those static classes on the dumper it gives me results

UEClass GStatic = ObjectArray::FindClassFast("GameplayStatics"); /// 000000002D064E40

Crashing when generating SDK for towerunite

Compiling in release-x64

when I inject the game crashes sometimes before generating anything in 'C:/dumper-7',
sometimes it will generate some of the SDK but every time it does it is really broken.

"Fatal Error!" crash

I am trying to use this on a random pre-alpha game called Astro, it uses UE 5.2 and keeps giving me this error:
image

I don't know if it matters or not but the game was distributed as a development build.
I have tried using both an older commit (idk which, I built it a few weeks ago) and the most recent e6dde46

12.41 dump issues

12.41 dump aint compiling, class redefinition in files that start with s12 and intro files
getsocketlocation func in mesh crashes my game (uworld is good, i use the initgobjects func before everything)

Getting a million errors

I'm getting many errors with the same issue "incomplete type is not allowed", how do I fix this?

Crash when getting class

Hi,

When i want get UGameplayStatics or any class in engine the game crash.

static inline SDK::UGameplayStatics* GPStatics = nullptr;
//---
if (!this->GPStatics) this->GPStatics = (SDK::UGameplayStatics*)SDK::UGameplayStatics::StaticClass();

I change like in this issue : #52

static inline SDK::UGameplayStatics* GPStatics = nullptr;
//---
if (!this->GPStatics) this->GPStatics = (SDK::UGameplayStatics*)SDK::UGameplayStatics::GetDefaultObj();

And it crash too.

Thx for any reply.

Incorrect implementation of StaticClass for Blueprint classes

At the moment current implementation to get the class is:

class UClass* ABP_CharacterLightController_C::StaticClass()
{
	static class UClass* Clss = nullptr;

	if (!Clss)
		Clss = UObject::FindClassFast("BP_CharacterLightController_C");

	return Clss;
}

It is correct for C++ classes, because C++ classes get loaded at the start and never get unloaded from memory. However, blueprint classes might and do get loaded and then unloaded from memory when all objects of that class get destroyed. In my case it's on level load and unload.

So, when I first get the static class when I'm on the level, it works. But after levels get unloaded and then loaded back, the blueprint class has a different pointer and this pointer is no longer valid.

When I change the code to this:

class UClass* ABP_CharacterLightController_C::StaticClass()
{
	return UObject::FindClassFast("BP_CharacterLightController_C");
}

The bug disappears, because it always looks for the class.

For a quick fix, I did find and replace in the SDK project. Find: (class UClass\* .BP_.*?::StaticClass\(\)\r\n{\r\n)(\s*static class UClass\* Clss = nullptr;\r\n)(.*?)(\s*if \(!Clss\)\r\n\s)(\s) and replace with $1$5UClass* , this appears to fix all the BP classes in the project.

How do I use the SDK?

Sorry for the dumb question.
But there is any tutorial about making a DLL or something with the SDK? Like how to correctly add it into the project.
I tried but I have a lot of errors.
image
This is the only one that I couldn't fix.

9.00 crashes when using sdk

When I try to print the address of any object I get 0000000, and if i use GetFullName or GetName the function crashes

Here is the code and the place it crashes at is when i print with getfullname in dllmain.cpp
image

here is where GetFullName() is
image

and the crash log reads:

LoginId:ced81d57431a50cab505e3a8f66ab5e9
EpicAccountId:

Unhandled exception

FortniteSDK!SDK::UObject::GetFullName() [pathtoproject\SDK\CoreUObject_functions.cpp:28]
FortniteSDK!DLLMain() [pathtoproject\dllmain.cpp:23]
kernel32
ntdll

GetRawString Crashing

Using GetRawString crashes on some Names, i'm not sure yet why i can get some names and some don't but it appears to be an issue with AppendString, is there an alternative to use maybe? Im using it on Dead by Daylight which is EAC protected if thats related

SDK Generation for Foxhole Crashes

it seems to crash on StringifyObjectFlags in UnrealObjects.cpp

probably useless info but ill add it for context

i have tried using reclass and reversing all the major structs but the game seems quite different from the base 4.24 engine
despite this using corrm's tool seems to generate a sdk mind you its missing alot but it seems to work using the base 4,24 structs
either this game is just fucked or i am just retarded and fell into a pitfall somewhere

thank you

made my compiler crash 7 times in a row
+rep

7.40 dump issue

image

LoginId:27413c3e4e9d0c9a67cdc781c4707607
EpicAccountId:30fe06b94fce41e1a771994cd923a40d

Unhandled exception

Dumper_7!ObjectArray::FindObjectFast() [C:\Users\e\source\repos\Dumper-7-main\Dumper\ObjectArray.cpp:365]
Dumper_7!ObjectArray::GetAllPackages() [C:\Users\e\source\repos\Dumper-7-main\Dumper\ObjectArray.cpp:322]
Dumper_7!Generator::GenerateSDK() [C:\Users\e\source\repos\Dumper-7-main\Dumper\Generator.cpp:36]
Dumper_7!MainThread() [C:\Users\e\source\repos\Dumper-7-main\Dumper\Main.cpp:57]
kernel32
ntdll

Crash when generating SDK for The Culling

When generating the SDK for The Culling (a defunct UE 4.15 game), the process suddenly exits during generation.
I can see a bunch of SDK files being generated (and they look very promising, digging out fields that no other SDK generator has found me thus far), but SDK.hpp is never generated.

I'm launching the game with EAC disabled.

I'm not entirely sure how to debug this properly because I don't know enough about how the SDK generator works yet. When attaching a debugger it breaks here:
afbeelding

Exception thrown at 0x00007FF921EEA8D6 (Dumper-7.dll) in Victory.exe: 0xC0000005: Access violation reading location 0x0000000000000008.

(I'm guessing it's actually GetFlags that's throwing the exception and it's getting inlined)

This is the call-stack:
afbeelding

(While I'm here, I might as well ask whether the moment of injection matters. Right now, I'm injecting the dll after the game has entirely loaded. I'm assuming it needs the entities loaded that I want to have in the SDK. Is that actually needed or can I inject the dll on process start already?)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.