W3MPQFNs - Warcraft 3 MPQ filename detector
Posted: September 16th, 2009, 9:37 pm
This my little program can detect every file which Warcraft 3 loads from any MPQ archive.
That doesn't mean it will detect every file in map archive, it generally detects less files than RMPQEx, but it could be useful if some jass trickery were used to hide filenames (I don't know such map, so I hope there are some :D).
Press Start to attach to Warcraft 3 process.
Press Stop to detach from Warcraft 3 process.
You can open MPQ archive and press save listfile in archive to save files which are in archive only.
It will probably need admin rights because it writes to Warcraft 3 process memory.
It works on versions 1.23a - 1.24b. I didn't test other versions, so it should work on more.
EDIT:
I forgot to mention that running more of these things at once can result in undefined behavior.
Details:
It changes 1st instruction in Ordinal268 exported function of Storm module (279 can also be used, but some filenames may miss) to jump to my allocated memory filled with my assembly code which sends filename string to my app, then it jumps back.
That doesn't mean it will detect every file in map archive, it generally detects less files than RMPQEx, but it could be useful if some jass trickery were used to hide filenames (I don't know such map, so I hope there are some :D).
Press Start to attach to Warcraft 3 process.
Press Stop to detach from Warcraft 3 process.
You can open MPQ archive and press save listfile in archive to save files which are in archive only.
It will probably need admin rights because it writes to Warcraft 3 process memory.
It works on versions 1.23a - 1.24b. I didn't test other versions, so it should work on more.
EDIT:
I forgot to mention that running more of these things at once can result in undefined behavior.
Details:
It changes 1st instruction in Ordinal268 exported function of Storm module (279 can also be used, but some filenames may miss) to jump to my allocated memory filled with my assembly code which sends filename string to my app, then it jumps back.