Jump to content

World Of Warcraft Development


malu05
 Share

Recommended Posts

  • Replies 470
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

Hey maulu, are you working with static-pointers, or are you searching the Adress in the DMA everytime ?

PS : keep up teh good work :)

The static pointers are a waste of time to find...

DMA every time... however might be learning a new method soon..

Can you say me the adress to read the packets ?

what do you mean??

[center][u]WoW Machinima Tool[/u] (Tool for Machinima Artists) [/center]

Link to comment
Share on other sites

i cant run it, i intsalled the sniffer and then ran the script but it doesnt work

Well.. try mine... (incomming big letters...)

World Of Warcraft PacketSniffer.

http://files.filefront.com/Wow_Packet_Snif...;/fileinfo.html

Files included;

WinPcap_4_0.exe

Setup.exe

Packet.exe

Packet.au3

Install WinPcap 4.0

Then install Packet X 3.2 (Setup.exe)

Run the script via the au3 or the compiled *.exe file.

For "no trusters" Both WinPcap 4.0 and Packet X 3.2 can be downloaded from their official homepages.. google them if needed.

Start World Of Warcraft, log in on your char.

Press "Start Capture".. and the program will begin to tap the packets that contains movement data.

You can stop/pause the sniffer at any time and resume it.. you can also clear all the data.

Aditional features is the "on top" checkbox that ensure that the Packet Sniffer window will always stay on top.

You can also set it to Transparent so it doesnt steal that much of the screen.

The code can easily be modified. But it was made a bit fast, so it is not that well structured.

[center][u]WoW Machinima Tool[/u] (Tool for Machinima Artists) [/center]

Link to comment
Share on other sites

World Of Warcraft Wallhack and AltitudeHack

(requires <NomadMemory.au3>)

How to use?

1. Start up World Of Warcraft and Log In on your Char.

2. Start the script.

3. The script will start scanning for the needed memory locations. Make sure that your char does'nt move.

4. When the script have found all the needed memory locations you are ready to go.

(for Altitude Hack)

5. Set the altitude. This defines how hight up in the air you want to go.

If you set this to 0,1,2 you might just loose some fall damage. If you set it to 5-10 you might die.. 20-> = death on land, unless you are trying to reach something.

6. Press Alt+Shift+1 while running (You Must Run, or else you will get disconnected)

(for Wall hack)

5. Set the altitude to 20-50 (higher might cause disconnect)

6. Go to the wall you want to go through. If you want to go North press Alt+Shift+2 (dont need to run)

If you want to go south, set +/- and press Alt+Shift+1

If you want to go east press Alt+Shift+2

If you want to go west, set +/- and press Alt+Shift+2

You can also press Alt+Shift+9.. then you will be able to set a destination you want to go to. However if you move you get disconnected. This is only the lite version and doesnt support packets to prevent that.

; ----------------------------------------------------------------------------
; ----------------------------------------------------------------------------
;
; Author:
;   Malu05 aka. Mads Hagbart Lund <Batmazbaz@hotmail.com>
;
; Script Function:
;   Data Stream Manipulator (non-public)
;
; Notes:
; Please Respect The Author of This Code -
;   by not re-releasing this code for intially hacking purpose.
; Please only use this application for testing and research.
; ----------------------------------------------------------------------------
; ----------------------------------------------------------------------------

