Hey. Ich habe in C++ ein Projekt für ein MMORPG gemacht. Es ist eine DLL, die im Spiel einiges ausliest wie Leben etc. aber auch andere Sachen automatisiert mittels ASM. So weit so gut. Das MMORPG läd DLL Dateien automatisch mit, wenn man die DLL im Ordner des Spieles hat, und sie in .mix statt .dll umbenennt. Alles funktioniert.
Nun mein Problem: Starte ich die DLL via Injector (Hab viele probiert), crasht das Spiel wenn man ingame ist (Ingame werden erst Timer etc. zum Auslesen aktiviert). Nun gut, also hab ich überall Messageboxen gemacht und geguckt worans liegt. Es liegt am Auslesen des Lebens, was als MIX Datei funktioniert. Mache ich ein __try davor, crasht das Spiel nicht, aber die Funktion gibt mir 0 aus. Also garnichts. Merke: Als Mix geht genau diese Funktion auch
Das komische: Alles andere, auch andere ASM Funktionen funktionieren. Auch wenn die die Funktion per Button aufrufe, nichts.
Hier ist die Funktion:
Was ist damit los? Warum geht alles nur nicht diese Funktion wenn ich es injecte? Als Mix funktioniert das ja alles, auch das Auslesen des Lebens.
Es ist echt schwierig dieses Problem zu beschreiben..
Vielleicht kennt sich ja jemand aus. Vielleicht mache ich ja einen Fehler.
ungültig oder == 0.
von wo rufste denn auf, aus der dllmain?
evtl. da was nicht initialisiert/gültig weils als mix vom spielthread aufgerufen wird, beim injector aus dem remote thread.
kann es sein, dass die gethealth funktion i-wie ziemlich sinnfrei ist, speichert den wert in ner lokalen variable, gibt nix zurück oder aus O.o
und wieso benutzst du ü-haupt assembler, das meiste geht auch direkt mit c/c++ - und das viel sauberer.
Ich glaube es liegt auch daran, dass ich da was nicht initialisiere, denn auch eine andere Funktion gibt ohne einen Try einen Error (Als DLL), funktioniert aber dennoch.
Wie löse ich das denn am besten?
Könnte natürlich die Mix immer in den Ordner vom Spiel schicken per Launcher, aber injecten ist mir da lieber.
1. wäre es durchaus hilfreich zu sagen, dass es sich um Metin2 handelt.
2. wäre es nicht sinnvoller dir einen Wrapper für die Funktion oder Klasse zu schreiben?
Inline ASM kannst du in den meisten Fällen vermeiden, solltest du auch unbedingt tun. std::function oder die oldschool typedefs (oder die neuen mit 'using') sind da ziemlich klasse.
Wie oben schon erwähnt wurde hast du hier wahrscheinlich einfach threading issues, dein crash liegt vermutlich einem invaliden TLS zugrunde. NtSetInformationThread kann dir da abhilfe schaffen, oder du hookst einfach nen Spielthread.
Komisches Problem 10/29/2011 - Metin2 Private Server - 2 Replies Hallo,folgendendes,ich bin lvl1,wenn ich mich auf lvl5 level und danach einen reboot bei meinen server mache bin ich wieder lvl1,das gleiche ist auch wenn ich mich per gm befehle im level steigere,nach einen reboot wieder altes level
was kann das?
MFG
Komisches Problem mit LWC 04/14/2011 - Minecraft - 6 Replies Hallo zusammen,
seit heute habe ich endlich LWC auf meinem Server, oder auch nicht?
Folgendes Problem:
Ich kann befehle in game geben, er erkennt sie auch, sagt mir das die kiste geschützt ist, aber dennoch kommt jeder an die kiste ran.
Über die Info funktion lässt sich herausbekommen wer der owner is und ob ich zugang habe zur kiste oder nicht. Und gerade der Zugang steht nicht nur bei mir immer auf Yes - das steht auch bei nicht OPs auf yes.
Mit anderen worten LWC funktioniert und...
Komisches Tp Problem !!! Need Help 03/30/2010 - Diablo 2 - 5 Replies Hoi
also ich kann keine Tps mehr aufmachen per rechtsklick, wenn man auf die rechte Seite Stadtportal gelegt hat so wie es der Bot tut. Was heißt er kann kein tp machen und bringt mir immer ne Fehlermeldung siehe Bild.
Außerdem is mir aufgefallen das Ich 29 Tps immer dabei hab, obwohl nur 20 ins Buch passen, wenn ich alle aufgebraucht hab zeigt er mir immernoch 9 an.
:mad: Einer ne idee wie ichs wieder hinbiegen kann
http://img695.imageshack.us/img695/8726/blaqu.jpg
Komisches Problem 10/03/2009 - Diablo 2 - 3 Replies ich habe gestern mein diablo 2 mal versucht zu installieren und seit dem werden alle meine chars als tot hc chars angezeigt. ( mit kutte)
ausserdem sehe ich ingame meinen char den ich gerade spiele nicht mehr.
ich sehe alles hämmer bo monster nur mein char ist unsichtbar.
woran kann das liegen?
ich krieg n fön ich hab kein bock windows nochmal neu zu machen
kann mir plz einer helfen?
Komisches Problem 05/21/2007 - World of Warcraft - 12 Replies Moinsen,
Ich wollte euch kurz um Rat fragen.. Ich habe mir in den letzten 2 Wochen einen Paladin auf Level 19 gespielt/aufgemotzt (Teure Enchants etc)/PvP Gespielt. Nun macht mir der Paladin allerdings soviel Spass, dass ich ihn ganz gerne als Mainchar hochprügeln würde... Allerdings hätte ich ein schlechtes Gewissen bezüglich des Goldes für das Equip. Ich weiß nicht, ob ich das Gold extra für das PvP Equip wieder einmärzen kann... Und einen neuen Char will ich auch nicht machen (wäre dann...