diff --git a/Dumper/engine.cpp b/Dumper/engine.cpp index e1b4ca1..6f6c96b 100644 --- a/Dumper/engine.cpp +++ b/Dumper/engine.cpp @@ -300,6 +300,65 @@ struct { } Fortnite; static_assert(sizeof(Fortnite) == sizeof(Offsets)); + +struct { + uint16 Stride = 2; + struct { + uint16 Size = 24; + } FUObjectItem; + struct { + uint16 Number = 4; + } FName; + struct { + uint16 Info = 0; + uint16 WideBit = 0; + uint16 LenBit = 6; + uint16 HeaderSize = 2; + } FNameEntry; + struct { + uint16 Index = 0xC; + uint16 Class = 0x10; + uint16 Name = 0x18; + uint16 Outer = 0x20; + } UObject; + struct { + uint16 Next = 0x28; + } UField; + struct { + uint16 SuperStruct = 0x40; + uint16 Children = 0x48; + uint16 ChildProperties = 0x50; + uint16 PropertiesSize = 0x58; + } UStruct; + struct { + uint16 Names = 0x40; + } UEnum; + struct { + uint16 FunctionFlags = 0xB0; + uint16 Func = 0xB0 + 0x28; + } UFunction; + struct { + uint16 Class = 0x8; + uint16 Next = 0x20; + uint16 Name = 0x28; + } FField; + struct { + uint16 ArrayDim = 0x38; + uint16 ElementSize = 0x3C; + uint16 PropertyFlags = 0x40; + uint16 Offset = 0x4C; + uint16 Size = 0x78; + } FProperty; + struct { + uint16 ArrayDim = 0; + uint16 ElementSize = 0; + uint16 PropertyFlags = 0; + uint16 Offset = 0; + uint16 Size = 0; // sizeof(UProperty) + } UProperty; +} TheIsle; +static_assert(sizeof(TheIsle) == sizeof(Offsets)); + struct { void* offsets; // address to filled offsets structure std::pair names; // NamePoolData signature @@ -364,6 +423,13 @@ struct { } return false; } + }, + { + // TheIsleClient-Win64-Shipping + &TheIsle, + {"\x48\x8D\x05\x00\x00\x00\x00\xEB\x13", 9}, + {"\x48\x8B\x05\x00\x00\x00\x00\x48\x8B\x0C\xC8\x48\x8D\x04\xD1\xEB\x03", 17}, + nullptr } }; @@ -376,7 +442,8 @@ std::unordered_map games = { {"DeadByDaylight-Win64-Shipping", &engines[2]}, {"Brickadia-Win64-Shipping", &engines[3]}, {"POLYGON-Win64-Shipping", &engines[4]}, - {"FortniteClient-Win64-Shipping", &engines[5]} + {"FortniteClient-Win64-Shipping", &engines[5]}, + {"TheIsleClient-Win64-Shipping", &engines[6]} }; STATUS EngineInit(std::string game, void* image) {