;;================================================================================
;;Includes;
;;================================================================================
#include <NomadMemory.au3>
#include <GUIConstants.au3>
#include <String.au3>
#include <Date.au3>
#include <array.au3>
#Include <Misc.au3>
HotkeySet("+!1","moveup")
HotkeySet("+!2","movex")
HotkeySet("+!3","movey")
HotkeySet("+!0","setval")
HotkeySet("+!9","predef")
HotkeySet("{ESC}","terminate")
;;================================================================================
;;Variable Definition;
;;================================================================================
Dim $datafoundX,$datafoundX2, $datafoundY, $datafoundZ = 0
Dim $Finalrot, $Finallocx,$Finallocy,$Finalrandom
dim $value = 100
dim $knownX = 0x00D0E54C
dim $startsearchX = 0x00000B88
dim $startsearchX5 = 0x00000BBC
dim $knownY = 0x00D0E550
dim $startsearchY = 0x00000B8C
dim $knownZ = 0x00D0E554
dim $startsearchZ = 0x00000B90
dim $memoryX = 0
dim $memoryX2 = 0
dim $memoryY = 0
dim $memoryZ = 0 ;0x184d8b90
dim $addZ =10.5
dim $addX =0.03
dim $processfound = 0
dim $appname = "DSM"
Global $defaultstatus = "Ready"
dim $scanprocess = 0
dim $startX, $startY, $startZ
dim $transyn = 0
;;================================================================================
;;Process front
;;================================================================================
Opt("WinTitleMatchMode", 4)
SetPrivilege("SeDebugPrivilege", 1)
processopen()
func processopen()
Global $ProcessID = WinGetProcess("World of Warcraft","")
Global $offset = 0x1000
while $processfound = 0
    If $ProcessID = -1 Then
        MsgBox(4096, "ERROR", "Failed to detect process.")
        $reply = msgbox(1,$appname,"If world of warcraft is running please enter the name of the process (Ie, WORLD OF WARCRAFT) (uppercase sensitive)")
        if $reply = 2 then 
            Exit
        Else
            $Processnewname = InputBox($appname,"Please enter the name of the process. (Case sensitive)")
            Global $ProcessID = WinGetProcess($Processnewname,"")   
        EndIf
    Else
        $processfound = 1
    EndIf
WEnd
EndFunc
Local $DllInformation = _MemoryOpen($ProcessID)
If @Error Then
    MsgBox(4096, "ERROR", "Failed to open memory for process;" & $ProcessID)
    Exit
EndIf
;;================================================================================
;;GUI Creation
;;================================================================================
GUICreate($appname, 150, 170)
GUICtrlCreateLabel($appname & " by Malu05", 0, 0, 150, 30,BitOr($SS_CENTER ,$SS_SUNKEN))
$statuslabel = GUICtrlCreateLabel ($defaultstatus,0,155,150,15,BitOr($SS_SIMPLE,$SS_SUNKEN))
GUICtrlCreateLabel("Altitude:", 5, 35, 35, 20)
$valueInput = GUICtrlCreateInput ( "0", 50,  34, 30, 20)
GUICtrlCreateLabel("", 0, 60, 150, 3,BitOr($SS_CENTER ,$SS_SUNKEN))
GUICtrlCreateLabel("X Axis Pointer:", 5, 65, 95, 50)
$Xvaluepointer = GUICtrlCreateLabel("Not found", 80, 65, 70, 18,BitOr($SS_CENTER ,$SS_SUNKEN))
GUICtrlCreateLabel("Y Axis Pointer:", 5, 85, 95, 50)
$Yvaluepointer = GUICtrlCreateLabel("Not found", 80, 85, 70, 18,BitOr($SS_CENTER ,$SS_SUNKEN))
GUICtrlCreateLabel("Z Axis Pointer:", 5, 105, 95, 20)
$Zvaluepointer = GUICtrlCreateLabel("Not found", 80, 105, 70, 18,BitOr($SS_CENTER ,$SS_SUNKEN))
GUICtrlCreateLabel("", 0, 130, 150, 3,BitOr($SS_CENTER ,$SS_SUNKEN))
$ontop= GUICtrlCreateCheckbox ("On Top", 90, 135, 120, 18)
$trans= GUICtrlCreateCheckbox ("Transparent", 5, 135, 80, 18)
$PlusOrMinus= GUICtrlCreateCheckbox ("+/-", 90, 35, 120, 18)
GUISetState()
$CurrentLocX = _MemoryRead($knownX , $DllInformation, 'float')
$CurrentLocY = _MemoryRead($knownY , $DllInformation, 'float')
$CurrentLocZ = _MemoryRead($knownZ , $DllInformation, 'float')
TrayTip($appname, "Scanning For Memory Pointers. Do NOT move your character while scanning...", 5, 1)
GUICtrlSetState ( $valueInput, $GUI_DISABLE )

