Solved CSGO Triggerbot Help

  • CSGO recently moved logic from 'client_panorama.dll' to 'client.dll', you must update all code that uses 'client_panorama.dll' and replace it with 'client.dll' or the code will not work.
Hexui Undetected CSGO Cheats Sinkicheat PUBG Cheat
Status
Not open for further replies.

Zelcore

Newbie
Full Member
Jan 12, 2013
21
468
0
Well I'm stuck atm, I've googled my error [ Module process platform invalid ] and can't find any fix.
I'm using ProcMem.cpp and ProcMem.h.

If you need to take a look at my source just tell me, but if you have a simple solution that would be good.

Thanks ~~Zelcore
 

Rake

Cesspool Admin
Administrator
Jan 21, 2014
12,073
78,998
2,371
C++:
DWORD ClientDLL = Mem.Module("client.dll");
Module process platform invalid gets couted to the console by Nether's memory class. And had you done a better search you would have found Question - Write to memory with offsets (MemoryHacking) which explains that Platform Invalid refers to the target module being compiled for the wrong platform 32bit/64bit so make sure you got it right.

Here is the function that is giving you the "Process Platform Invalid".
C++:
DWORD ProcMem::Module(LPSTR ModuleName){
    //Variables
    HANDLE hModule = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwPID); //Take A Module Snapshot Of The Process (Grab All Loaded Modules)
    MODULEENTRY32 mEntry; //Declare Module Entry Structure
    mEntry.dwSize = sizeof(mEntry); //Declare Structure Size And Populate It With Loaded Modules
   
    //Scan For Module By Name
    do
        if(!strcmp(mEntry.szModule, ModuleName))
        {
            CloseHandle(hModule);           
            return (DWORD)mEntry.modBaseAddr;   
        }
    while(Module32Next(hModule, &mEntry));
   
    cout << "\nMODULE: Process Platform Invalid\n";
    return 0;
}
PsuedoCode Translation:
Find client.dll module by walking the Toolhelp32Snapshot loaded modules list and comparing "client.dll" to the name of all loaded modules. Return the correct module if found. If module name not found print "Process Platform Invalid".

Ok so in ProcMem::Module you see it uses dwPID as argument # 2 for CreateToolhelp32Snapshot?
CreateToolhelp32Snapshot function (tlhelp32.h) - Win32 apps

Well you didn't define dwPID yet, I think that is causing your problem. You need to call:
Mem.Process("csgo.exe");
before you call
DWORD ClientDLL = Mem.Module("client.dll");

Just do this tutorial and learn everything from scatch:
https://guidedhacking.com/threads/how-to-hack-any-game-tutorial-c-external-trainer-part-2.10897/
 
Last edited:

till0sch

Respected Hacker
Dank Tier VIP
Dank Tier Donator
Oct 14, 2012
1,104
12,593
51
More info, solution, project, source codes, configurations.. ?
 

Zelcore

Newbie
Full Member
Jan 12, 2013
21
468
0
Code:
#include "ProcMem.h"

ProcMem Mem;
DWORD ClientDLL = Mem.Module("client.dll");


 //Updated regularly
const DWORD PlayerBase = 0xA75CCC;
const DWORD EntityBase = 0x4A17BD4;
const DWORD CrosshairOffset = 0x2410;


//Static

const DWORD TeamOffset = 0xF0;
const DWORD HealthOffset = 0xFC;
const DWORD EntLoopDist = 0x10;

// Player
DWORD LocalPlayer = Mem.Read<DWORD>(ClientDLL + PlayerBase);
//Our Team
int LocalTeam = Mem.Read<int>(LocalPlayer + TeamOffset);
//Our CHair ID
int CrossHairID = Mem.Read<int>(LocalPlayer + CrosshairOffset);


void Trigger()
{
	Mem.Process("csgo.exe");
	DWORD EnemyInCH = Mem.Read<DWORD>(ClientDLL + EntityBase + ((CrossHairID - 1) * EntLoopDist));
	int EnemyHealth = Mem.Read<int>(EnemyInCH + HealthOffset);
	int EnemyTeam = Mem.Read<int>(EnemyInCH + TeamOffset);
	if (LocalTeam != EnemyTeam && EnemyHealth > 0)
	{
		Sleep(5);
		mouse_event(MOUSEEVENTF_LEFTDOWN, NULL, NULL, NULL, NULL);
		Sleep(5);
		mouse_event(MOUSEEVENTF_LEFTUP, NULL, NULL, NULL, NULL);
		Sleep(5);

	}

}

