Zum Inhalt springen

Fragen zu Offets


Angerf1st

Empfohlene Beiträge

Hallo zusammen,

ich beschäftige mich momentan mit Reverse Engineering von Spielen und Programmierung von Add-ons, Helfern (z.B. gegner sichtbar machen usw.).

Immer öfter lese ich den begriff "Nach einem Update ändern sich die offets".

Ich habe offsets so verstanden das es auf die Adresse Anfangs und Endadresse des Spiels zeigt bzw auf den adresseraum im ram in denen das spiel liegt. Stimmt das so? Denn mich verwirrt die tatsache das die offsets dann immer fest adressen im speicher zugewiesen bekommen. D.h. im RAM müsste ja genau das Spiel immer diese Adresse frei sein oder?

Was genau bewirken diese Offets?

Danke für eure hilfe :-)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ein Offset ist wie der Name schon sagt einfach ein Abstand. Z.B. der Abstand von einer Speicheradresse zu der Position wo bestimmte Daten liegen.

Z.B. hier

char *test = "Hello World";
printf("%s\n", test + 6);[/PHP]

Beginnt das Wort World beim Offset 6

PS: wenn ein Zeichen nicht genau 1 Byte groß wäre müsste man die Zeichenlänge natürlich bei der Berechnung des Offsets berücksichtigen. Also z.B. test + 6 * sizeof(char)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ein Offset ist nur eine Zahl, die "bewirkt" gar nichts.

Bestimmte Zustandswerte eines Programms werden an bestimmten Stellen im Speicher abgelegt. Diese Stellen sind niemals "fest" im Sinne einer Adresse im physischen RAM. Aber sie lassen sich wiederfinden, z.B. relativ zur Basisadresse eines Moduls im virtuellen Speicher. Und dieser relative Versatz (Offset auf deutsch) ändert sich gerne mal, wenn das Programm geändert wird, z.B. weil sich durch zusätzliche Variablen das Speicherlayout ändert.

Link zu diesem Kommentar
Auf anderen Seiten teilen

D.h. ein für mein Model(in game) müsste ich die Basis Offsets des Spiels suchen.

Dort sollten dann irgendwo meine Daten für das model liegen bzw die offsets des models?

(sorry ein "dümmeres" beispiel ist mir gerade nicht eingefallen :old)

Bearbeitet von Angerf1st
Link zu diesem Kommentar
Auf anderen Seiten teilen

Das Aussehen nicht. Ich bin gerade dabei einen einfachen wallhack zu schreiben sprich die ich lege ein Overlay auf die player models damit ich sie von überall sehen kann z.B. auch durch wände. (Hab mir das einfach mal als c++ übung rausgenommen ;-)).

Wenn ich das mit offsets jetzt richtig verstanden habe gibt es eine Adress Range in der die Daten für das player model stehen und das sind dann meine offsets?

Ich habe jetzt z.B. in meinem Buch folgenden Satz: "Dieser Code lädt die Adresse des Thread Information Block (TIB), der immer an Offset 0x18 vom FS-Register liegt."

Verstehe ich das richtig das in meinem Basisadress raum im virutellespeicher immer an der Adresse 0x18 steht?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich bin gerade dabei einen einfachen wallhack zu schreiben sprich die ich lege ein Overlay auf die player models damit ich sie von überall sehen kann z.B. auch durch wände. (Hab mir das einfach mal als c++ übung rausgenommen ;-)).
Das ist nach meiner Einschätzung vier bis fünf Nummern zu groß für dich.

Für das beschrieben Vorhaben bringt es dir nichts, wenn du weißt, wo die Daten des Models liegen. Eine Änderung dieser Daten hat nicht den beschriebenen Effekt. Weißt du, wie 3D-Computergrafik in etwa funktioniert?

Verstehe ich das richtig das in meinem Basisadress raum im virutellespeicher immer an der Adresse 0x18 steht?
Nein. Was du da schreibst, ergibt gar keinen Sinn.

Da steht über ein Stück Code, dass es die Adresse des TIB lädt, unter Ausnutzung der Tatsache, dass der TIB gegenüber FS immer den Offset 24 hat.

Bearbeitet von mfk
Link zu diesem Kommentar
Auf anderen Seiten teilen

ERrtmal danke für die Antworten.

Da kann ich dir nur zustimmen es ist schon ein großer schön großer Brocken aber es macht spaß sich damit zu beschäftigen.

Momentan beschäftige ich mich mit der Quake Engine.

Habe dir mal eine PM geschrieben :).

Wenn noch jmd anderen den thread liest feel free to answer ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...