;;================================================================================
;;Pointer Scanner
;;================================================================================
;X Pointer
GUICtrlSetData($Xvaluepointer,"Scanning...")
GUICtrlSetData($statuslabel,"Scanning For Pointer X1...")
while $datafoundX = 0
    $valueSS = _MemoryRead($startsearchX , $DllInformation, 'float')
    if $valueSS = $CurrentLocX Then
        TrayTip($appname, "X Position Pointer1 Found", 5, 1)
        GUICtrlSetData($Xvaluepointer,"Found.")
        $memoryX = "0x" & hex($startsearchX,8)
        $datafoundX = 1
    Else
    $startsearchX = $startsearchX+$offset
    EndIf
WEnd

GUICtrlSetData($Xvaluepointer,"Scanning...")
GUICtrlSetData($statuslabel,"Scanning For Pointer X2...")
while $datafoundX2 = 0
    $valueSS = _MemoryRead($startsearchX5 , $DllInformation, 'float')
    if $valueSS = $CurrentLocX Then
        TrayTip($appname, "X Position Pointer2 Found", 5, 1)
        GUICtrlSetData($Xvaluepointer,"Found.")
        $memoryX2 = "0x" & hex($startsearchX5,8)
        $datafoundX2 = 1
    Else
    $startsearchX5 = $startsearchX5+$offset
    EndIf
WEnd


;Y Pointer
GUICtrlSetData($Yvaluepointer,"Scanning...")
GUICtrlSetData($statuslabel,"Scanning For Pointer Y...")
while $datafoundY = 0
    $valueSS = _MemoryRead($startsearchY , $DllInformation, 'float')
    if $valueSS = $CurrentLocY Then
        TrayTip($appname, "Y Position Pointer Found", 5, 1)
        GUICtrlSetData($Yvaluepointer,"Found.")
        $memoryY = "0x" & hex($startsearchY,8)
        $datafoundY = 1
    Else
    $startsearchY = $startsearchY+$offset
    EndIf
WEnd

;Z Pointer
GUICtrlSetData($Zvaluepointer,"Scanning...")
GUICtrlSetData($statuslabel,"Scanning For Pointer Z...")
while $datafoundZ = 0
    $valueSS = _MemoryRead($startsearchZ , $DllInformation, 'float')
    if $valueSS = $CurrentLocZ Then
        TrayTip($appname, "Z Position Pointer Found - The Manipulator is now ready", 5, 1)
        GUICtrlSetData($Zvaluepointer,"Found.")
        $memoryZ = "0x" & hex($startsearchZ,8)
        $datafoundZ = 1
    Else
    $startsearchZ = $startsearchZ+$offset
    EndIf
WEnd        

GUICtrlSetData($statuslabel,"Ready.")
GUICtrlSetState ( $valueInput, $GUI_ENABLE )
$startX = $CurrentLocX
$startY = $CurrentLocY
$startZ = $CurrentLocZ

while 1
    $scanprocess = 0
    if GUICtrlRead($trans) = 4 Then
        if $transyn = 1 Then
            WinSetTrans( $appname, $appname, 255)
            $transyn = 0
        EndIf
    Else
        if $transyn = 0 Then
            WinSetTrans( $appname, $appname, 200)
            $transyn = 1
        EndIf
    EndIf   
    if GUICtrlRead($ontop) = 1 Then
        WinSetOnTop($appname, "", 1)
    Else
        WinSetOnTop($appname, "", 0)
    EndIf
;nothing
WEnd

;;================================================================================
;;Moveup
;;================================================================================
func moveup()   
$Value = GUICtrlRead($valueInput)
$CurrentLocZ = _MemoryRead($memoryZ , $DllInformation, 'float')
WinActivate("World of Warcraft")
sleep(100)
for $x = 0 to $value Step +1
;Process

if GUICtrlRead($PlusOrMinus) = 4 Then
    $CurrentLocZ = ($CurrentLocZ+$addZ)
Else
    $CurrentLocZ = ($CurrentLocZ-$addZ)
