• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Spazzler -- WC3 Map Corruptor

Status
Not open for further replies.
Level 2
Joined
Dec 8, 2009
Messages
5
Content copied from here

------------------------------

This tool corrupts an MPQ to the point that only WC3 and WE can view it, as far as I've seen. Even MPQ Editor and RMPQex cannot read it.

It is written in Python (this version is, at least. I lost the old version in C#). To use it, you need Python 2.6ish.

1) Put spazzler.pyc in your Python26 folder.
2) Run python.exe
3) Type "import spazzler"
4) Type "spazzler.protect(inmap,outmap)"
inmap: Input file name, without ".w3x"
outmap: Output file name, without ".w3x"
NOTE: If outmap begins with +, outmap will be inmap + the rest of outmap
If it ends with + and did not begin with +, it will prepend all but the + to inmap.
e.g. ("input","+_spazzler") will output "input_spazzler.w3x"

1) In Terminal, cd to the folder with spazzler.pyc in it.
2) Type "python" in Terminal.
3) Follow steps 3-4 from the Windows instructions.


If you encounter any problems with it, aside from the fact that it's in Python, please let me know.
If you used it and like it, please give thanks or something.
If you want the source, PM me, though I won't be giving it to noobs who are just trying to steal my work.

EDIT: Added a demo map.
 

Attachments

  • Spazzler.zip
    1.2 KB · Views: 1,047
  • DotA6.66b.w3x
    6.5 MB · Views: 618
Last edited:

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,180
Seems quite effective (atleast in the map provided as I have not downloaded the tool).

However any functionality of this at preventing map interaction is due to poorly programmed MPQ editors.

Can we have some source code?

Ok rough testing of the provided map shows this system works by changing values in the MPQ header to ones used by WoW. As a lot of MPQ editors can open both WoW and WC3 mpqs it tries to actually open a WC3 archive as a WoW one. However as WC3 only knows about WC3 archives it ignores the WoW header and so continues to open the archive properly as the rest of the data in the header is WC3. On top of that there are 1 or 2 other value descrepiencies which may help but im still looking into them.

Further eximaniation yields that this is not the only damage done to the map. The fact that there is an imporbable number of blocks (3226625) in the demo map provided means that you must have damaged the block section in some way.
The "SPAZZLER" ASCII text located 1540 bytes into the mpq archive proves that you have also damaged the data block table.
 
Last edited:
Level 2
Joined
Dec 8, 2009
Messages
5
Well, I just added everything I've found that prevents non-Storm libraries from reading maps, and I haven't seen any MPQ editors that don't use Storm (not even StormLib) that can read these maps.
 
Level 2
Joined
Dec 8, 2009
Messages
5
Well, all the program does is read the file as binary (otherwise it can't read some characters, and treats them as EOF or something) and implement the protections on that, then write it to a new file, again as binary. Including docstrings, it's only 40 lines of code, and even that could be shortened if I really cared to.
 
Level 2
Joined
Dec 8, 2009
Messages
5
The problem with MPQ editors is they're made for general use (i.e. any MPQs, not just WC3 maps) so they don't read MPQs just as Storm does.
 
Level 7
Joined
Nov 18, 2012
Messages
312
This impressive tool is now openable by MPQ editors
Now people use BOBA or MPQ.MoonLight
Boba(Somj) seems more troublesome to crack and.. it's all deprotectable hmm
 
Last edited:
Status
Not open for further replies.
Top