int main()
{

	while (true)
	{
		Trigger();
		Sleep(5);
	}
}
This is my source, and for some reason I get the " Module Process Platform Invalid " error in my console.
 
Last edited:

till0sch

Respected Hacker
Dank Tier VIP
Dank Tier Donator
Oct 14, 2012
1,104
12,593
51
Code:
#include "ProcMem.h"

ProcMem Mem;
DWORD ClientDLL = Mem.Module("client.dll");


 //Updated regularly
const DWORD PlayerBase = 0xA75CCC;
const DWORD EntityBase = 0x4A17BD4;
const DWORD CrosshairOffset = 0x2410;


//Static

const DWORD TeamOffset = 0xF0;
const DWORD HealthOffset = 0xFC;
const DWORD EntLoopDist = 0x10;

// Player
DWORD LocalPlayer = Mem.Read<DWORD>(ClientDLL + PlayerBase);
//Our Team
int LocalTeam = Mem.Read<int>(LocalPlayer + TeamOffset);
//Our CHair ID
int CrossHairID = Mem.Read<int>(LocalPlayer + CrosshairOffset);


void Trigger()
{
	Mem.Process("csgo.exe");
	DWORD EnemyInCH = Mem.Read<DWORD>(ClientDLL + EntityBase + ((CrossHairID - 1) * EntLoopDist));
	int EnemyHealth = Mem.Read<int>(EnemyInCH + HealthOffset);
	int EnemyTeam = Mem.Read<int>(EnemyInCH + TeamOffset);
	if (LocalTeam != EnemyTeam && EnemyHealth > 0)
	{
		Sleep(5);
		mouse_event(MOUSEEVENTF_LEFTDOWN, NULL, NULL, NULL, NULL);
		Sleep(5);
		mouse_event(MOUSEEVENTF_LEFTUP, NULL, NULL, NULL, NULL);
		Sleep(5);

	}

}

int main()
{

	while (true)
	{
		Trigger();
		Sleep(5);
	}
}
This is my source, and for some reason I get the " Module Process Platform Invalid " error in my console.
Need procmem aswell as the error is produced and put out there
 

Zelcore

Newbie
Full Member
Jan 12, 2013
21
468
0
However, if I call Mem.Process("csgo") before I call the Mem.Module I get an error.
In fact, I even get an error if i put it outside of a function.

I also have compiled it as 64 bit.
 

Rake

Cesspool Admin
Administrator
Jan 21, 2014
12,073
78,998
2,371
Ok call both those functions inside int Main() in the order I told you to.
 

Zelcore

Newbie
Full Member
Jan 12, 2013
21
468
0
C++:
#include "ProcMem.h"

ProcMem Mem;
void Trigger();

//Updated regularly
const DWORD PlayerBase = 0xA75CDC;
const DWORD EntityBase = 0x4A17C14;
const DWORD CrosshairOffset = 0x2410;

//Static

const DWORD TeamOffset = 0xF0;
const DWORD HealthOffset = 0xFC;
const DWORD EntLoopDist = 0x10;

int main()
{
	Mem.Process("csgo.exe");
	DWORD ClientDLL = Mem.Module("client.dll");

	while (true)
	{
		
		Trigger();
		Sleep(5);
	}
}





// Player
DWORD LocalPlayer = Mem.Read<DWORD>(ClientDLL + PlayerBase);
//Our Team
int LocalTeam = Mem.Read<int>(LocalPlayer + TeamOffset);
//Our CHair ID
int CrossHairID = Mem.Read<int>(LocalPlayer + CrosshairOffset);



void Trigger()
{
	
	DWORD EnemyInCH = Mem.Read<DWORD>(ClientDLL + EntityBase + ((CrossHairID - 1) * EntLoopDist));
	int EnemyHealth = Mem.Read<int>(EnemyInCH + HealthOffset);
	int EnemyTeam = Mem.Read<int>(EnemyInCH + TeamOffset);
	if (LocalTeam != EnemyTeam && EnemyHealth > 0)
	{
		Sleep(5);
		mouse_event(MOUSEEVENTF_LEFTDOWN, NULL, NULL, NULL, NULL);
		Sleep(5);
		mouse_event(MOUSEEVENTF_LEFTUP, NULL, NULL, NULL, NULL);
		Sleep(5);

	}

}
For some reason although I DWORD ClientDLL in my main it doesn't recognize it :/
So thats the reason I get errors now
For example in my Localplayer statement it doesn't recognize ClientDLL..
 

