Skip to content

attilathedud/WC3_Maphack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A maphack for Warcraft 3 1.24d. WC3 sets the visibility of the map every frame via a call to memset that looks like:

6F40B446   . 52             PUSH EDX                                
6F40B447     6A 00          PUSH 0
6F40B449   . 50             PUSH EAX                                
6F40B44A   . E8 73643D00    CALL <JMP.&MSVCR80.memset>       

By changing the push 0 instruction to push 0fh, we reveal all the squares on the map. This method will cause a desync in multiplayer games.

The injector was written in C++ and compiled with VS6 but should compile with any modern C++ compiler.

The hack was written in mASM and needs to be linked as a dll. To do this:

\masm32\bin\ml /c /coff WC3Maphack.asm
\masm32\bin\Link /SUBSYSTEM:WINDOWS /DLL WC3Maphack.obj

Originally written 2010/02/16 by attilathedud.

Injector:

Injector Screenshot

Hack:

Hack Screenshot

Related Addresses

The following are a list of addresses all related to drawing functions:

Addresses are for patch 1.24c. To translate to patch 1.24d, simply add 60h to each address.

6F39A415   CALL Game.6F2AC170 - draw units (whole function)

6F39A826   CALL Game.6F2AC170 - trees (whole function)

6F39BC6D   CALL Game.6F2AC170 - draw shade (whole function)

6F00C8B3   PUSH 80000004 - debug protection (change to push 0 to disable)

6F39D03D   CALL Game.6F017850 - shade + map tile formatting?

6F39D061   CALL Game.6F427730 - shade on characters

6F39D00A   CALL Game.6F015FA0 - draws map tiles

6F39D185   CALL Game.6F610330 - draws click arrows

6F39CD7E   CALL Game.6F7B6E70 - blacks out screen

6F39CD83   CALL Game.6F509E80 - draws units

6F39CB6B   CALL Game.6F38CA60 - draws idle animation and resets animation bones

6F39CB79   CALL Game.6F53FC20 - unit animation

6F430762   CALL Game.6F4276B0 - unit won't respond to movement