Skip to content

Instantly share code, notes, and snippets.

@sbtoonz
Created November 14, 2022 01:41

Revisions

  1. sbtoonz revised this gist Nov 14, 2022. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions ARK Signatures
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,4 @@
    ```bool InitSdk()
    bool InitSdk()
    {
    //E8 ? ? ? ? 48 89 1D ? ? ? ? 48 8B C3 48 8B 5C 24 ? 48 83 C4 28 C3 48 8B 5C 24 ?
    auto GNamePat = FindPattern("E8 ? ? ? ? 48 89 1D ? ? ? ? 48 8B C3 48 8B 5C 24 ? 48 83 C4 28 C3 48 8B 5C 24 ?");
    @@ -19,4 +19,4 @@
    UWorld::GWorld = reinterpret_cast<CG::UWorld**>(GWorld);
    return true;
    // return InitSdk(L"ShooterGame.exe", 0x49BD218);
    }```
    }
  2. sbtoonz created this gist Nov 14, 2022.
    22 changes: 22 additions & 0 deletions ARK Signatures
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,22 @@
    ```bool InitSdk()
    {
    //E8 ? ? ? ? 48 89 1D ? ? ? ? 48 8B C3 48 8B 5C 24 ? 48 83 C4 28 C3 48 8B 5C 24 ?
    auto GNamePat = FindPattern("E8 ? ? ? ? 48 89 1D ? ? ? ? 48 8B C3 48 8B 5C 24 ? 48 83 C4 28 C3 48 8B 5C 24 ?");
    if (GNamePat == nullptr)return false;
    auto GNamesAddress = *reinterpret_cast<uint32_t*>(GNamePat + 8);
    uintptr_t GName = (DWORD64)(GNamePat + 12 + GNamesAddress);
    FName::GNames = reinterpret_cast<CG::TNameEntryArray*>(GName);

    auto GObjectPat = FindPattern("48 89 74 24 ? 48 89 74 24 ? E8 ? ? ? ? 48 8B 4C 24 ? F2 0F 10 05 ? ? ? ? F2 0F 11 01 8B 05 ? ? ? ? 89 41 08 0F B7 05 ? ? ? ?");
    auto GObjectOffset = *reinterpret_cast<uint32_t*>(GObjectPat + 226); //array offset
    uintptr_t GObject = (DWORD64)(GObjectPat + 246 + GObjectOffset); //function close
    UObject::GObjects = reinterpret_cast<CG::TUObjectArray*>(GObject);

    auto GWorldPat = FindPattern("48 89 4C 24 ? 48 81 EC ? ? ? ? E8 ? ? ? ? 48 8B 8C 24 ? ? ? ? E8 ? ? ? ? 48 8B 05 ? ? ? ? 48 8B 80 ? ? ? ? 48 83 78 ? ? 74 2C 48 8B 05 ?");
    if (GWorldPat == nullptr) return false;
    auto GWorldAddress = *reinterpret_cast<uint32_t*>(GWorldPat + 76); //object offset
    uintptr_t GWorld = (DWORD64)(GWorldPat + 80 + GWorldAddress); //function close
    UWorld::GWorld = reinterpret_cast<CG::UWorld**>(GWorld);
    return true;
    // return InitSdk(L"ShooterGame.exe", 0x49BD218);
    }```