Hey,
Ich spiele mittlerweile wieder ein bisschen mit Gamehacking rum, ich wollte zunächst für 3.3.5a Privatserver (Rising Gods) ein Programm machen womit man Netzwerk Pakete auslesen & senden kann.. das ganze war mir bisher aber dann noch zu komplex, weswegen ich nun etwas rumspielen wollte mit Game Internen Funktionen wie zb SetZoom, ReloadUI,SendChatMessage etc.
Ich hab nun versucht die Gamefunktion SendChatMessage in einem C++ Programm (naja, in ner dll die ich injecte^^) zu integrieren, aber wenn ich dann das ganze injecte passiert rein 0.
Ich hab schon zuvor mit einigen Gamefunktionen rumgespielt, und auch schon Diverse Dinge hinbekommen.. an dem Grundaufbau der Dll oder den Mangelnden Rechten der Dll liegt es also schon einmal nicht.
Es gibt eben auch keinerlei Absturz oder sonstige Typischen Anzeichen für einen Fehler. Ich zeig euch mal wie ich das ganze realisiert habe bis dato..
Normalerweise nutze ich ein Offset für das ganze, habe ich aber diesmal weggelassen um eventuelle Fehler vorzubeugen bezüglich der ermittlung der Adresse mit dem Offset.
Wie gesagt, ich injecte das ganze und.. nichts. Keine Chatmessage im Say-Chat, kein garnichts. Weiß jemand ob ich einen fehler in meinem typedef oder sonstwo habe? Ich bin noch nicht so erfahren in dem ganzen und bin noch beim lernen.. deshalb weiß ich nicht genau ob das alles passt (müsste es aber denke ich, sonst müsste es ja ein Crash o.ä geben).
Ich habe es mal versucht mit CE zu debuggen, und habe ein breakpoint auf SendChatMessage gesetzt.. es scheint aufgerufen zu werden durch meine dll, aber es passiert nichts :-?
Ich wäre wirklich ultra Glücklich wenn mir da jemand mal drüberschauen könnte
Die Lua Funktionen sind cdecl, nicht stdcall, so wie so ziemlich jede Funktion in WoW die keinen this Zeiger erwartet.
Deine Parameter sind falsch, du darfst bei den Lua Funktionen nur einen Parameter pushen, das wäre der Lua State. Der Rest würde mit den Lua internen Funktionen gepusht werden (lua_pushXXX).
Würde dir empfehlen FrameScript_Execute (0x00819210) zu verwenden.
Nicht zu vergessen das du das Ganze aus WoWs Main-Thread heraus aufrufen musst. Also entweder irgendne Main-Thread Funktion hooken, oder mit SetThreadContext injecten etc.
Die Lua Funktionen sind cdecl, nicht stdcall, so wie so ziemlich jede Funktion in WoW die keinen this Zeiger erwartet.
Deine Parameter sind falsch, du darfst bei den Lua Funktionen nur einen Parameter pushen, das wäre der Lua State. Der Rest würde mit den Lua internen Funktionen gepusht werden (lua_pushXXX).
Würde dir empfehlen FrameScript_Execute (0x00819210) zu verwenden.
Nicht zu vergessen das du das Ganze aus WoWs Main-Thread heraus aufrufen musst. Also entweder irgendne Main-Thread Funktion hooken, oder mit SetThreadContext injecten etc.
Hm...
Aber bei Minimap:SetZoom(int zoom) konnte ich es ja auf diesem Wege den ich beschrieben hatte auch ohne Probleme benutzen
Verwirrt mich das es dann bei SendChatMessage nicht klappt wie ich mir das vorstelle.
Zumindestens mal vielen dank für die Hilfe, ich werde es mal so wie von dir beschrieben angehen (hätte echt gedacht es ist stdcall *hust* danke *g*).
p.s: Ist die himym.lua frei erfunden, oder ist das eine interne lua datei die ich zwingend mit übergeben müsste? Oder wäre es damit sogar möglich eigene Lua Funktionen einzubauen?
Minimap::SetZoom ist dann vermutlich keine Lua Funktion (nehme an 7F3AE0?). Wenn du sie ebenfalls als stdcall deklariert hast kracht es mit Glück nicht sofort.
Der Dateiname dient bei Execute nur zu Debugging-Zwecken, falls ein Lua Error rausgehauen wird. Den Parameter musst du immer übergeben, und wenn du nur nen "" angibst.
Minimap::SetZoom ist dann vermutlich keine Lua Funktion (nehme an 6448F5?). Wenn du sie ebenfalls als stdcall deklariert hast kracht es mit Glück nicht sofort.
Also die SetZoom die ich rausgesucht habe (IDA) liegt bei
Code:
(WoW.exe+0x17BFD0)
Und soweit ich das ganze in Erinnerung habe (hatte es nur kurz getestet) müsste das eigendlich eine cdecl gewesen sein, da bin ich mir aber nicht mehr genau sicher. Ich komme da noch nicht wirklich klar mit dem unterscheiden von cdecl und stdcall in IDA Pro..
Quote:
Originally Posted by Cencil
Der Dateiname dient bei Execute nur zu Debugging-Zwecken, falls ein Lua Error rausgehauen wird. Den Parameter musst du immer übergeben, und wenn du nur nen "" angibst.
Und, das ist dann wohl das bekannte "hax.lua" von einem gewissen Hack für WoW der noch für 4.x war.. okay, dann ist das klar
Also die SetZoom die ich rausgesucht habe (IDA) liegt bei
Code:
(WoW.exe+0x17BFD0)
Und soweit ich das ganze in Erinnerung habe (hatte es nur kurz getestet) müsste das eigendlich eine cdecl gewesen sein, da bin ich mir aber nicht mehr genau sicher. Ich komme da noch nicht wirklich klar mit dem unterscheiden von cdecl und stdcall in IDA Pro..
Und, das ist dann wohl das bekannte "hax.lua" von einem gewissen Hack für WoW der noch für 4.x war.. okay, dann ist das klar
Vielen Dank & Schöne Nacht noch
Verwunderlich weil du wieder direkt ne Lua Funktion gecallt hast.
Bei cdecl hat der caller den Stack aufzuräumen.
z.B. erkennbar an add esp, anzahl Pushs * 4 (kann sich mit anderen cdecl Funktionen überlappen) unmittelbar nach dem Call.
Außer cdecl und thiscall ist bei 3.3.5 nichts relevant für dich.
Der Move war unnötig.. das ist schon in der C++ Section gut aufgehoben gewesen.. Meine Frage ist schließlich über C++ coding wo ich hilfe such(t)e und nicht über Dinge die spezifisch für Privatserver sind.
Ich höre nichts, nichts von Youtube nichts. 09/19/2012 - Technical Support - 19 Replies Also mein Problem ist schwer zu beschreiben , also bitte nicht rumfluchen wenn ich etwas nicht korrekt ausdrücke.
So ich hab ein paar Programme installiert, und nach einer Zeit kam unten eine Meldung (habe Windows 7), dass irgend ne Prmium Sound Dings installiert wurde.
So jetzt klicke ich auf meinen Lautsprecher und dann kommt das :
http://i.epvpimg.com/V31Fh.png
Dann hab ich auf den Lautsprecher geklickt und da kommen 2 Lines, Line I und Line II:
http://i.epvpimg.com/0GZ4b.png
k.A...
One-Man-Army! Was bewirkt es? 07/18/2012 - Call of Duty - 5 Replies Habe leider grad kein MW2 um nachzuschauen, aber muss es dringend wissen. Kann danach auch sofort geclosed werden!
Was bewirkt das Perk One-Man-Army / Pro?
Was bewirkt Stamania? 11/12/2010 - WarRock - 8 Replies Ich habe viele meinungen gehört was es bewirken soll z.B. dass es den Spieler schneller macht usw...
Jetzt wollte ich von Spielern ,die Stamania nutzten, wissen was genau es bewirkt.