Skip to content
MPGHThe Dark Arts
/
RegisterLog in
Forum
Community
What's NewLatest posts across the boardTrendingHottest threads right nowSubscribedThreads you follow
Discussion
GeneralIntroductionsEntertainmentDebate FortFlaming & Rage
Board
News & AnnouncementsMPGH TimesSuggestions & HelpGiveaways
More Sections
Art & Graphic DesignProgrammingHackingCryptocurrency
Hacks & Cheats
Games
ValorantCS2 / CS:GOCall of Duty / WarzoneFortniteApex LegendsEscape From Tarkov
+14 moreLeague of LegendsGTA VMinecraftRustROTMGBattlefieldTroveBattleOnCombat ArmsCrossFireBlackshotRuneScapeDayZDead by Daylight
Resources
Game Hacking TutorialsReverse EngineeringGeneral Game HackingAnti-CheatConsole Game Hacking
Tools
Game Hacking ToolsTrainers & CheatsHack/Release NewsNew
Submit a release →Share your cheat, tool, or config with the community.
AINEW
AI Tools
General & DiscussionPrompt EngineeringLLM JailbreaksHotAI Agents & AutomationLocal / Open Models
AI × Gaming
AI Aimbots & VisionML Anti-CheatGame Bots & Automation
Create
AI Coding / Vibe CodingAI Art & MediaAI Voice & TTS
The AI frontier →Where game hacking meets modern machine learning. Jump in.
Marketplace
Buy & Sell
SellingBuyingTradingUser Services
Trust & Safety
Middleman LoungeMarketplace TalkVouch Copy Profiles
Money
Cryptocurrency TalkCurrency ExchangeWork & Job Offers
Start selling →List accounts, services, and goods. Use the middleman to trade safe.
MPGH The Dark Arts

A community for offensive security research, reverse engineering, and AI.

Community

ForumMarketplaceSearch

Account

RegisterLog in

Legal

Privacy PolicyForum RulesHelp & FAQ
© 2026 MPGH · All rights reserved.Built by the community, for the community. For educational purposes onlyContent is shared for security research and education — we don't condone illegal use. You're responsible for complying with applicable laws. Use at your own risk.
Home › Forum › MultiPlayer Game Hacks & Cheats › CrossFire Hacks & Cheats › CrossFire Hack Coding / Programming / Source Code › Offset Finder

Offset Finder

Posts 1–11 of 11 · Page 1 of 1
JA
jayjay153
Offset Finder




:: Code ::

