ArmA 3 Memory Menu

Posts 1–7 of 7 · Page 1 of 1
ArmA 3 Memory Menu
Hello there,

Decided to release a memory based ArmA 3 menu I don't use anymore.

Features:

Unlock Car
No Grass
Thermal Vision
Car God
No Fatigue
Night Vision
God Mode
Teleport
Speed Hack
Script Execution

Speed Hack is not working. Everything else needs offset update.
To execute your script you need to place your .sqf in ArmA3 directory and name it insanity.sqf. Hold left arrow, open your map and insert a marker.

Code:
// dllmain.cpp : Defines the entry point for the DLL application.
#include <windows.h>
#include "MD5.h"
#include <iostream>
#include <vector>
#include <tlhelp32.h>
#include <Psapi.h>

using namespace std;
bool Thermale = false;
bool GodModee = false;
bool Care = false;
bool NVe = false;
bool fate = false;
bool Carge = false;
bool grasse = false;
DWORD INSANITYBASE = (DWORD)GetModuleHandle("arma3.exe");
DWORD World = INSANITYBASE + 0x15FD338;

bool comp(BYTE* data, PBYTE byte, PCHAR mask) {
    for (; *mask; ++mask, ++data, ++byte)
    if (*mask == 'x' && *data != *byte)
        return false;
    return (*mask) == NULL;
}

DWORD SCAN(PBYTE byte, PCHAR mask) {
    MEMORY_BASIC_INFORMATION mbi;
    PCHAR addr = 0;
    while (sizeof(mbi) == VirtualQuery(addr, &mbi, sizeof(mbi))) {
        addr += mbi.RegionSize;
        if (mbi.RegionSize < strlen(mask)) continue;
        if (mbi.State != MEM_COMMIT) continue;
        if (mbi.Type != MEM_PRIVATE) continue;
        if (mbi.AllocationProtect != PAGE_READWRITE) continue;
        if (mbi.Protect & (PAGE_GUARD | PAGE_NOCACHE | PAGE_NOACCESS)) continue;
        mbi.RegionSize -= strlen(mask);
        for (DWORD i = (DWORD)mbi.BaseAddress; i < (DWORD)mbi.BaseAddress + mbi.RegionSize; i++) {
            if (comp((BYTE*)(i), byte, mask)) {
                return(i);
            }
        }
    }
    return 0;
}

