wowscout
wowscout copied to clipboard
Real time packet analysis and modification tool for World of Warcraft 1.12.1, 2.4.3, 3.3.5 and 4.3.4.
================================================================================ WoWScout v1.1 - ReadMe
Author: tripleslash (https://github.com/tripleslash) Issue Tracker: https://github.com/tripleslash/wowscout
Date: 08.01.2015
================================================================================
- What is WoWScout?
WoWScout is an advanced real-time packet inspection and modification utility.
You can use it for pentesting your WoW server applications by modifying outgoing packets, sending your own packets or altering the behaviour of your WoW client through modified incoming packets.
WoWScout comes with a simple command line interface. All commands that you type into the WoWScout shell are mirrored in the in-built WoW console (that is when you start WoW with the -console command line argument).
================================================================================ 2. Which versions are supported?
WoWScout currently supports 1.12.1, 2.4.3, 3.3.5 and 4.3.4.
================================================================================ 3. How do I get started?
To get started, all you have to do is start up your WoW client and double click the loader executable. WoWScout will then attempt to attach to all open WoW windows.
Alternatively you can add a shortcut to the loader executable and start a WoW instance for your favourite server like this:
loader -g "D:\Games\WoW 1.12.1\WoW.exe" -c "set realmlist logon.example.com"
================================================================================ 4. Command overview
WoWScout extends the WoW console with a set of custom console commands. Here is an overview of the commands (the symbol [...] means optional).
log [
blacklist [<opcode/name
whitelist [<opcode/name
> whitelist name chat
[OUT] Packet: CMSG_MESSAGECHAT (0x95)
[1] PutUInt32: 1 (0x1)
[2] PutUInt32: 7 (0x7)
[3] PutString: Hello world!
01 00 00 00 07 00 00 00 48 65 6C 6C 6F 20 77 6F 72 6C 64 21 00
===================================
block [<opcode/name
unblock [<opcode/name
send [<
> send 0x95 01 00 00 00 07 00 00 00 48 69 00
Sending packet CMSG_MESSAGECHAT (0x95) to server...
> send queue 0x95 01 00 00 00 07 00 00 00 48 69 00
Enqueuing packet CMSG_MESSAGECHAT (0x95) to server...
> send
Sent 1 queued packets.
flush description: Clears the contents of the packet queue, without sending them. example: > flush Clearing packet queue...
lookup [<opcode/name
mod <opcode/name makepkt put8 put16 put32 put64 putf puts putg putp echo setv/addv/subv/mulv/divv/modv/orv/andv/xorv/shlv/shrv As can be seen from the command overview, several commands accept wildcard
variables. Here is a list of the inbuilt variables: $unitg
description:
The GUID of the specified unit, identified by its UnitId
(http://wowwiki.wikia.com/wiki/UnitId).
example:
> makepkt 0x13d
> put64 $targetg
> send
Sent 1 queued packets. $unitp
description:
The position of the specified unit, identified by its UnitId
(http://wowwiki.wikia.com/wiki/UnitId).
This is equivalent to writing {$unitx,$unity,$unitz}
example:
> echo My targets position is $targetp
My targets position is {-8753.58,400.98,101.06} $unitx
description:
The x-position of the specified unit, identified by its UnitId
(http://wowwiki.wikia.com/wiki/UnitId).
example:
> echo My targets x-position is $targetx
My targets x-position is -8753.580078 $unity
description:
The y-position of the specified unit, identified by its UnitId
(http://wowwiki.wikia.com/wiki/UnitId).
example:
> echo My targets y-position is $targety
My targets y-position is 400.979004 $unitz
description:
The z-position of the specified unit, identified by its UnitId
(http://wowwiki.wikia.com/wiki/UnitId).
example:
> echo My targets z-position is $targetz
My targets z-position is 101.056000 $unitn
description:
The name of the specified unit, identified by its UnitId
(http://wowwiki.wikia.com/wiki/UnitId).
example:
> echo My targets name is $targetn
My targets name is Lieutenant Karter $timestamp
description:
The current timestamp, used in WoW's movement packets.
The timestamp is retrieved by a call to OsGetAsyncTimeMs.
example:
> echo Current timestamp $timestamp
Current timestamp 1809813967> setv my_position $playerp
> echo My position is $my_position
My position is {-8701.43,402.32,100.62}
> setv my_position {$playerx,$playery,$playerz}
> addv my_position {0,0,10}
> echo My position is $my_position
My position is {-8701.43,402.32,110.62}
================================================================================
5. In-built wildcard variables