Code:
if (ImGui::Begin("Developer Mode", NULL, ImVec2(0, 0), 1.0f, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoCollapse))
{
    ImGui::Text("Press P for Next Offset");
    ImGui::Text("Press O for Previous Offset");

    const int count = 100000;
    static int OffsetAdded = 0;
    static DWORD OffsetValue[count];
    static DWORD Offset[count];
    static bool EnableHack[count];

    const char* items[] = { "CPlayerClntBase" , "IClientShellStub" };
    struct FuncHolder { static bool ItemGetter(void* data, int idx, const char** out_str) { *out_str = ((const char**)data)[idx]; return true; } };
    static int item_current_4 = 0;
    ImGui::Combo("Base", &item_current_4, &FuncHolder::ItemGetter, items, IM_ARRAYSIZE(items));

    int max_size = 19;
    int current_offset = 0x1;
    static int offsetlist = 1;

    static int old_item_current_4 = item_current_4;
    if (old_item_current_4 != item_current_4)
    {
        current_offset = 1;
        offsetlist = 1;
        OffsetAdded = 0;
        old_item_current_4 = item_current_4;
        Sleep(100);
    }

    bool DoInGameOnly = true;

    if (!AOE::g_LTClient->pIClientShellStub->InGame && item_current_4 == 0)
        DoInGameOnly = false;

    DWORD pCLTPlayerClient = AOE::g_Engine()->GetIClientShellStub()->GetICLientEntity()->GetBaseAddress();

    if (item_current_4 == 1)
        pCLTPlayerClient = AOE::g_Engine()->GetIClientShellStub()->GetBaseAddress();

    if (pCLTPlayerClient != NULL && DoInGameOnly)
    {
        if (GetAsyncKeyState('P') & 1) offsetlist += 1;
        if (GetAsyncKeyState('O') & 1) offsetlist -= 1;

        if (offsetlist < 1) offsetlist = 1;
        if (offsetlist > count) offsetlist = count;

        current_offset = offsetlist * max_size;

        for (int i = current_offset - (max_size - 1); i < current_offset; i++)
        {
            std::stringstream ss;
            ss << std::hex << i;
            std::string res(ss.str());

            const char * txt1 = res.c_str();
            char * equals = " = ";
            char * valll = "";
            auto dataaa = Memory->ReadProcess<DWORD>(pCLTPlayerClient + i);

            if (dataaa != NULL)
                valll = Tools->dwordtochar(dataaa, "");

            char * sites = (char *)malloc(1 + strlen(txt1) + strlen(equals) + strlen(valll));

            strcpy(sites, txt1);
            strcat(sites, equals);
            strcat(sites, valll);

            ImGui::Text(sites);
            ImGui::SameLine();

            if (ImGui::Button(Tools->inttochar(i, "> ")))
            {
                OffsetValue[OffsetAdded] = Memory->ReadProcess<DWORD>(pCLTPlayerClient + i);
                Offset[OffsetAdded] = i;
                EnableHack[i] = false;
                OffsetAdded += 1;
            }
        }
    }
    else
        OffsetAdded = 0;

    if (OffsetAdded > 0 && pCLTPlayerClient != NULL)
    {
        if (ImGui::Begin("Memory", NULL, ImVec2(0, 0), 1.0f, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoCollapse))
        {
            for (int i = 0; i < OffsetAdded; i++)
            {
                std::stringstream ss;
                ss << std::hex << Offset[i];
                std::string res(ss.str());

                const char * txt1 = res.c_str();
                char * equals = " = ";
                char * sites = (char *)malloc(1 + strlen(txt1) + strlen(equals));

                strcpy(sites, txt1);
                strcat(sites, equals);

                ImGui::Checkbox(txt1, &EnableHack[i]);
                ImGui::SameLine();

                int aaa = static_cast<int>(OffsetValue[i]);
                ImGui::InputInt(Tools->inttochar(i, ""), &aaa);

                OffsetValue[i] = static_cast<DWORD>(aaa);

                if (EnableHack[i])
                    Memory->FastWrite<DWORD>(pCLTPlayerClient + Offset[i], OffsetValue[i]);
            }

            if (ImGui::Button("Reset"))
            {
                OffsetAdded = 0;

                for (int i = 1; i < count; i++) {
                    OffsetValue[i] = NULL;
                    Offset[i] = NULL;
                    EnableHack[i] = false;
                }
            }

            ImGui::End();
        }
    }

    if (ImGui::Button("Close"))
    {
        Crossfire->devmocde = false;

        OffsetAdded = 0;

        for (int i = 1; i < count; i++) {
            OffsetValue[i] = NULL;
            Offset[i] = NULL;
            EnableHack[i] = false;
        }
    }
    ImGui::SameLine();
    if (ImGui::Button("FIRST"))
    {
        current_offset = 1;
        offsetlist = 1;
    }
    ImGui::SameLine();
    if (ImGui::Button("PREV 100"))
    {
        offsetlist -= 50;
        if (offsetlist < 0)
            offsetlist = 1;
    }
    ImGui::SameLine();
    if (ImGui::Button("NEXT 100"))
    {
        offsetlist += 50;
    }

    ImGui::End();

    //Credits :: ocornut
}


#1 · edited 7y ago · 7y ago
RamoXO
RamoXO
Decent and much useful! Good work
#2 · 7y ago
[K]akashi
[K]akashi
i want something just like this ♥
Greatest share
#3 · 7y ago
AK
akbargain
Best CF tool i've ever seen so far. It's like a double agent c.e. inside cf haha.
#4 · edited 7y ago · 7y ago
AB
abyan
Quote Originally Posted by jayjay153 View Post




:: Code ::

