Jump to content
Welcome, Guest
Existing user? Sign In

Sign In



Sign Up
The MatriX
  • Welcome To Ghbsys
  • CS GO Streaming Version is released. Have fun streaming while cheating!
  • Have a Payment Issue? Send us a Support ticket.
  • Make a thread if you need support or join our discord for live support.
  • Have Suggestions? Make a thread and you'll earn Ghbsys Points for implemented suggestions.
  • Join our discord to stay well connected! Don't forget to integrate your discord to the site
  • Welcome to [GHB] - GAmEhAcKbAsTaRdS Forum

    Welcome to [GHB] - GAmEhAcKbAsTaRdS Forum, like most online communities you must register to view or post in our community, but don't worry this is a simple free process that requires minimal information for you to signup. Be apart of [GHB] - GAmEhAcKbAsTaRdS Forum by signing in or creating an account.
    • Start new topics and reply to others
    • Subscribe to topics and forums to get email updates
    • Get your own profile page and make new friends
    • Send personal messages to other members.

    Hilfe zu WritememoryProcess (Log)


    Guest Stümper
     Share

    Recommended Posts

    Guest Das 5. Rad

    wwc:

     

     

    Hallo,

    ich habe da mal eine wichtige Frage und ich hoffe jemand kann mir weiterhelfen:

     

    Wenn ich in VB8 früher NoSpread gecodet habe, schaut das so aus:

    QUELLTEXT

    Writememory(&Haddie, 1, 4)

     

     

    Wenn ich nun aber so einen Writememory Hack mit anderen Valuen und Offsets machen will, wie z.B.

    QUELLTEXT

    Writememory(&Haddie, 6, 9)

    ,

    wie würde das dann in D3D ausschaun?

     

    Ich kenne in D3D den Code für NoSpread so:

    QUELLTEXT

    if (Nospread)

    {

    long t=0;

    unsigned long Protection;

    VirtualProtect((void*)spread_addie, sizeof(t), PAGE_READWRITE, &Protection);

    memcpy((void*)spread_addie, &t , sizeof(t));

    VirtualProtect((void*)spread_addie, sizeof(t), Protection, 0);

    }

     

     

    Wie kann ich das ändern, damit das Offset und Value anders sind?

    Ich hoffe ihr habt mich verstanden und könnt mir weiterhelfen.

     

    Danke im Voraus

     

     

    Neo:

     

     

    mhh? http://ghbsys.net/ghb/index.php?showtopic=666

     

     

     

    silex:

     

    erstens mal ist das nicht d3d denn d3d is keine programmier sprache -.- das ist c++ und der code säh so aus :

     

    CODE

    #define spread_addie 0x92092029 // das musste noch adden

    if (Nospread)

    {

    long t=1; //Value <

    unsigned long Protection;

    VirtualProtect((void*)spread_addie, sizeof(t), PAGE_READWRITE, &Protection);

    memcpy((void*)spread_addie, &t , sizeof(t));

    VirtualProtect((void*)spread_addie, sizeof(t), Protection, 0);

    }

     

     

    Der Beitrag wurde von silex bearbeitet: Gestern, 08:24 PM

    Link to comment
    Share on other sites

    • 3 weeks later...

    Also:

     

    memcpy((void*)spread_addie, &t , sizeof(t));

     

    spread_addie -> ist die Adresse an die dein Buffer kopiert wird. Hier kannst du einfach die Adresse rein schreiben(mit 0x).

    &t -> müsste ein Pointer zum Buffer sein. Hier kannst du die Value auch direkt rein schreiben.

    sizeof(t) -> Gibt die Größe des Buffers an, damit die Funktion weiß, wie viele Zahlen/Buchstaben/etc. sie in den Speicher schreiben muss. sizeof() gibt zurück wie groß der übergebene Wert ist.

     

    Beispiel:

    memcpy((void*)0x00123ABC, (void*)((int) 123), sizeof(int));

    So, in dem Beispiel ist das erste die Adresse, das müsste klar sein.

    Das zweite der Wert/Value, einfach ist es einen Pointer zu einer Variable zu nehmen. (Wie is bei dir im Code ist)

    Das letzte ist die größer der Value, die wir ja mit sizeof bestimmen. Wieso sizeof(int) und und nicht sizeof(123)? -> Weil deine Zahl ein Intiger ist, bzw. zu einem gemacht wurde durch das (int).

     

     

    Ich hoff mal du verstehst alles

     

     

    edit:

    @Neo + silex: Könnt ihr nicht antworten? Hab erst jetzt festgestellt, das ihr schon geholfen habt, egal ich habs nommal ausführlicher.

     

    edit2:

    Und wieso ist der eigentliche Thread als Anhang dabei, langsam versteh ich gar nix mehr.

    Edited by SWW13
    Link to comment
    Share on other sites

    Also:

     

    memcpy((void*)spread_addie, &t , sizeof(t));

     

    spread_addie -> ist die Adresse an die dein Buffer kopiert wird. Hier kannst du einfach die Adresse rein schreiben(mit 0x).

    &t -> müsste ein Pointer zum Buffer sein. Hier kannst du die Value auch direkt rein schreiben.

    sizeof(t) -> Gibt die Größe des Buffers an, damit die Funktion weiß, wie viele Zahlen/Buchstaben/etc. sie in den Speicher schreiben muss. sizeof() gibt zurück wie groß der übergebene Wert ist.

     

    Beispiel:

    memcpy((void*)0x00123ABC, (void*)((int) 123), sizeof(int));

    So, in dem Beispiel ist das erste die Adresse, das müsste klar sein.

    Das zweite der Wert/Value, einfach ist es einen Pointer zu einer Variable zu nehmen. (Wie is bei dir im Code ist)

    Das letzte ist die größer der Value, die wir ja mit sizeof bestimmen. Wieso sizeof(int) und und nicht sizeof(123)? -> Weil deine Zahl ein Intiger ist, bzw. zu einem gemacht wurde durch das (int).

     

     

    Ich hoff mal du verstehst alles

     

     

    edit:

    @Neo + silex: Könnt ihr nicht antworten? Hab erst jetzt festgestellt, das ihr schon geholfen habt, egal ich habs nommal ausführlicher.

     

    edit2:

    Und wieso ist der eigentliche Thread als Anhang dabei, langsam versteh ich gar nix mehr.

     

     

    Sehr nett von euch, das hat mir wirklich viel geholfen. Danke für die ausführliche Erklärung

    Link to comment
    Share on other sites

    Guest
    This topic is now closed to further replies.
     Share

    • Recently Browsing   0 members

      • No registered users viewing this page.
    ×
    ×
    • Create New...