-Direct Memory Access-
Übersicht![](/themes/Standard/arrow.png)
![](/themes/Standard/arrow.png)
Gehe zu Seite Zurück 1, 2, 3, 4 Weiter
Coffee |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Fenstertitel oder Fensterklasse sollten gehen.
MfG |
||
*Mjam* |
![]() |
Cireva |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei mir funktionieren di Beispiele net.
Kommt immer "Function not found" Ich weiß was des heißt aber leider nicht warum. Kann mir bitte einer helfen? |
||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Libary und die declerations dazu in den richtigen Ordner, nämlich Blitz3D/Userlibs, kopieren. :/ | ||
![]() |
Cireva |
![]() Antworten mit Zitat ![]() |
---|---|---|
und was ist wenns den ordner userlibs nicht gibt ?!?!?! | ||
![]() |
coolo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann erstellt man sich einen... | ||
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project! "Eigenzitate sind nur was für Deppen" -Eigenzitat |
![]() |
Cireva |
![]() Antworten mit Zitat ![]() |
---|---|---|
hab ich ja aber funktioniert trotzdem nicht
selber fehler |
||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hast du vlt die Demo? | ||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
Cireva |
![]() Antworten mit Zitat ![]() |
---|---|---|
zur Zeit schon noch ![]() funktioniert des dann net? |
||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ne mit der Demo nicht, da musst du dann auf CallDll![]() |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
Cireva |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok danke für die Antworten und einen Guten Rutsch ins neue Jahr | ||
mactep |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo ,
Sorry das ich das Thema raushole. Weis jemand wie ich mit DMA_FindProcess() den Handle vom Chrome lade in dem ein Flashgame läüft ? |
||
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schwierig.... Chrome verwendet Multiprocessing nahezu exzessiv. Da den richtigen Prozess finden wird beinahe unmöglich, außer du liest sie alle komplett durch und versuchst irgendeine Art Signatur für den Flashplayer zu finden... In anderen Browsern wäre das einfacher. | ||
Gewinner der 6. und der 68. BlitzCodeCompo |
mactep |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
ok.Vielen Dank für die Antwort.Weis jeamnd evtl. Antwort bzw. Rat aut diese Frage ? Zitat: Hallo,
Kann ich irgendwie herausfinden von wo bis wo der Adressenberreich geht, den ein Prog nutzt? Gruß, Smily0412 Lg Mactep. |
||
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jedes programm hat seinen eigenen virtuellen speicher und kann diesen vollständig und belibig selbst nutzen. | ||
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Lies dir dazu mal auf Wiki Segmentation und Paging durch. Das sollte dir den technischen Hintergrund geben. | ||
Gewinner der 6. und der 68. BlitzCodeCompo |
mactep |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Okay, das hillft weiter.Vielen Dank ! | ||
mactepBetreff: CS GO : Trigger bot Frage |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich versuche Für CS:GO einen TriggerBot zu schreiben. Habe mit CheatEngine den Pointer Gefunden welchen ich auslesen möchte. bei CE steht bei Offset : Code: [AUSKLAPPEN] "client.dll+4AFFE44"
Wenn ich aber nun : Code: [AUSKLAPPEN] Global hndl = DMA_FindProcess("Counter-Strike: Global Offensive") Repeat value = DMA_ReadMemValue(hndl, "client.dll+4AFFE44") Print value Forever abfrage, bekomme ich immer 0 zurück statt den Wert in CE ? Mach ich da was Falsch ? Hier mal ein älterer C(++)Code evt.l Bring das jemand weiter : Code: [AUSKLAPPEN] #include <windows.h>//libary #include <iostream>//libary #include <TlHelp32.h>//libary using namespace std;//set the namespace to "standart" DWORD GetModuleBaseExtern(const DWORD dwProcessId, const char *szModuleName)//function to get the modul base { #ifdef _GMBE_CHECK_PARAMS_ if (!dwProcessID) || (!szModuleName) return 0; #endif HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessId); if (!hSnap) return 0; MODULEENTRY32 me; me.dwSize = sizeof(MODULEENTRY32); DWORD dwReturn = 0; if (Module32First(hSnap, &me)) { while (Module32Next(hSnap, &me)) { if (lstrcmpi(me.szModule, szModuleName) == 0) { dwReturn = (DWORD)me.modBaseAddr; break; } } } CloseHandle(hSnap); return dwReturn; } int main(int argc,char* argv)//the "main" of the programm { //variables SetConsoleTitle("CSGO Hack");//set the title of the console HWND hwnd = NULL;//for the process handle DWORD pid;//for the process handle HANDLE hProcess;//for the process handle DWORD clientbase;//for the dll handle DWORD overlay;//for the dll handle unsigned long pID;//for the process handle DWORD Localentity;//for the Localentity -> DWORD Sign-less double-word (32-bit). int m_fFlags;//for the flags -> int(intenger) 32bit big int steamoverlay;//for the steamoverlay -> int(intenger) 32bit big int drawothermodels = 1;// for the drawothermodels -> int(intenger) 32bit big int drawothermodels_an = 2;// for the drawothermodels -> int(intenger) 32bit big int Flash_aus = 0;// for the no flash -> int(intenger) 32bit big int smoke_aus = 0;// for the no smoke -> int(intenger) 32bit big int smoke_an = 1;// for the no smoke -> int(intenger) 32bit big int InCross;//for the triggerbot -> int(intenger) 32bit big and save whole numbers like, 1, 2, 3, 4, 5, 6 or -1, -2 and so on... bool an = false;//for the if alternative -> the type bool returns true and false anfang : //process handle DWORD GetModuleBaseExtern(const DWORD dwProcessId, const char *szModuleName); HWND hWnd = FindWindow(NULL,"Counter-Strike: Global Offensive"); GetWindowThreadProcessId(hWnd,&pID); hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pID); hwnd = FindWindow (NULL, "Counter-Strike: Global Offensive"); GetWindowThreadProcessId (hwnd, &pid); hProcess = OpenProcess (PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE | PROCESS_QUERY_INFORMATION, FALSE, pid);//set the process rights GetWindowThreadProcessId (hwnd, &pid); hProcess = OpenProcess (PROCESS_ALL_ACCESS, 0, pid); clientbase = GetModuleBaseExtern(pid, "client.dll");//get the "client.dll" overlay = GetModuleBaseExtern(pid,"gameoverlayrenderer.dll");//get the "gameoverlayrenderer.dll" { while(hwnd == 0)//loop { Sleep(2000);//sleeptime for 2 seconds goto anfang;//jump command to "anfang :" } } while(hwnd != 0)//loop { //rpm ReadProcessMemory(hProcess, (LPCVOID)(clientbase + 0x8D5C48), &Localentity, sizeof(DWORD), NULL);//read out the localentity, more information in the offset tutorial ReadProcessMemory(hProcess, (LPCVOID)(Localentity + 0x1DD8), &InCross, sizeof(int), NULL);//read out if an entity is in your cross, more information in the offset tutorial //wpm WriteProcessMemory(hProcess, (PBYTE*)(Localentity + 0x1CE0), &Flash_aus, sizeof(int), NULL);//write into m_fFlashMaxAlpha, more information in the offset tutorial //bhop part if (GetAsyncKeyState(VK_SPACE))//check if space is pressed { ReadProcessMemory(hProcess, (LPCVOID)(Localentity + 0x100), &m_fFlags, sizeof(int), NULL);//read out the flags, more information in the offset tutorial if( m_fFlags & ( 1 || 3 || 5 || 7 ))//looks for your state { ReadProcessMemory(hProcess, (LPCVOID)(overlay + 0x7BF60), &steamoverlay, sizeof(int), NULL);//read out the value of the steamoverlay if(steamoverlay == 0)//if steam overlay is not open it will send the commands below { SendMessage( hWnd, WM_KEYDOWN, VK_SPACE, 0x390000 );//send the key space down to the process Sleep(30);//sleeptime for 30 milliseconds SendMessage( hWnd, WM_KEYUP, VK_SPACE, 0x390000 );//send the key space up to the process Sleep(30);//sleeptime for 30 milliseconds } } } //wireframe an no smoke part if (GetAsyncKeyState(VK_INSERT) && an == false)//check if the key "INSERT" is pressed if its true it will look into the second part of the logical link if this is true too than it will do the stuff in the clamps { WriteProcessMemory(hProcess, (PBYTE*)(clientbase + 0x8D05A8), &drawothermodels_an, sizeof(int), NULL);//write into the client.dll at the memory the value of "drawothermodels" which is 1 "int drawothermodels_an = 2;" , "an means in english on" WriteProcessMemory(hProcess, (PBYTE*)(clientbase + 0x92E5B8), &smoke_aus, sizeof(int), NULL);//write into the client.dll at the memory the value of "smoke_an" which is 1 "int smoke_aus = 0;" , "aus means in english off" an = true;//the variable gets the value "true" (bool) Sleep(1000);//sleeptime for 1 second } if (GetAsyncKeyState(VK_INSERT) && an == true)//check if the key "INSERT" is pressed if its true it will look into the second part of the logical link if this is true too than it will do the stuff in the clamps { WriteProcessMemory(hProcess, (PBYTE*)(clientbase + 0x8D05A8), &drawothermodels, sizeof(int), NULL);//write into the client.dll at the memory the value of "drawothermodels" which is 1 "int drawothermodels = 1;" WriteProcessMemory(hProcess, (PBYTE*)(clientbase + 0x92E5B8), &smoke_an, sizeof(int), NULL);//write into the client.dll at the memory the value of "smoke_an" which is 1 "int smoke_an = 1;" , "an means in english on" an = false;//the variable gets the value "false" (bool) Sleep(1000);//sleeptime for 1 second } //triggerbot part if(GetAsyncKeyState(VK_XBUTTON1) && InCross > 0 && InCross <= 64)// all player have a id between 0 and 64, more information you will find in the offset tutorial { mouse_event( MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 );// press the left mouse button Sleep( 50 );//sleeptime for 50 milliseconds mouse_event( MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 );// lift the left mouse button Sleep( 75 );//sleeptime for 75 milliseconds } //check if the game is not running if(!FindWindow(NULL,"Counter-Strike: Global Offensive")) // looking if Counter-Strike: Global Offensive Source is running, if not the application will close { exit(0);//close the appclication } Sleep(5);//slepptime for 5 milliseconds } } Evtl. ist diese Zeile wichtig,kenne mich aber in C nicht sonderbar aus. Code: [AUSKLAPPEN] clientbase = GetModuleBaseExtern(pid, "client.dll");//get the "client.dll"
Hoffentlich hat da jemand Erfahrung. Freue mich auf Antworten. Lg MACTEP |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Counter Strike ist ein reines Multiplayer Spiel.
Du zerstörst damit anderen den Spaß am Spiel, 10x mal so viele werden fälschlicherweise verdächtigt zu cheaten und du ziehst die Reputation des ganzen Portals runter. Ich bin sehr enttäuscht - so eine Anfrage hätte ich hier höchstens am 1. April vermutet. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
mactep |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Schuldig !
Aber ; mir gehts eigentlich nur um das Verständnis warum so viele Hacks undetected sind und wie das ganze funktioniert....der eingentliche Gedanke war ein Fake Hack zu schreiben....und so viele VAC Ban´s wie möglich zu erzielen....habe das gecheate im MM satt... sollte keine Rufschädigung werden..verzeih ! |
||
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und da hat mactep schon geschrieben. Wenn du gebannt werden willst, suche dir sv_cheats im Speicher raus und versuche dort 1 rein zu schreiben. Das ist so ziemlich das unbeholfenste, was man machen kann und quasi, die Garantie gebannt zu werden.
Ursprünglich wollte ich schreiben: Zitat: Xeres, ich bin sicher diese Frage ist rein akademischer Natur, wie bei Lord Voldemort, als er noch Tom hieß und sich nach den Horkruxen erkundigt hat.
mactep, ich hoffe du machst das rein aus Interesse und auf deinem lokalen System. Bei so plumpen Anmach-Versuchen, wie "interne Variablen verändern/lesen" oder "Klick/Tastendruck simulieren", ist VAC sehr zickig und leert dir schon mal ihr Getränk über. Die merkt nämlich schnell, dass du sie nur betrügen willst und ne schnelle Nummer. Dann brauchst du n großen Geldbeutel, denn Valve wird dir sicher nicht erzählen was geht und was nicht und das immer mit Try-And-Error zu probieren wird teuer. Auch für solche Tests würde ich dir empfehlen, einen neuen Account zu erstellen und dort neu CS:GO zu kaufen. Zu leicht, hast du mal bei deinem lokalen Server den Haken bei VAC vergessen auszuschalten und dann ist mal eben deine Spielesammlung auf Steam weg. Wenn es dir echt darum geht, einfach mal zu schauen, wie man so etwas macht (wieso auch sonst... gibt ja 9001 mögliche Alternativen. Allein die Google-Suche nach TriggerBot zeigt bei mir direkt als ersten Treffer einen für CS:GO [wohl ein Spiel mit Leuten ohne Maustasten] mit Download-Link): Ich bin ein Freund von 4AFFE44, aber ist diese echt markante Stelle sicher nicht von einem deutschen Programmierer, der Spaß hat, wenn du dich zum AFFEn machst? Wenn nicht, ist das tatsächlich immer der gleiche Offset bei jedem Start? Laut deinem C++-Code ist die Stelle von einigen anderen Werten abhängig: Code: [AUSKLAPPEN] clientbase = GetModuleBaseExtern(pid, "client.dll");//get the "client.dll"
... ReadProcessMemory(hProcess, (LPCVOID)(clientbase + 0x8D5C48), &Localentity, sizeof(DWORD), NULL);//read out the localentity, more information in the offset tutorial ReadProcessMemory(hProcess, (LPCVOID)(Localentity + 0x1DD8), &InCross, sizeof(int), NULL);//read out if an entity is in your cross, more information in the offset tutorial Damit wenigstens so tun kannst, als wäre das ne akademische Frage, hier ein paar Denkanstöße, damit du lernen kannst, was dein C++-Beispielcode macht: Das & vor den Variablen bei ReadProcessMemory übergibt sie per Referenz. Das heißt die Funktion ReadProcessMemory kann ihren Rückgabewert direkt in die übergebene Variable schreiben. Du siehst also: am Anfang brauchst du die "clientbase". Woher die GetModuleBaseExtern bekommt, musst du dir wohl oder übel aus dem Code für die Funktion am Anfang des Code-Blocks versuchen zu erarbeiten. In der Schleife wird dann immer erst ReadProcessMemory mit clientbase + 0x8D5C48 aufgerufen und das Ergebnis landet in "Localentity" (das hat das & am Anfang). Dann das gleiche mit Localentity + 0x1DD8 und das Ergebnis landet in "InCross". Diese Info brauchst du dann wohl, denn später kommt: Code: [AUSKLAPPEN] //triggerbot part
if(GetAsyncKeyState(VK_XBUTTON1) && InCross > 0 && InCross <= 64)// all player have a id between 0 and 64, more information you will find in the offset tutorial Dann Klick und schieß ihm in den Fuß und das stört ihn nicht, weil kein Geld für AWP gehabt. Wenn du jetzt gedenkst das irgendwo online einzusetzen auf Servern, die keine "Probiert eure cheats hier aus"-Server sind, komme ich in deinen Träumen und bewerfe dich mit Pointern. Ich bin ein Freund von Informationsfreiheit. Auch bei Bombenbauanleitungen. Das heißt nicht, dass ich will, dass alle Bomben bauen und sie außerhalb von Feuerwerk einsetzen. Übrigens: Anti-Virus-Programme finden es auch suspekt, wenn ein Programm im Speicher anderer Programme rumsucht und dann Tastendrücke simuliert. |
||
Gehe zu Seite Zurück 1, 2, 3, 4 Weiter
Übersicht
![](/themes/Standard/arrow.png)
![](/themes/Standard/arrow.png)
Powered by phpBB © 2001 - 2006, phpBB Group