Solaire

Respected Hacker
Dank Tier VIP
Dec 15, 2013
1,051
16,353
62
C++:
#include "ProcMem.h"

ProcMem Mem;
void Trigger();

//Updated regularly
const DWORD PlayerBase = 0xA75CDC;
const DWORD EntityBase = 0x4A17C14;
const DWORD CrosshairOffset = 0x2410;

//Static
const DWORD TeamOffset = 0xF0;
const DWORD HealthOffset = 0xFC;
const DWORD EntLoopDist = 0x10;

int main()
{
    Mem.Process("csgo.exe");
    DWORD ClientDLL = Mem.Module("client.dll");

    while (true)
    {
        
        Trigger();
        Sleep(5);
    }
}





// Player
DWORD LocalPlayer = Mem.Read<DWORD>(ClientDLL + PlayerBase);
//Our Team
int LocalTeam = Mem.Read<int>(LocalPlayer + TeamOffset);
//Our CHair ID
int CrossHairID = Mem.Read<int>(LocalPlayer + CrosshairOffset);



void Trigger()
{
    
    DWORD EnemyInCH = Mem.Read<DWORD>(ClientDLL + EntityBase + ((CrossHairID - 1) * EntLoopDist));
    int EnemyHealth = Mem.Read<int>(EnemyInCH + HealthOffset);
    int EnemyTeam = Mem.Read<int>(EnemyInCH + TeamOffset);
    if (LocalTeam != EnemyTeam && EnemyHealth > 0)
    {
        Sleep(5);
        mouse_event(MOUSEEVENTF_LEFTDOWN, NULL, NULL, NULL, NULL);
        Sleep(5);
        mouse_event(MOUSEEVENTF_LEFTUP, NULL, NULL, NULL, NULL);
        Sleep(5);

    }

}
For some reason although I DWORD ClientDLL in my main it doesn't recognize it :/
So thats the reason I get errors now
For example in my Localplayer statement it doesn't recognize ClientDLL..
DWORD ClientDLL = Mem.Module("client.dll");

This is in function scope. Declare DWORD ClientDLL with your other globals, then do ClientDLL = Mem.Module("client.dll");. Should be fine after that :)
 

Zelcore

Newbie
Full Member
Jan 12, 2013
21
468
0
C++:
#include "ProcMem.h"

ProcMem Mem;




const DWORD PlayerBase = 0x00A75CCC;
const DWORD EntityBase = 0x04A17BD4;
const DWORD CrosshairOffset = 0x00002410;




const DWORD TeamOffset = 0xF0;
const DWORD HealthOffset = 0xFC;
const DWORD EntLoopDist = 0x10;

DWORD ClientDLL;
//Our player
DWORD LocalPlayer = Mem.Read<DWORD>(ClientDLL + PlayerBase);
//Our team
int LocalTeam = Mem.Read<int>(LocalPlayer + TeamOffset);
//Our Chair id
int CrossHairID = Mem.Read<int>(LocalPlayer + CrosshairOffset);


void Trigger()
{
	
	DWORD EnemyInCH = Mem.Read<DWORD>(ClientDLL + EntityBase + ((CrossHairID - 1) * EntLoopDist));
	int EnemyHealth = Mem.Read<int>(EnemyInCH + HealthOffset);
	int EnemyTeam = Mem.Read<int>(EnemyInCH + TeamOffset);
	if (LocalTeam != EnemyTeam && EnemyHealth > 0)
	{
		Sleep(5);
		mouse_event(MOUSEEVENTF_LEFTDOWN, NULL, NULL, NULL, NULL);
		Sleep(5);
		mouse_event(MOUSEEVENTF_LEFTUP, NULL, NULL, NULL, NULL);
		Sleep(5);

	}

}

int main()
{
	Mem.Process("csgo.exe");
	ClientDLL = Mem.Module("client.dll");
	while (true)
	{
		Trigger();
		Sleep(5);
	}
}
Still getting Module Process Platform Invalid :/
 