Code:
if (ImGui::Begin("Developer Mode", NULL, ImVec2(0, 0), 1.0f, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoCollapse))
{
    ImGui::Text("Press P for Next Offset");
    ImGui::Text("Press O for Previous Offset");

    const int count = 100000;
    static int OffsetAdded = 0;
    static DWORD OffsetValue[count];
    static DWORD Offset[count];
    static bool EnableHack[count];

    const char* items[] = { "CPlayerClntBase" , "IClientShellStub" };
    struct FuncHolder { static bool ItemGetter(void* data, int idx, const char** out_str) { *out_str = ((const char**)data)[idx]; return true; } };
    static int item_current_4 = 0;
    ImGui::Combo("Base", &item_current_4, &FuncHolder::ItemGetter, items, IM_ARRAYSIZE(items));

    int max_size = 19;
    int current_offset = 0x1;
    static int offsetlist = 1;

    static int old_item_current_4 = item_current_4;
    if (old_item_current_4 != item_current_4)
    {
        current_offset = 1;
        offsetlist = 1;
        OffsetAdded = 0;
        old_item_current_4 = item_current_4;
        Sleep(100);
    }

    bool DoInGameOnly = true;

    if (!AOE::g_LTClient->pIClientShellStub->InGame && item_current_4 == 0)
        DoInGameOnly = false;

    DWORD pCLTPlayerClient = AOE::g_Engine()->GetIClientShellStub()->GetICLientEntity()->GetBaseAddress();

    if (item_current_4 == 1)
        pCLTPlayerClient = AOE::g_Engine()->GetIClientShellStub()->GetBaseAddress();

    if (pCLTPlayerClient != NULL && DoInGameOnly)
    {
        if (GetAsyncKeyState('P') & 1) offsetlist += 1;
        if (GetAsyncKeyState('O') & 1) offsetlist -= 1;

        if (offsetlist < 1) offsetlist = 1;
        if (offsetlist > count) offsetlist = count;

        current_offset = offsetlist * max_size;

        for (int i = current_offset - (max_size - 1); i < current_offset; i++)
        {
            std::stringstream ss;
            ss << std::hex << i;
            std::string res(ss.str());

            const char * txt1 = res.c_str();
            char * equals = " = ";
            char * valll = "";
            auto dataaa = Memory->ReadProcess<DWORD>(pCLTPlayerClient + i);

            if (dataaa != NULL)
                valll = Tools->dwordtochar(dataaa, "");

            char * sites = (char *)malloc(1 + strlen(txt1) + strlen(equals) + strlen(valll));

            strcpy(sites, txt1);
            strcat(sites, equals);
            strcat(sites, valll);

            ImGui::Text(sites);
            ImGui::SameLine();

            if (ImGui::Button(Tools->inttochar(i, "> ")))
            {
                OffsetValue[OffsetAdded] = Memory->ReadProcess<DWORD>(pCLTPlayerClient + i);
                Offset[OffsetAdded] = i;
                EnableHack[i] = false;
                OffsetAdded += 1;
            }
        }
    }
    else
        OffsetAdded = 0;

    if (OffsetAdded > 0 && pCLTPlayerClient != NULL)
    {
        if (ImGui::Begin("Memory", NULL, ImVec2(0, 0), 1.0f, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoCollapse))
        {
            for (int i = 0; i < OffsetAdded; i++)
            {
                std::stringstream ss;
                ss << std::hex << Offset[i];
                std::string res(ss.str());

                const char * txt1 = res.c_str();
                char * equals = " = ";
                char * sites = (char *)malloc(1 + strlen(txt1) + strlen(equals));

                strcpy(sites, txt1);
                strcat(sites, equals);

                ImGui::Checkbox(txt1, &EnableHack[i]);
                ImGui::SameLine();

                int aaa = static_cast<int>(OffsetValue[i]);
                ImGui::InputInt(Tools->inttochar(i, ""), &aaa);

                OffsetValue[i] = static_cast<DWORD>(aaa);

                if (EnableHack[i])
                    Memory->FastWrite<DWORD>(pCLTPlayerClient + Offset[i], OffsetValue[i]);
            }

            if (ImGui::Button("Reset"))
            {
                OffsetAdded = 0;

                for (int i = 1; i < count; i++) {
                    OffsetValue[i] = NULL;
                    Offset[i] = NULL;
                    EnableHack[i] = false;
                }
            }

            ImGui::End();
        }
    }

    if (ImGui::Button("Close"))
    {
        Crossfire->devmocde = false;

        OffsetAdded = 0;

        for (int i = 1; i < count; i++) {
            OffsetValue[i] = NULL;
            Offset[i] = NULL;
            EnableHack[i] = false;
        }
    }
    ImGui::SameLine();
    if (ImGui::Button("FIRST"))
    {
        current_offset = 1;
        offsetlist = 1;
    }
    ImGui::SameLine();
    if (ImGui::Button("PREV 100"))
    {
        offsetlist -= 50;
        if (offsetlist < 0)
            offsetlist = 1;
    }
    ImGui::SameLine();
    if (ImGui::Button("NEXT 100"))
    {
        offsetlist += 50;
    }

    ImGui::End();

    //Credits :: ocornut
}


