I coded an easy-to-use tool that disables (or enables) ASLR in World of Warcraft (or any PE file).
Special thanks to caytchen for opening my eyes up to the "Dll Characteristics" field in the PE Header.
Attached is an EXE that does the dirty work. I didn't feel it was necessary to release the source (as it was fairly trivial to code). All one needs to do is alter the flags set in the "IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE" in "IMAGE_OPTIONAL_HEADER":
Before:
After (ASLR disabled):
If you guys really want the code, let me know.
Anyway, you can download the file here:
Multiupload.com - upload your files to multiple file hosting sites!
A VirusTotal (lol) report can be viewed here:
http://www.virustotal.com/file-scan/...17c-1288584557
The benefits?
- IDA doesn't have to waste time rebasing each time you debug the EXE
- You don't have to do basic math (subtracting addresses from the current base address really SUCKS)
Can you get banned for using this patch?
Sure, Blizzard can ban you for doing anything. Will they? I highly doubt it. This alters the PE Header which they could (if they wanted to) check fairly easily. You can, additionally, globally disable ASLR in your operating system (without modifying the WoW file) by altering a registry key (though, this really isn't recommended). See this.
How do I use it?
Open a command prompt window. Run the NoASLR.exe with parameters like so:
This enables ASLR:
This disables ASLR:NoASLR.exe "Path_To_Your_Portable_Executable.exe" true
What if it corrupts my PE file?NoASLR.exe "Path_To_Your_Portable_Executable.exe" false
It won't. Just make sure it isn't running when you use this patch. However, this program DOES backup your old binary (for added comfort). If the path of your EXE was "C:\lol\pe.exe" then the backed up file will be "C:\lol\pe.exe.bak".
And, yes, you can use this on any PE file. It doesn't have to be WoW.
Cheers.
P.S. This will work on both 32 and 64-bit applications. Yay!