DWORD INSANITYMain(){
    DWORD ADRESS = SCAN((PBYTE)"\x5B\x22\x6F\x6E\x4C\x6F\x61\x64\x22\x2C\x5F\x74\x68\x69\x73\x2C\x22\x52\x73\x63\x44\x69\x73\x70\x6C\x61\x79\x49\x6E\x73\x65\x72\x74\x4D\x61\x72\x6B\x65\x72\x22\x2C\x27\x47\x55\x49\x27\x5D\x20\x63\x61", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
    DWORD ADRESS2 = SCAN((PBYTE)"\x5B\x22\x6F\x6E\x4C\x6F\x61\x64\x22\x2C\x5F\x74\x68\x69\x73\x2C\x22\x52\x73\x63\x44\x69\x73\x70\x6C\x61\x79\x49\x6E\x73\x65\x72\x74\x4D\x61\x72\x6B\x65\x72\x22\x2C\x27\x47\x55\x49\x27\x5D\x20\x63\x61", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
    char NEWL[] = "[\"onLoad\",_this,\"RscDisplayInsertMarker\",'GUI'] call compile preprocessfilelinenumbers \"insanity.sqf\"";
    char OLDL[] = "[\"onLoad\",_this,\"RscDisplayInsertMarker\",'GUI'] call     (uinamespace getvariable 'BIS_fnc_initDisplay')";
    AllocConsole();
    freopen("CONOUT$", "w", stdout);
    std::cout << "Insanity presents ArmA3" << std::endl;
    std::cout << "Numpad 0 For BaseOffset" << std::endl;
    std::cout << "NumPad 1 to Unlock Car (From Inside)" << std::endl;
    std::cout << "NumPad 2 for No Grass On/Off" << std::endl;
    std::cout << "NumPad 3 for Thermal Vison On/Off" << std::endl;
    std::cout << "NumPad 4 for Car God Mode On/Off" << std::endl;
    std::cout << "NumPad 5 for No Fatigue On/Off" << std::endl;
    std::cout << "NumPad 6 for Night Vison On/Off" << std::endl;
    std::cout << "NumPad 7 for God Mode On/Off" << std::endl;
    std::cout << "NumPad 8 for Teleport To Cursor On Map (Watch Out For Infistar)" << std::endl;
    std::cout << "NumPad 9 to Unlock Car" << std::endl;
    std::cout << "Home Key for Speed Hack On/Off (Getting worked on)" << std::endl;
    std::cout << "Left Arrow Key for Script Execution Of insanity.sqf" << std::endl;
    std::cout << "|    Instructions For Execution - Hold Left Arrow Down   |" << std::endl;
    std::cout << "| Than Go To The Map And Make A Map Marker Than Your Done|" << std::endl;
    DWORD INSANITYBASE = (DWORD)(GetModuleHandle("arma3.exe"));
    DWORD World = (DWORD)(INSANITYBASE + 0x15FD338);
    while (1) {
        if (GetAsyncKeyState(0x60)) {
            printf("World: 0x%x \n", World);
            Sleep(1000);
        }
        if (GetAsyncKeyState(0x61)) {
            //so local player 1704 -> 0x4 + 0xBE8 int32 0
            DWORD Car = (*(DWORD*)(*(DWORD*)(*(DWORD*)(INSANITYBASE + 0x15FD338) + 0x1704) + 0x4) + 0xB88);
            //DWORD CarOpen = (*(DWORD*)(Car + 0x4) + 0xBE8);
            *(INT32*)Car = 0;
            printf("Unlocked From Inside\n");
            Sleep(100);
        }
        if (GetAsyncKeyState(0x62)) {
            grasse = !grasse;
            Sleep(250);
            if (!grasse) {
                DWORD Grass = (*(DWORD*)(INSANITYBASE + 0x15FD338) + 0x1D24);
                *(float*)Grass = 15.0f;
                printf("No Grass Off\n");
            }
            if (grasse) {
                printf("No Grass On\n");
            }
        }
        if (grasse) {
            DWORD Grass = (*(DWORD*)(INSANITYBASE + 0x15FD338) + 0x1D24);
            *(float*)Grass = 50.0f;
        }
            if (GetAsyncKeyState(0x63)) {
                Thermale = !Thermale;
                Sleep(250);
                if (!Thermale) {
                    printf("Thermal Off\n");
                }
                if (Thermale) {
                    printf("Thermal On\n");
                }
            }
            if (Thermale) {
                //world + local player0x170C + 0x4 + thermal offset0xD6C
                DWORD wand = (*(DWORD*)(*(DWORD*)(*(DWORD*)(INSANITYBASE + 0x15FD338) + 0x170C) + 0x4) + 0xCC1);
                *(BYTE*)wand = 1;
            }
        if (GetAsyncKeyState(0x64)) {
            Care = !Care;
            Sleep(250);
            if (!Care) {
                //world + 0x14 +0x88 +0x4 +0x128 BYTE set to 1
                DWORD CarGod = (*(DWORD*)(*(DWORD*)(*(DWORD*)(INSANITYBASE + 0x15FD338) + 0x170C) + 0x4) + 0x128);
                *(bool*)CarGod = 1;
                printf("Car God Mode Off\n");
            }
            if (Care) {
                DWORD CarGod = (*(DWORD*)(*(DWORD*)(*(DWORD*)(INSANITYBASE + 0x15FD338) + 0x170C) + 0x4) + 0x128);
                *(bool*)CarGod = 0;
                printf("Car God Mode On\n");
            }
        }
        if (GetAsyncKeyState(0x65)) {
            fate = !fate;
            Sleep(250);
            if (!fate) {
                printf("No Fatigue Off\n");
            }
            if (fate) {
                printf("No Fatigue On\n");
            }
        }
        if (fate) {
            //world + 170C + 0x4 + 0xD54 FLOAT
            DWORD FAT = (*(DWORD*)(*(DWORD*)(*(DWORD*)(INSANITYBASE + 0x15FD338) + 0x170C) + 0x4) + 0xD04);
            *(float*)FAT = 0.0f;
        }
        if (GetAsyncKeyState(0x66)) {
            NVe = !NVe;
            Sleep(250);
            if (!NVe) {
                DWORD nv = (*(DWORD*)(*(DWORD*)(*(DWORD*)(INSANITYBASE + 0x15FD338) + 0x170C) + 0x4) + 0xCBE);
                *(bool*)nv = 0;
                printf("NV Off\n");
            }
                if (NVe) {
                    DWORD nv = (*(DWORD*)(*(DWORD*)(*(DWORD*)(INSANITYBASE + 0x15FD338) + 0x170C) + 0x4) + 0xCBE);
                    *(bool*)nv = 1;
                    printf("NV On\n");
                }
        }
        if (GetAsyncKeyState(0x67)) {
            GodModee = !GodModee;
            Sleep(250);
            if (!GodModee) {
                //kk so baze + 0x1704 + 0x4 + 0x128
                DWORD Goder = (*(DWORD*)(*(DWORD*)(*(DWORD*)(INSANITYBASE + 0x15FD338) + 0x1704) + 0x4) + 0x128);
                *(bool*)Goder = 1;
                printf("God Mode Off\n");
            }
            if (GodModee) {
                DWORD Goder = (*(DWORD*)(*(DWORD*)(*(DWORD*)(INSANITYBASE + 0x15FD338) + 0x1704) + 0x4) + 0x128);
                *(bool*)Goder = 0;
                printf("God Mode On\n");
            }
        }
        if (GetAsyncKeyState(0x68)) {
            //local player is: world + 1704 + 0x4 +0x68 x:0x28 y:0x2C z:0x30
            //Map Cursor (ALSO NORMOL CURSOR TARGET) WORLD + 0x14 x:0x38 y:0x3C z:0x40
            //local player
            DWORD INSANITYISLIFEX = (*(DWORD*)(*(DWORD*)(*(DWORD*)(*(DWORD*)(INSANITYBASE + 0x15FD338) + 0x1704) + 0x4) + 0x68) + 0x28);
            DWORD INSANITYISLIFEY = (*(DWORD*)(*(DWORD*)(*(DWORD*)(*(DWORD*)(INSANITYBASE + 0x15FD338) + 0x1704) + 0x4) + 0x68) + 0x2C);
            DWORD INSANITYISLIFEZ = (*(DWORD*)(*(DWORD*)(*(DWORD*)(*(DWORD*)(INSANITYBASE + 0x15FD338) + 0x1704) + 0x4) + 0x68) + 0x30);
            //Cursor Target
            DWORD PORNX = (*(DWORD*)(*(DWORD*)(INSANITYBASE + 0x15FD338) + 0x14) + 0x38);
            DWORD PORNXX = (*(DWORD*)(*(DWORD*)(INSANITYBASE + 0x15FD338) + 0x14) + 0x3C);
            DWORD PORNXXX = (*(DWORD*)(*(DWORD*)(INSANITYBASE + 0x15FD338) + 0x14) + 0x40);
            *(float*)INSANITYISLIFEX = *(float*)PORNX;
            *(float*)INSANITYISLIFEY = *(float*)PORNXX;
            *(float*)INSANITYISLIFEZ = *(float*)PORNXXX;
            printf("Teleported\n");
            Sleep(100);
        }
        if (GetAsyncKeyState(0x69)) {
            //0x14 -> 0x88 -> 0x4 -> 0xBE8
            DWORD Unlock = (*(DWORD*)(*(DWORD*)(*(DWORD*)(INSANITYBASE + 0x15FD338) + 0x94) + 0x4) + 0xB88);
            *(INT32*)Unlock = 0;
            printf("Unlocked\n");
            Sleep(100);
        }
        if (GetAsyncKeyState(0x25)) {
                memcpy((LPVOID)ADRESS, &NEWL, sizeof(NEWL));
                Sleep(2);
                memcpy((LPVOID)ADRESS2, &OLDL, sizeof(OLDL));
                //DWORD addre = sizeof oldstr;
        }
        Sleep(2);
    }
    return 0;
}
    
bool WINAPI DllMain(HINSTANCE hInst, DWORD dRes, LPVOID lRes)
{
    if (dRes == DLL_PROCESS_ATTACH) {
        CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)&INSANITYMain, NULL, NULL, NULL);
    }
    return true;

}
To change the script name (in case of directory scan), change insanity in this line:
Code:
char NEWL[] = "[\"onLoad\",_this,\"RscDisplayInsertMarker\",'GUI'] call compile preprocessfilelinenumbers \"insanity.sqf\"";
NB: Really sorry for this crappy code, it has been made by a beginner you know ^_^
Please make a video , I have difficulties !
Nice one !
hssn
how to use
Code:

char NEWL[] = "[\"onLoad\",_this,\"RscDisplayInsertMarker\",'GU I'] call compile preprocessfilelinenumbers \"insanity.sqf\"";

please help me ^^"

- - - Updated - - -

i think CE not working in arma 3 now
Quote Originally Posted by nuysoy10za View Post
hssn
how to use
Code:

char NEWL[] = "[\"onLoad\",_this,\"RscDisplayInsertMarker\",'GU I'] call compile preprocessfilelinenumbers \"insanity.sqf\"";

please help me ^^"

- - - Updated - - -

i think CE not working in arma 3 now
Get a injector,executor.
fx666666, Where can I find them
please tell me ^^
Quote Originally Posted by nuysoy10za View Post
fx666666, Where can I find them
please tell me ^^
you have to buy one or make one. Cant tell you website sorry
Posts 1–7 of 7 · Page 1 of 1
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Need help?