so COOL ty for sharing
#5 · 7y ago
SE
Serendipity21
inttochar ? and dwordtochar ?
#6 · 7y ago
VA
vaisefud3
Or you can just use normal d3d...
It's hard, but not impossible

#7 · 7y ago
JA
jayjay153
Quote Originally Posted by vaisefud3 View Post
Or you can just use normal d3d...
It's hard, but not impossible

Good Job
#8 · 7y ago
OM
oMega_Pie
Quote Originally Posted by jayjay153 View Post
Good Job
How did you retrieved the RTTI (Runtime Type Info) from base pointer? I love this project. @jayjay154
#9 · 7y ago
_Mike92
_Mike92
Quote Originally Posted by oMega_Pie View Post
How did you retrieved the RTTI (Runtime Type Info) from base pointer? I love this project. @jayjay154
check reclass src
#10 · 7y ago
PH
philljones0022
Quote Originally Posted by jayjay153 View Post




:: Code ::

Code:
if (ImGui::Begin("Developer Mode", NULL, ImVec2(0, 0), 1.0f, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoCollapse))
{
    ImGui::Text("Press P for Next Offset");
    ImGui::Text("Press O for Previous Offset");

    const int count = 100000;
    static int OffsetAdded = 0;
    static DWORD OffsetValue[count];
    static DWORD Offset[count];
    static bool EnableHack[count];

    const char* items[] = { "CPlayerClntBase" , "IClientShellStub" };
    struct FuncHolder { static bool ItemGetter(void* data, int idx, const char** out_str) { *out_str = ((const char**)data)[idx]; return true; } };
    static int item_current_4 = 0;
    ImGui::Combo("Base", &item_current_4, &FuncHolder::ItemGetter, items, IM_ARRAYSIZE(items));

    int max_size = 19;
    int current_offset = 0x1;
    static int offsetlist = 1;

    static int old_item_current_4 = item_current_4;
    if (old_item_current_4 != item_current_4)
    {
        current_offset = 1;
        offsetlist = 1;
        OffsetAdded = 0;
        old_item_current_4 = item_current_4;
        Sleep(100);
    }

    bool DoInGameOnly = true;

    if (!AOE::g_LTClient->pIClientShellStub->InGame && item_current_4 == 0)
        DoInGameOnly = false;

    DWORD pCLTPlayerClient = AOE::g_Engine()->GetIClientShellStub()->GetICLientEntity()->GetBaseAddress();

    if (item_current_4 == 1)
        pCLTPlayerClient = AOE::g_Engine()->GetIClientShellStub()->GetBaseAddress();

    if (pCLTPlayerClient != NULL && DoInGameOnly)
    {
        if (GetAsyncKeyState('P') & 1) offsetlist += 1;
        if (GetAsyncKeyState('O') & 1) offsetlist -= 1;

        if (offsetlist < 1) offsetlist = 1;
        if (offsetlist > count) offsetlist = count;

        current_offset = offsetlist * max_size;

        for (int i = current_offset - (max_size - 1); i < current_offset; i++)
        {
            std::stringstream ss;
            ss << std::hex << i;
            std::string res(ss.str());

            const char * txt1 = res.c_str();
            char * equals = " = ";
            char * valll = "";
            auto dataaa = Memory->ReadProcess<DWORD>(pCLTPlayerClient + i);

            if (dataaa != NULL)
                valll = Tools->dwordtochar(dataaa, "");

            char * sites = (char *)malloc(1 + strlen(txt1) + strlen(equals) + strlen(valll));

            strcpy(sites, txt1);
            strcat(sites, equals);
            strcat(sites, valll);

            ImGui::Text(sites);
            ImGui::SameLine();

            if (ImGui::Button(Tools->inttochar(i, "> ")))
            {
                OffsetValue[OffsetAdded] = Memory->ReadProcess<DWORD>(pCLTPlayerClient + i);
                Offset[OffsetAdded] = i;
                EnableHack[i] = false;
                OffsetAdded += 1;
            }
        }
    }
    else
        OffsetAdded = 0;

    if (OffsetAdded > 0 && pCLTPlayerClient != NULL)
    {
        if (ImGui::Begin("Memory", NULL, ImVec2(0, 0), 1.0f, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoCollapse))
        {
            for (int i = 0; i < OffsetAdded; i++)
            {
                std::stringstream ss;
                ss << std::hex << Offset[i];
                std::string res(ss.str());

                const char * txt1 = res.c_str();
                char * equals = " = ";
                null's brawl apk * sites = (char *)malloc(1 + strlen(txt1) + strlen(equals));

                strcpy(sites, txt1);
                strcat(sites, equals);

                ImGui::Checkbox(txt1, &EnableHack[i]);
                ImGui::SameLine();

                int aaa = static_cast<int>(OffsetValue[i]);
                ImGui::InputInt(Tools->inttochar(i, ""), &aaa);

                OffsetValue[i] = static_cast<DWORD>(aaa);

                if (EnableHack[i])
                    Memory->FastWrite<DWORD>(pCLTPlayerClient + Offset[i], OffsetValue[i]);
            }

            if (ImGui::Button("Reset"))
            {
                OffsetAdded = 0;

                for (int i = 1; i < count; i++) {
                    OffsetValue[i] = NULL;
                    Offset[i] = NULL;
                    EnableHack[i] = false;
                }
            }

            ImGui::End();
        }
    }

    if (ImGui::Button("Close"))
    {
        Crossfire->devmocde = false;

        OffsetAdded = 0;

        for (int i = 1; i < count; i++) {
            OffsetValue[i] = NULL;
            Offset[i] = NULL;
            EnableHack[i] = false;
        }
    }
    ImGui::SameLine();
    if (ImGui::Button("FIRST"))
    {
        current_offset = 1;
        offsetlist = 1;
    }
    ImGui::SameLine();
    if (ImGui::Button("PREV 100"))
    {
        offsetlist -= 50;
        if (offsetlist < 0)
            offsetlist = 1;
    }
    ImGui::SameLine();
    if (ImGui::Button("NEXT 100"))
    {
        offsetlist += 50;
    }

    ImGui::End();

    //Credits :: ocornut
}


Thanks man I was looking for this for a long time!
#11 · edited 1y ago · 1y ago
Posts 1–11 of 11 · Page 1 of 1

Post a Reply

Similar Threads

  • DotA offset finder.By Bananeur in Defense of the Ancients 2 (DOTA 2) Hacks
    8Last post 11y ago
  • Offset Finder?By Lord Helios in Counter-Strike 2 Coding & Resources
    2Last post 10y ago
  • Offset Saver and Offset FinderBy vamoux in Call of Duty Black Ops 2 Private Server Hacks
    7Last post 12y ago
  • Cc Offset Saver and Offset FinderBy vamoux in Call of Duty Black Ops 2 Private Server Hacks
    2Last post 12y ago
  • My UCE pointer finder works but how do i find pointer in WarRock?By scooby107 in WarRock - International Hacks
    9Last post 19y ago

Tags for this Thread

None