Solaire

Respected Hacker
Dank Tier VIP
Dec 15, 2013
1,051
16,353
62
C++:
#include "ProcMem.h"

ProcMem Mem;




const DWORD PlayerBase = 0x00A75CCC;
const DWORD EntityBase = 0x04A17BD4;
const DWORD CrosshairOffset = 0x00002410;




const DWORD TeamOffset = 0xF0;
const DWORD HealthOffset = 0xFC;
const DWORD EntLoopDist = 0x10;

DWORD ClientDLL;
//Our player
DWORD LocalPlayer = Mem.Read<DWORD>(ClientDLL + PlayerBase);
//Our team
int LocalTeam = Mem.Read<int>(LocalPlayer + TeamOffset);
//Our Chair id
int CrossHairID = Mem.Read<int>(LocalPlayer + CrosshairOffset);


void Trigger()
{
    
    DWORD EnemyInCH = Mem.Read<DWORD>(ClientDLL + EntityBase + ((CrossHairID - 1) * EntLoopDist));
    int EnemyHealth = Mem.Read<int>(EnemyInCH + HealthOffset);
    int EnemyTeam = Mem.Read<int>(EnemyInCH + TeamOffset);
    if (LocalTeam != EnemyTeam && EnemyHealth > 0)
    {
        Sleep(5);
        mouse_event(MOUSEEVENTF_LEFTDOWN, NULL, NULL, NULL, NULL);
        Sleep(5);
        mouse_event(MOUSEEVENTF_LEFTUP, NULL, NULL, NULL, NULL);
        Sleep(5);

    }

}

int main()
{
    Mem.Process("csgo.exe");
    ClientDLL = Mem.Module("client.dll");
    while (true)
    {
        Trigger();
        Sleep(5);
    }
}
Still getting Module Process Platform Invalid :/
ClientDLL = Mem.Module("client.dll");

Set a breakpoint on this line, then step into the function. Watch the strings when it compares the modules.
 

Zelcore

Newbie
Full Member
Jan 12, 2013
21
468
0
I have and, for some reason it seems like the While(true) is causing the memory process thing
 

Solaire

Respected Hacker
Dank Tier VIP
Dec 15, 2013
1,051
16,353
62
C++:
DWORD ProcMem::Module(LPSTR ModuleName){
    //Variables
    HANDLE hModule = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwPID); //Take A Module Snapshot Of The Process (Grab All Loaded Modules)
    MODULEENTRY32 mEntry; //Declare Module Entry Structure
    mEntry.dwSize = sizeof(mEntry); //Declare Structure Size And Populate It With Loaded Modules
     
    //Scan For Module By Name
    do
        if(!strcmp(mEntry.szModule, ModuleName))
        {
            CloseHandle(hModule);           
            return (DWORD)mEntry.modBaseAddr;   
        }
    while(Module32Next(hModule, &mEntry));
     
    cout << "\nMODULE: Process Platform Invalid\n";
    return 0;
}
Afaik you need to compare the strings as WCHARs. That could be the issue. If client.dll shows when looping, but they don't pass as the same, then you need to do a wchar comparison.
 

Zelcore

Newbie
Full Member
Jan 12, 2013
21
468
0
I have decided to quit this project as of now, will return to it once I feel more comfortable with C++.

Thanks to everyone who helped me so far :) ~Zelcore
 

till0sch

Respected Hacker
Dank Tier VIP
Dank Tier Donator
Oct 14, 2012
1,104
12,593
51
I have decided to quit this project as of now, will return to it once I feel more comfortable with C++.

Thanks to everyone who helped me so far :) ~Zelcore
I do really support that decision and wish you best of luck learning C++, thread closed.
 
Status
Not open for further replies.
Attention! Before you post:

Read the How to Ask Questions Guide
99% of questions are answered in the Beginner's Guide, do it before asking a question.

No Hack Requests. Post in the correct section.  Search the forum first. Read the rules.

How to make a good post:

  • Fill out the form correctly
  • Tell us the game name & coding language
  • Post everything we need to know to help you
  • Ask specific questions, be descriptive
  • Post errors, line numbers & screenshots
  • Post code snippets using code tags
  • If it's a large project, zip it up and attach it

If you do not comply, your post may be deleted.  We want to help, please make a good post and we will do our best to help you.

Community Mods