Skip to content

Commit

Permalink
Added support for the game Scavengers + updated fortnite decryption (g…
Browse files Browse the repository at this point in the history
…uttir14#20)

* Added support for the game Scavengers

* Fixed spacing

* Updated fortnite decryption
  • Loading branch information
Suwup authored Jul 21, 2021
1 parent 3e5d972 commit 04ff2d9
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 5 deletions.
75 changes: 70 additions & 5 deletions Dumper/engine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,64 @@ struct {
} RogueCompany;
static_assert(sizeof(RogueCompany) == 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 + 0x30;
} 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;
} Scavengers;
static_assert(sizeof(Scavengers) == sizeof(Offsets));

struct {
uint16 Stride = 2;
struct {
Expand Down Expand Up @@ -254,6 +312,12 @@ struct {
{"\x48\x8B\x05\x00\x00\x00\x00\x48\x8B\x0C\xC8\x48\x8D\x04\xD1\xEB", 16},
nullptr
},
{ // Scavenger-Win64-Shipping
&Scavengers,
{"\x48\x8D\x0D\x00\x00\x00\x00\xE8\x00\x00\x00\x00\xC6\x05\x00\x00\x00\x00\x01\x0F\x10\x03\x4C\x8D\x44\x24\x20\x48\x8B\xC8", 30},
{"\x48\x8B\x05\x00\x00\x00\x00\x48\x8B\x0C\xC8\x48\x8D\x04\xD1\xEB", 16},
nullptr
},
{ // DeadByDaylight-Win64-Shipping
&DeadByDaylight,
{"\x48\x8D\x35\x00\x00\x00\x00\xEB\x16", 9},
Expand Down Expand Up @@ -290,7 +354,7 @@ struct {
jmp rax
*/
uint8 trampoline[] = { 0x48, 0x89, 0x5C, 0x24, 0x08, 0x57, 0x48, 0x83, 0xEC, 0x20, 0x89, 0xD3, 0x48, 0x89, 0xCF, 0x48, 0xB8, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0xFF, 0xE0 };
*(uint64*)(trampoline + 17) = (uint64)((uint8*)decryptAnsi + 0x46); // https://i.imgur.com/zWtMDar.png
*(uint64*)(trampoline + 17) = (uint64)((uint8*)decryptAnsi + 0x4A); // https://i.imgur.com/zWtMDar.png
Decrypt_ANSI = (ansi_fn)VirtualAlloc(0, sizeof(trampoline), MEM_COMMIT, PAGE_EXECUTE_READWRITE);
if (Decrypt_ANSI) {
memcpy(Decrypt_ANSI, trampoline, sizeof(trampoline));
Expand All @@ -308,10 +372,11 @@ std::unordered_map<std::string, decltype(&engines[0])> games = {
{"SCUM", &engines[0]},
{"PropWitchHuntModule-Win64-Shipping", &engines[0]},
{"HLL-Win64-Shipping", &engines[0]},
{"DeadByDaylight-Win64-Shipping", &engines[1]},
{"Brickadia-Win64-Shipping", &engines[2]},
{"POLYGON-Win64-Shipping", &engines[3]},
{"FortniteClient-Win64-Shipping", &engines[4]}
{"Scavenger-Win64-Shipping", &engines[1]},
{"DeadByDaylight-Win64-Shipping", &engines[2]},
{"Brickadia-Win64-Shipping", &engines[3]},
{"POLYGON-Win64-Shipping", &engines[4]},
{"FortniteClient-Win64-Shipping", &engines[5]}
};

STATUS EngineInit(std::string game, void* image) {
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
- Brickadia
- POLYGON
- SCUM
- Scavengers

### Usage:
```
Expand Down

0 comments on commit 04ff2d9

Please sign in to comment.