EndIf
_MemoryWrite($memoryZ , $DllInformation,$CurrentLocZ  , 'float')
Next
EndFunc
;;================================================================================
;;Movex
;;================================================================================
func movex()    
$Value = GUICtrlRead($valueInput)
WinActivate("World of Warcraft")
sleep(100)
$CurrentLocX = _MemoryRead($memoryx , $DllInformation, 'float')
for $x = 0 to $value Step +1
send("aaa")
$CurrentLocX = _MemoryRead($memoryx , $DllInformation, 'float')
    if GUICtrlRead($PlusOrMinus) = 4 Then
        $CurrentLocX = ($CurrentLocX+$addX)
    Else
        $CurrentLocX = ($CurrentLocX-$addX)
    EndIf
    _MemoryWrite($memoryX , $DllInformation, $CurrentLocX  , 'float')
    ;_MemoryWrite($memoryX2 , $DllInformation,($CurrentLocX+$addX)  , 'float')
    ;sleep(1)
    $scanprocess = $scanprocess + 1
    GUICtrlSetData($statuslabel,$scanprocess)
next
send("aaa")
EndFunc
;;================================================================================
;;MoveY
;;================================================================================
func movey()    
$Value = GUICtrlRead($valueInput)
WinActivate("World of Warcraft")
sleep(100)
$CurrentLocy = _MemoryRead($memoryy , $DllInformation, 'float')
for $x = 0 to $value Step +1
    send("aaa")
$CurrentLocY = _MemoryRead($memoryY , $DllInformation, 'float')
if GUICtrlRead($PlusOrMinus) = 4 Then
    $CurrentLocY = ($CurrentLocY+$addX)
Else
    $CurrentLocY = ($CurrentLocY-$addX)
EndIf
_MemoryWrite($memoryY , $DllInformation, $CurrentLocY  , 'float')
next
send("aaa")
EndFunc

;;================================================================================
;;Setval
;;================================================================================
func setval()
$addX=inputbox("X Pos Value","Set Value of Xaxis")
EndFunc ;==>setval

;;================================================================================
;;Predef
;;================================================================================
func Predef()
$portX=inputbox("Portal","Enter Position X")
$portY=inputbox("Portal","Enter Position Y")
$portZ=inputbox("Portal","Enter Position Z")
_MemoryWrite($memoryX , $DllInformation,$portX  , 'float')
_MemoryWrite($memoryY , $DllInformation,$portY  , 'float')
_MemoryWrite($memoryZ , $DllInformation,$portZ  , 'float')
EndFunc ;==>setval


;;================================================================================
;;MouseMovePlus (thx to Oxin8 for this code)
;;================================================================================
Func _MouseMovePlus($X, $Y,$absolute = 0)
        Local $MOUSEEVENTF_MOVE = 1
    Local $MOUSEEVENTF_ABSOLUTE = 32768
    DllCall("user32.dll", "none", "mouse_event", _
            "long",  $MOUSEEVENTF_MOVE + ($absolute*$MOUSEEVENTF_ABSOLUTE), _
            "long",  $X, _
            "long",  $Y, _
            "long",  0, _
        "long",  0)
EndFunc
;;================================================================================
;;Predef
;;================================================================================
func terminate()
    sleep(100)
;MouseUp("right")
send("{a up}")
        exit 0
EndFunc ;==>Terminate
Edited by malu05

[center][u]WoW Machinima Tool[/u] (Tool for Machinima Artists) [/center]

Link to comment
Share on other sites

malu05 not trying to be rude in any way but do you really think it is wise to release that to the public?

No... i accturaly think its kinda dump.

One of my irl "friends" just "accedently" gave away the code to some "website", and god knows what will happen in a matter of days.... so i thought it would be better to show off the good sides of the code here since there are a little neat feature or two in it that can be used for alot of other projects.

I don't really have time to digg out the initial parts of the code but i hope i can be for some use.

I didnt have the time to make a new example where i used this function in so i just released this along side it.

I am going to move, and meanwhile my comp is going to be packet away.

Blizzard will propably nurf this in a matter of no time anyway.

[center][u]WoW Machinima Tool[/u] (Tool for Machinima Artists) [/center]

Link to comment
Share on other sites

No... i accturaly think its kinda dump.

