LuaNinja v20091027a (Run Protected LUA-Code!)

11/13/2009 15:33 Horsedick.MPEG​#1
Purpose:

Disables the WoW API protection checks in order to allow arbitrary Lua code execution.

Detectability:

Unlike previous similar tools, this tool makes zero modifications or 'hooks' to WoW that can be detected by Warden in its current form. Unless I've overlooked something (which I'm certain I haven't), in order for this to be detected the Warden dev would have to add a brand new feature to Warden to detect the special type of hook I'm utilizing.

Lets be honest, the Warden guy is ridiculously lazy, so this should be safe for quite some time.

However, I obviously can't guarantee anything, so as always, you use this at your own risk.

Notes:

If you're wondering why I chose such a stupid name, it's because I'm lazy and unimaginative, and the hack was designed to be 'stealthy' like a ninja.

One small issue is with the way a couple of Lua functions are implemented. Whilst pretty much all Lua functions use the same function to do the protection check, a couple have 'inlined' it (meaning rather than call the function they have duplicated the functionality). There are only a couple, and from memory they're only some very new and very limited use APIs, however if you find one, please let me know and I'll see what I can do about fixing it in the next version.

Usage:

Extract the hack to anywhere you see fit and choose one of the following:
1) To inject via window name, run the "Window.bat" script.
2) To inject via process id, run the "Pid.bat" script, after modifying it to change the '--pid="1234"' in the command line to use the process id of your choice.
3) To inject via launching the process with the loader, run "Launch.bat" after modifying the script to use the path to your copy of WoW.

Assuming all goes well and the loader gives no errors, you should be able to run any Lua script you want without restriction.*

This does NOT require you to wrap your calls in any special function, you just write Lua the same way you normally would, except that protected functions should now be available. It should work anywhere (in the console, in addons, in macros, etc).

* See Notes section for minor restrictions.

Credits:

Greyman - Failing at indoor rockclimbing
Kynox - Being a filthy New-Zealander
Apoc - Being a filthy Amerifag
Harko - Being German! **** YEAH GERMANY!
All of the non-retarded people in the memory editing section.
All of the non-retarded people at game-deception.

Release:

[Only registered and activated users can see links. Click Here To Register...]
11/13/2009 15:42 Paddi2k5#2
dann mal direkt ein anwendungsbeispiel zu diesem tool:

Code:
/run c=CastSpellByName;if (UnitHealth("target")/UnitHealthMax("target")<0.2) then c("Execute") elseif not UnitDebuff("target", "Rend",unitCaster~="player") then c("Rend") elseif UnitBuff("player", "Taste for Blood") then c("Overpower") elseif UnitBuff("player","Sudden Death") then c("Execute")  elseif (GetSpellCooldown("Mortal Strike") == 0)  then c("Mortal Strike") else c("Slam") end
das makro automatisiert die rotation eines waffen kriegers
dH es casted execute wenn das ziel weniger als 20% hp hat
casted verwunden wenn es nicht auf dem target ist (oder zwar vorhanden aber nicht von dir)
casted überwältigen wenn der taste for blood buff vorhanden ist
casted hinrichten wenn der sudden death buff vorhanden ist
casted MS wenns rdy ist
wenn alles andere nicht zutrifft, casted das makro slam

Heroic strike hab ich nicht mit reingenommen...

ihr müsst nur die englischen begriffe durch die deutschen ersetzen und es funzt auch mit dem deutschen clienten

um dieses makro zu benutzen braucht ihr [Only registered and activated users can see links. Click Here To Register...]


