-Direct Memory Access-

Übersicht BlitzBasic DLLs und Userlibs

Gehe zu Seite Zurück  1, 2, 3, 4  Weiter

Neue Antwort erstellen

 

Coffee

BeitragSo, März 09, 2008 15:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Fenstertitel oder Fensterklasse sollten gehen.

MfG
*Mjam*

Cireva

BeitragDi, Dez 30, 2008 17:46
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDi, Dez 30, 2008 17:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Libary und die declerations dazu in den richtigen Ordner, nämlich Blitz3D/Userlibs, kopieren. :/

Cireva

BeitragMi, Dez 31, 2008 13:36
Antworten mit Zitat
Benutzer-Profile anzeigen
und was ist wenns den ordner userlibs nicht gibt ?!?!?!

coolo

BeitragMi, Dez 31, 2008 13:43
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Dez 31, 2008 13:55
Antworten mit Zitat
Benutzer-Profile anzeigen
hab ich ja aber funktioniert trotzdem nicht
selber fehler

Der Eisvogel

BeitragMi, Dez 31, 2008 13:55
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Dez 31, 2008 14:00
Antworten mit Zitat
Benutzer-Profile anzeigen
zur Zeit schon noch Wink
funktioniert des dann net?

Der Eisvogel

BeitragMi, Dez 31, 2008 14:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ne mit der Demo nicht, da musst du dann auf CallDll umsteigen.
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

BeitragMi, Dez 31, 2008 14:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok danke für die Antworten und einen Guten Rutsch ins neue Jahr
 

mactep

BeitragSa, März 16, 2013 18:09
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, März 16, 2013 18:44
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDi, März 19, 2013 13:39
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDi, März 19, 2013 18:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Jedes programm hat seinen eigenen virtuellen speicher und kann diesen vollständig und belibig selbst nutzen.

DAK

BeitragDi, März 19, 2013 19:05
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDi, März 19, 2013 21:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay, das hillft weiter.Vielen Dank !
 

mactep

Betreff: CS GO : Trigger bot Frage

BeitragMo, Apr 13, 2015 17:19
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Xeres

Moderator

BeitragMo, Apr 13, 2015 19:16
Antworten mit Zitat
Benutzer-Profile anzeigen
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
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

mactep

BeitragMo, Apr 13, 2015 19:45
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Apr 13, 2015 20:18
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Neue Antwort erstellen


Übersicht BlitzBasic DLLs und Userlibs

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group