One of my irl "friends" just "accedently" gave away the code to some "website", and god knows what will happen in a matter of days.... so i thought it would be better to show off the good sides of the code here since there are a little neat feature or two in it that can be used for alot of other projects.

I don't really have time to digg out the initial parts of the code but i hope i can be for some use.

I didnt have the time to make a new example where i used this function in so i just released this along side it.

I am going to move, and meanwhile my comp is going to be packet away.

Blizzard will propably nurf this in a matter of no time anyway.

Man that sucks... You gave me the inspiration to begin working on my own versions of what you have been doing and finding it really interesting but now since your code got leaked ( referring to your friend ) blizzard will probably patch this up pretty fast :)

Link to comment
Share on other sites

Man that sucks... You gave me the inspiration to begin working on my own versions of what you have been doing and finding it really interesting but now since your code got leaked ( referring to your friend ) blizzard will probably patch this up pretty fast :D

Yhea... it kinda sucks.

I hope his new firneds at ****-****.net will appricite the little no-brainer he is... :)

But anyway, it was a really /offtopic creation and was initially only made to test the new aditions to Thermo Prime.

I never ment to "hack" the game, but... when i saw the door was open.. i just wanted to try it out ^^.

Back to buizz.

I dont hope too many will feel screwed because i released it.

But see it like this... its out anyway. :D

[center][u]WoW Machinima Tool[/u] (Tool for Machinima Artists) [/center]

Link to comment
Share on other sites

Hey, just wanted I've been following this thread (project) for 2-3 weeks now, I didn't think I'd ever register (lazyness lol). But finally I did, I just wanted to drop by and say that what you're doing Malu looks very promising!

ffrankcool

Link to comment
Share on other sites

i got tired as i head that you were forced to release the code, this always happens accidentally i think if one good guy for example you or Albert Einstein developed something beautiful like the atom modell or this packet analyzer there are always people raping the code to something bad ...

i personally excuse for all the people using your well done example for cheating and hacking.

i love the way you think and that you can get information out of the data stream of wow ...

and with a bit of low level keyboard hooking wow won't never ever know how the bot acts in the world

( by the way i play wow to.... who not :) and i lost fun exactly like u in the game, i just write addons for it.)

but as a result of your code i saw you got more further with packet analyzing then i got with my firewall so ill ask you if i can take your code and build a firewall out of it, would this suit your way of thinking?

$a=StringSplit("547275737420796F757220546563686E6F6C75737421","")
For $b=1 To UBound($a)+(-1*-1*-1)step(2^4/8);&$b+=1*2/40*µ&Asc(4)
Assign("c",Eval("c")&Chr(Dec($a[$b]&$a[$b+1])));''Chr("a")&"HI"
Next ;time_U&r34d,ths,U-may=get$the&c.l.u.e;b3st-regards,JRSmile;
MsgBox(0x000000,"",Eval("c"));PiEs:d0nt+*b3.s4d.4ft3r.1st-try:-)
Link to comment
Share on other sites

DUH.

It blew the air out of me .... i was looking forward to a programming weekend of trial and error.

Tell your "friend" not to accidentally post source code if he can't realise the consequences.

But on the other hand there will be a nice cleanup from blizzard ... (Diabolical laughter).

Anyway back to my part in this history:

After a late night struggling with the Direct 3D i lost the battle, but not the war.

Ready at the moment:

Overal Continent map. Clickable -- On_MouseDown(MouseEvent e) -- opens a new window with the BLP where you can put your Pathfinding costs.

But realize one thing. One blp is 533.375 * 533.375 = (Roughly removing the decimals) 284089 coordinate positions.

It is humanely imposible to add Pathfinding costs for all BLP but on the other hand 2/3 of the continent map is empty, and roughly 30% of a blp is impassable so only the contour of the impassable area needs to be marked.

Im working on a part of Stonetalon Mountain, Barrens, Mulgore, Durotar (Overall coordinates 24,24 to 31,31 (Blp coordinates).

Still strugling with the grid settings cause of the damn .375 but im soon there.

I will post screendumps soon (2-3 days).

Until then ... have a good life.

BR

/P

.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...