Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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 :-)

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)

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.

  • Autor

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

  • Autor

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?

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

  • Autor

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 ;)

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.