tutorials.de Buch-Aktion 05/2012
Seite 1 von 6 1234 ... LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
76
ZUGRIFFE
2130
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    glnklein glnklein ist offline Mitglied
    Registriert seit
    Jun 2010
    Beiträge
    20
    hallo , also erstmal ich bin noch TOTALER anfänger mit c++ und bin gerade erst dabei die ganzen funktionen zu lernen ,

    ich bin nicht so der Bücherwurm sondern eher Learning by Doing hab so auch schon einiges gelernt nur zu diesem thema oder auch zu c++ algemein muss
    man leider nach guten hilfen viel suchen , (PHP war da einfacher)


    nun meine frage

    Ich habe einen Speicheradresse sagen wir mal 0x07250340 diese hat jetzt den wert 5 nun möchte ich mit c++ den wert ändern sagen wir einfach in 6 .

    kann mir einer kurz erklären oder zeigen wie das geht ich habe schon einige tut durchgeschaut aber leider keine anleitung gefunden die wirklich so ein thema behandelt ,

    danke
     

  2. #2
    Avatar von Endurion
    Endurion Endurion ist offline Mitglied Diamant
    Registriert seit
    Apr 2004
    Beiträge
    2.151
    Hast du ein Problem mit der Syntax?

    Die direkte Version:

    unsigned char* pPointer = 0x07250340;
    *pPointer = 6;


    Allerdings sind die Zeiten andere geworden. Du kannst nicht wild im Speicher rumpörkeln. Der Bereich, auf den der Pointer zeigt, ist besser deiner und beschreibbar. Sonst musst du mit lustigen Effekten wie Abstürzen rechnen.
     

  3. #3
    glnklein glnklein ist offline Mitglied
    Registriert seit
    Jun 2010
    Beiträge
    20
    ja irgentwie stimt mit dem syntax was nicht wen ich deinen benutze

    Code :
    1
    2
    3
    4
    5
    6
    
    #include<iostream>
     
     
        
        unsigned char* pPointer = 0x07250340;
    *pPointer = 6;

    bekomme ich folgende fehler

    zeile 5 C:\Dev-Cpp\Unbenannt1.cpp invalid conversion from `int' to `unsigned char*'
    zeile 6 C:\Dev-Cpp\Unbenannt1.cpp expected constructor, destructor, or type conversion before '=' token
    zeile 6 C:\Dev-Cpp\Unbenannt1.cpp expected `,' or `;' before '=' token



    ich dachte es geht so :


    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    #include<iostream>
       
     
        int main()
        {
         int *i_ptr = (int*)(0x07250340);
    *i_ptr = 5;
        }

    doch das geht auch nicht da stürzt es nur ab

    weist du was da falsch ist ?
     

  4. #4
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    Zitat Zitat von glnklein Beitrag anzeigen

    doch das geht auch nicht da stürzt es nur ab

    weist du was da falsch ist ?
    Was meinst du mit abstürzen? Wenn das alles ist, was dein Programm macht, dann dauert die Ausführung weniger als 1 Sekunde. Setze mal ein
    Code cpp:
    1
    
    system("PAUSE");
    dahinter.
     
    Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
    ( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
    "Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
    RegEx Tutorial
    PHP Funktionsreferenz

  5. #5
    glnklein glnklein ist offline Mitglied
    Registriert seit
    Jun 2010
    Beiträge
    20
    ich habso gemacht


    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    #include<iostream>
       
     
        int main()
        {
         int *i_ptr = (int*)(0x07250340);
         system("PAUSE");
    *i_ptr = 5;
     
        };

    und bekomme wieder einen absturz die adresse ist aber richtig

    bildabsturz:
    http://www4.pic-upload.de/06.06.10/ptxp8ldddrbf.jpg
     

  6. #6
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Was heißt das, die Adresse ist richtig?
    Was soll denn das für eine Adresse sein?

    Wie Endurion schon gesagt hat, verwindert Windows, dass du einfach so in den Speicher von anderen Programmen etc hineinschreibst.
    Du kannst nur auf Speicher zugreifen, der dir auch gehört
     

  7. #7
    glnklein glnklein ist offline Mitglied
    Registriert seit
    Jun 2010
    Beiträge
    20
    äHHHHHHHHHH WAS mir gehören was meints du den damit

    also das program was diesen speicher benutz ist auf meinem rechner drauf und ist gestartet wenn du das meinst

    und wenn ich mir den speicherbereich ansehe hat er derzeit einen wert von 5 und nun mmöchte ich den bereich ersetzen durch einen wertt von 6 das ist was ich vor habe fang ich das falsch an ?
     

  8. #8
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Damit meine ich, der Speicherbereich, den du ändern willst,
    muss nicht nur in deinem Computer sein, sondern auch zu dem Programm gehören, das ihn ändern will
    In DOS-Zeiten hat man zwar den genzen RAM nach belieben beschreiben können, aber das ist bei der heutigen Virenverbreitung ziemlich undenkbar.
    Windows hat inzwischen einen Schutzmechanismus, das ein Programm eben nur seinen eigenen, zugeteilten Speicherbereich bearbeiten darf.
     

  9. #9
    glnklein glnklein ist offline Mitglied
    Registriert seit
    Jun 2010
    Beiträge
    20
    ok
    kann es sein das ich mich dan falsch ausgedrückt habe dann nochmal von vorne

    also ich habe das spiel solitär und die adresse 0x0045A394 ist bei mir für den punktestand zuständig dieser ist jetzt 10
    nun möchte ich c++ den wert auf 300 ändern , also das ich 300 punkte habe , das müste doch gehen oder und wen ja wie ,weis das jemand

    könnte mir da jemand einen kleinen code geben das ich das mal testen kann ?
    Masterclavat bedankt sich. 

  10. #10
    glnklein glnklein ist offline Mitglied
    Registriert seit
    Jun 2010
    Beiträge
    20
    So also ich hab es nun geschaft zumindest funktioniert es

    mein Code

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    
    #include <stdio.h>
    #include <iostream>
     
    using namespace std;
     
    int main()
    {            
        cout << "neuer wert? ";
        int wert;
        cin>>wert;     
        
       
       
     
     
                     
        cout << "\nwert schreiben ?\n\n0=Nein 1=JA ";
        int eingabe;
        cin>>eingabe;     
        if(eingabe==0)
        {
                      return 0;
        }
      
        HWND window = NULL;
        while(window == NULL)
        {
                      Sleep(100);
                      window = FindWindow(NULL, "Solitär");
        }
        DWORD prozess;
        GetWindowThreadProcessId(window, &prozess);
        HANDLE handle;
        handle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, prozess);
        DWORD puffer = NULL;
      
             switch(eingabe)
        {
        case 1:
            WriteProcessMemory(handle,(void*)(0x0045A394),&wert,6,&puffer);
     
            break;
      
     
         
        CloseHandle(handle);  
        
        
    } 
    return 0;   
    }


    könnte einer der ahnung hat mal drüberschauen und mir sagen ob das so alles sauber ist oder ob fehler drin sind ?

    danke
     

  11. #11
    Avatar von ComFreek
    ComFreek ComFreek ist offline [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.358
    Blog-Einträge
    4
    Willst du etwa dein Spielstand ändern und sozusagen schummeln?
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  12. #12
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    Zitat Zitat von ComFreek Beitrag anzeigen
    Willst du etwa dein Spielstand ändern und sozusagen schummeln?
    Ja das will er. Also irgendwie finde ich das ziemlich arm.
     
    Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
    ( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
    "Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
    RegEx Tutorial
    PHP Funktionsreferenz

  13. #13
    glnklein glnklein ist offline Mitglied
    Registriert seit
    Jun 2010
    Beiträge
    20
    das war nur ein test mit Solitär weil hier im forum viele das spiel solitär nehmen dachte ich das währe so der standart


    ich will in einem spiel die mindestzahl der spieler heraufsetzen nicht schummeln

    Stimmt mein code den jetzt so oder ist der müll ?
     

  14. #14
    Pain-maker Pain-maker ist offline Mitglied Silber
    Registriert seit
    Sep 2005
    Beiträge
    69
    Vielleicht kann mich ja mal jemand korrigieren, wenn ich falsch liege, aber ich bezweifel, dass das immer funktioniert.
    Ich vermute mal, dass das unter Windows passiert und da sollte eigentlich der Speicherschutz greifen und den Zugriff auf den fremden Bereich verbieten, oder?!
    Oder wird durch "OpenProcess()" automatisch der Zugriff daruf erlaubt?
    Und noch was: Die Adresse kann theoretisch immer wieder eine andere sein, je nach dem wie das OS gerade den virtuellen Speicher zugewiesen hat, oder?
     

  15. #15
    Avatar von ComFreek
    ComFreek ComFreek ist offline [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.358
    Blog-Einträge
    4
    Zitat Zitat von Pain-maker Beitrag anzeigen
    Und noch was: Die Adresse kann theoretisch immer wieder eine andere sein, je nach dem wie das OS gerade den virtuellen Speicher zugewiesen hat, oder?
    Dachte ich auch. Ich habe das kurz ausprobiert, es ist immer die selbe Adresse, zumindest bei meinem Programm.

    Ach ja, habe kurz dein Programm ausprobiert (natürlich mit Solitär im Hintergrund), aber es funktioniert nicht.
    Geändert von ComFreek (06.06.10 um 13:46 Uhr)
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

Ähnliche Themen

  1. Mehrere Inputfelder mit dem selben Wert füllen
    Von knoebi im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 10.03.08, 18:54
  2. Antworten: 7
    Letzter Beitrag: 10.03.08, 12:17
  3. input Feld mit Wert aus Array füllen
    Von Bencher im Forum Javascript & Ajax
    Antworten: 9
    Letzter Beitrag: 01.04.06, 22:47