Memory Scanner, Namensliste bekommen?



  • Aber selbstverständlich... wenn überhaupt 😉



  • Hm Super vielen Dank für diesen Tip,
    sorry das ich erst jetzt antworte, aber ich habe nur in der Woche Internet.

    Also es sind ganz viele Strings nicht nur einer.Wie kann ich denn Filtern welcher String ausgelesen wird, oder bekommt ich ein array mit Strings zurück ?

    Mir ist die Funktionsweise nicht ganz klar, und in der Doku konnte ich auch keine
    Hilfe dazu finden ?



  • Kleine Frage am Rande, wie kann ich den kompletten Speicher scannen? Erhalte ich da nicht eine Exception Memory Error? 😕



  • Flubber33 schrieb:

    Kleine Frage am Rande, wie kann ich den kompletten Speicher scannen? Erhalte ich da nicht eine Exception Memory Error? 😕

    So z.B.
    http://www.codeproject.com/csharp/sojaner_memory_scanner.asp
    😉



  • Naja, das hab mich mit ein wenig googlen auch gefunden. Da wird mir aber nur gesagt, wie ich den gelesenen Buffer verarbeiten kann.

    Meine Frage ist, wie ich erstmal den kompletten Speicher lesen kann um ihn dann zu verarbeiten??
    zb. 1GB RAM? 🙂

    Kann ich einfach bei Speicheradresse 0 anfangen?

    DWORD *first = 0x00start? 🙂



  • Hab mich jetzt nochmal ein wenig schlauer gemacht,
    mit WM_GETTEXT kann ich doch nur den Fenstertitel auslesen oder kann man damit etwa noch was anderes auslesen, weil

    SendMessage(hWnd, WM_GETTEXT, sizeof(str), (ULONG)str);
    

    damit bekomm ich nur den Fenstertitel zurück, ich brauche aber Strings die im Speicher des Programms abgelegt sind.
    Ich hab mir auch den Link durchgelesen, mir ist also bisher nur eine Lösung eingefallen, und das wäre den kompletten Speicher Blog für Blog zu Scannen und schauen ob ich damit irgendwie einen String erzeugen kann.
    Das würde aber ewig dauern.... Es muss doch noch irgendwie funktionieren.

    Ich erbitte um Hilfe oder ne ICQ nummer 😃



  • PaPsT schrieb:

    ... und das wäre den kompletten Speicher Blog für Blog zu Scannen ...

    Mit VirtualQueryEx () kannst Du den Bereich erheblich einschränken. Anders arbeitet "ArtMoney" auch nicht.
    🙂



  • Ok danke, jeder Krümmel hilft mir 😉
    Trotzdem hab ich erfahren, das GETTEXT eigentlich auch Labels etc zurückgeben kann,
    aber egal wo ich das benutze, ich bekomme nur den Titel zurück.
    Vielleicht ist ja auch was am Code falsch ??

    #include <windows.h>
    #include <iostream>
    
    using namespace std;
    
    int main(void)
    {
        HWND hWnd;
        char str[255];
    
        hWnd = FindWindow(0,"Google - Microsoft Internet Explorer");
        if(!hWnd){
            cout << "Opfer NOT Found" << endl;
            Sleep(10000);
            return 0;
        }
        cout << "Opfer Found" << endl;
        SendMessage(hWnd, WM_GETTEXT, sizeof(str), (ULONG)str);
        cout << "Ergebniss: " << str << endl;
        Sleep(10000);
        return 0;
    }
    

    Da bekomm ich einfach nur den titel zurück.... keinerlei Inhalt



  • Flubber33 schrieb:

    ...
    Kann ich einfach bei Speicheradresse 0 anfangen?
    DWORD *first = 0x00start? 🙂

    🕶
    😃 Direct Kernel Object Manipulation (DKOM) 😃
    http://www.heise.de/security/artikel/68243/2 👍
    🙂



  • PaPsT schrieb:

    Trotzdem hab ich erfahren, das GETTEXT eigentlich auch Labels etc zurückgeben kann, ...

    Prüf mal ob die Labels mit den Spielernamen ein eigenes Fensterhandle haben. Dazu eignet sich z.B. dieses Tool (ein Customizer).
    Probier dann die Fensterhandle der Labels mit SendMessage (hWndvonLabel, WM_GETTEXT, sizeof(str), (ULONG)str).



  • damit bekomme ich immer nur den titel des Fensterhandles, wenn es überhaupt einen gibt....
    Ach man schade, einen echten Memoryscanner zu bauen werde ich wohl nicht gebacken bekommen...



  • Auf die Art wird das verm. auch nichts.

    Ich vermute mal, dass die Spielername die du dort siehst nicht unbedingt in den Windows Fensterinformationen zu finden sind.

    Verm. wird der Text über Directx o. ä. dargestellt.

    Wenn du in Java fit bist, dann könntest du schauen ob du die Anwendung nicht einfach hinter einen Proxy setzt und die Daten aus den Packets holst <<< ev. einfacher als über Windows.

    Ansonsten wird verm. nur gehen, dass du die Directx API hookst und die relevanten Informationen filterst.


Anmelden zum Antworten