Niemand!
Bekanntes Mitglied
Hi
Will aus einem Spiel eine Variable Filtern, welche immer an anderer Stelle
zu finden ist. Ich hab die Lösung in Assembler inkl einer kleinen Beschreibung,
weiss damit aber nichts anzufangen, da ich kein Assembler kann. Es macht,
denke ich auch nicht Sinn, Assembler wegen sowas kleinem zu lernen oder?
Ziel ist es, die zwei vars mit C++ auszulesen. Also das auslesen usw ist kein
Problem, sondern an die gültige Adresse zu kommen.
Vielen Dank schon mal!
Will aus einem Spiel eine Variable Filtern, welche immer an anderer Stelle
zu finden ist. Ich hab die Lösung in Assembler inkl einer kleinen Beschreibung,
weiss damit aber nichts anzufangen, da ich kein Assembler kann. Es macht,
denke ich auch nicht Sinn, Assembler wegen sowas kleinem zu lernen oder?
005181D0 Lua_UnitHealth proc near
0051822A call GetObjectByGUID
0051826F mov edx, [esi+110h]
00518275 mov eax, [edx+40h] ; health
---
005182E0 Lua_UnitHealthMax proc near
00518339 call GetObjectByGUID
00518345 mov eax, [eax+110h]
0051834B mov ecx, [eax+58h] ; health max
jeder NPC/PC wird von der gleichen Basis Struktur abgeleitet, an der Stelle +0x110 befindet sich in dieser ein Zeiger zu einer weiteren Struktur mit den Werten für Health bei 0x40 und HealthMax bei 0x58. Da die Objekte beim einloggen jedes mal neu angelegt werden und somit sich an einer anderen Adressen befinden, speichert das Spiel einen GUID Wert von z.B. Target/Player/Merchant/Pet usw. an festen Stellen ab und wandelt ihn dann in den Zeiger zu dem Objekt mit der Hilfe von GetObjectByGUID um.
Ziel ist es, die zwei vars mit C++ auszulesen. Also das auslesen usw ist kein
Problem, sondern an die gültige Adresse zu kommen.
Vielen Dank schon mal!