Noob Frage Multithreading C++

DrMax

Hack User
22 Jun 2015
75
12
#1
Hallo Community,
ich wollte mich auch etwas mehr mit dem Thema Gamehacking beschäftigen, deswegen versuche ich aktuell aus ein paar Source Codes schlau zu werden.
Es geht um einen external Cheat in den ich bisschen was reingepasted habe. Ich möchte das bestimmte Variablen, die von mehreren Funktionen benutzt werden Global geupdated werden.
Code:
#pragma region Vars

DWORD LocalPlayer;
DWORD glow_Pointer;
int LocalTeam;
int CrossHairID;

#pragma endregion

int main();
void GlowEsp();
void control();
void trigger();
void updateBase();

int main()
{
proM.Process("csgo.exe");
Sleep(200);
Client = proM.Module("client.dll");

thread t1(control); //Dieser Thread ist nur für ein paar Hotkeys und funktioniert wie gewünscht...

thread t2(updateBase); //Soll die häufig benutzten Variablen regelmäßig Updaten

//main loop
    while (true)
    {
        if (triggertg)
            trigger();
        if (glowtg)
            GlowEsp();
Sleep(10);
    }

}

void updateBase()
{
    while(true)
    {

    DWORD LocalPlayer = proM.Read<DWORD>(Client + playerBase);
    int LocalTeam = proM.Read<int>(LocalPlayer + teamOffset);
    int CrossHairID = proM.Read<int>(LocalPlayer + crosshairOffset);
    DWORD glow_Pointer = proM.Read<DWORD>(Client + dwGlowObjectManager);

    Sleep(50);
    }
}
Wenn ich das Programm so ausführe, Funktionieren die beiden Funktionen nicht. Schreibe ich aber den Code in der While-Schleife der updateBase()-Funktion jeweils direkt in die Glow- bzw. Triggerfunktion läuft alles.
Klar könnte ich so mein Problem lösen, aber ich frage mich trotzdem, warum das mit dem Thread nicht funktioniert.
Kann mir hier irgendwer weiterhelfen?

Vielen Dank und viele Grüße
Max
 

swiix

Active Member
21 Jan 2013
624
129
#2
hast in der updateBase() ein Fehler. Stichwort Scopes und Variablen
 
Likes: DrMax
8 May 2015
672
1,242
#6
Mensch, das könnte er auch recherchieren können ^^
Hatte anfangs geposted, dass er die threads nur definiert aber nicht startet. Nachdem ich den Post abgeschickt hab, fiel mir ein, dass das bei std::thread nicht so ist :tongueclosed: (Benutze nie std::thread, CreateThread ftw) Danach fand ich auch den eigentlichen Fehler und wollte ihm ja in irgend nem Weg helfen :>
 
Likes: DrMax

rn_

I'm not online, that's just my bot.
7 Jan 2011
5,677
11,051
#7

thepapanoob

Well-Known Member
22 Oct 2015
342
346
#8
grundsätzlich hat reactiion recht mit den ganzen mutex gedöns aber es gibt einige Sachen die gegen multithreaded external hacks für csgo sprechen :grin:

ich würde empfehlen alles singlethreaded zu machen (btw 90% der internen hacks sind singlethreaded)
 

imi-tat0r

www.ev0lve.xyz
9 Oct 2015
1,804
3,726
#9
grundsätzlich hat reactiion recht mit den ganzen mutex gedöns aber es gibt einige Sachen die gegen multithreaded external hacks für csgo sprechen :grin:

ich würde empfehlen alles singlethreaded zu machen (btw 90% der internen hacks sind singlethreaded)
Finde multithreading nich so schlecht. Der große Faktor bei Internalhacks ist halt die fehlende Threadsafety von den EngineFuncs.
Bei nem External kann es durchaus ein Performanceplus bringen.
Hasse std::atomic aber auf den Tod (sry rN)