ach und, unter vista/7 müsst ihr luaninja als admin ausführen sonst klappts nicht
11/13/2009 23:46 fropper#3
hat ja lang genug gedauert bis es wer hier gepostet hat
könntest aber schon dabei schreiben, dass Cypher der autor ist
11/14/2009 10:28 kaiN_92#4
Quote:
Originally Posted by fropper View Post
hat ja lang genug gedauert bis es wer hier gepostet hat
könntest aber schon dabei schreiben, dass Cypher der autor ist
Seh ich genauso.
Die Credits ausem Topic angeben is ja schonmal was..aber der Orginal-Autor sollte trotzdem mit rein.
11/15/2009 12:14 Littledagger#5
Kennt jemand nen gutes Macro für Shadow/Retri? :)
11/15/2009 16:22 me1337#6
insane :D
11/15/2009 18:28 GhostNeeded#7
und detectet ,) gab nen warden update vor kurzen.
11/15/2009 18:39 Xeranor#8
Quote:
Originally Posted by GhostNeeded View Post
und detectet ,) gab nen warden update vor kurzen.
Nein ;) LuaFoo ist detected und seit neustem der FactionTalk hack von JuJu?
Steht zumindest so auf Apocs blog und ich finde es schon krass das hier ein mod einfach sachen von ******* postet und noch nimma den orginal autor dazu zu schreiben
11/16/2009 19:27 GhostNeeded#9
jop, jetzt auch gelesen.
ich benutzte ja immer noch meinen eigenen loader, um mir die funktionen freizuschalten.
kannst aber davon ausgehen das 90% der codes die benutzt werden von cypher & apoc stammen.
11/20/2009 23:44 Xeranor#10
Quote:
Originally Posted by GhostNeeded View Post
jop, jetzt auch gelesen.
ich benutzte ja immer noch meinen eigenen loader, um mir die funktionen freizuschalten.
kannst aber davon ausgehen das 90% der codes die benutzt werden von cypher & apoc stammen.
Naja das was luaninja ausmacht ist die art wie es injected wird... laut cypher/apoc müssten die warden devs eine komplett neue detection methode einführen
11/21/2009 23:22 osbornx22#11
Halli hallo alle miteinander,

hier ist mein Def Warrior Tank Makro, aber es funktioniert noch nicht richtig und es fehlt noch einiges:

#show heldenhafter stoß
/startattack
/cast verteidigungshaltung
/cast blutrausch
/cast sturmangriff
/cast abfangen
/cast [combat] spott
/use [combat] 13
/use [combat] 14

/run if (UnitPower("Player")) > 50 then CastSpellByName("Zauberreflexion") CastSpellByName("Heldenhafter Stoß") CastSpellByName("Schildblock") end

/run _, _, _, _, _, _, _, _, interruptAble = UnitCastingInfo("target"); if UnitCastingInfo("target") and not interruptAble and IsUsabelSpell("Schildhieb") then CastSpellByName("Schildhieb") elseif not UnitBuff("player", "Befehlsruf") then CastSpellByName("Befehlsruf") elseif (GetSpellCooldown("Berserkerwut") == 0) then CastSpellByName("Berserkerwut") elseif (GetSpellCooldown("Erschütternder Schlag") == 0) then CastSpellByName("Erschütternder Schlag") elseif (GetSpellCooldown("Schockwelle") == 0) then CastSpellByName("Schockwelle") elseif (GetSpellCooldown("Schildschlag") == 0) then CastSpellByName("Schildschlag") elseif (GetSpellCooldown("Donnerknall") == 0) then CastSpellByName("Donnerknall") elseif IsUsableSpell("Rache") and (GetSpellCooldown("Rache") == 0) then CastSpellByName("Rache") else CastSpellByName("Verwüsten") end

Nun meine Fragen:
1. Wie kann man das im makro lesbarer schreiben?

2. DemoRuf soll auch autoamtisch ausgeführt werden, aber nur wenn auf dem Gegner nicht bereits ein Debuff ist, der nicht mit DemoRuf stackt und erst im Kampf. Wie?

3. Wenn viele Gegner um mich herum sind, soll die Priorität von AE Spells steigen, also Donnerknall und Spalten statt, Heldenhafter Stoß.

4. Wenn man schnell hintereinander die Taste drückt, wird Sturmangriff und Abfangen gleichzeitig ausgeführt, soll aber abwechselnd immer nur eins machen.

Vielen Dank schonmal.
12/14/2009 09:12 gopk#12
Does this still work?
12/14/2009 23:39 Aeh'#13
Was ist den dieses LUA ?
Gibs irgendwo was deutsches dazu?
12/15/2009 23:30 ZeroN2K#14
wenns nen update fürs hotfix gibt, wärs nett wenns hier reingepostet wird (: