DevoProtect - 保护与优化你的地图
DevoProtect - Protect and optimize your maps.
DevoProtect 提供本地地图保护工具,可为 .w3x/.w3m 及战役生成受保护副本并优化体积。工具支持 Windows 10/11、Linux glibc 2.35+ 与浏览器处理,MIT 许可证免费开源,含 Full/Script only/Archive only/Custom 四模式,用 512 字节扇区重打包令 MPQ Editor 与 StormLib 拒开。
DevoProtect
Hey everyone. This is a map protector I've been working on for a while, and I think it's finally ready for other people to use. You give it your finished map (.w3x or .w3m, campaigns work too) and it writes a protected copy next to it, without touching your original.
You can grab the Windows and Linux versions from the attachments here, or use it in the browser at DevoProtect if you don't want to install anything. The website doesn't upload your map anywhere to process it, it runs the whole thing right there in your browser, so your map never leaves your PC. The source code is on GitHub.
It needs Windows 10 or 11 (64-bit), a Linux with glibc 2.35 or newer (Ubuntu 22.04, Debian 12, Fedora 36 or anything newer), or any recent browser. I built and tested it against the current Reforged patch. If you convert a JASS map to Lua, keep in mind the map will need 1.31 or newer to run.
What it actually does
- It swaps your custom object IDs (
h000,A00Band so on) for random ones, both in the object data and in the script. You get a small key file (_ids.tsv) with the output, and if you feed it back in when you protect your next version, every object keeps the ID it had before. That way your players' old save codes don't break every time you update. - It obfuscates the script, JASS or Lua. Names, strings and raw codes all get scrambled, and JASS output goes through pjass before it's saved, so you won't end up with a script the game refuses to load. If your map is JASS you can also have it converted to Lua first, which gets you the stronger Lua protection with encrypted strings and a few loader layers around the whole script.
- It strips out what only the World Editor cares about, like the trigger files, unit placement and the editor counters, so the map won't open in the editor as a normal map anymore. Anything the game itself still reads is left alone, and the report tells you why it kept something.
- Last, it repacks the archive with 512-byte sectors. The game loads that just fine, but MPQ Editor and anything built on StormLib won't open it.
- There's also an optional size optimization that recompresses textures without losing quality and stores duplicate files only once.
Between steps it reads the whole map back and checks every file against what that step was supposed to write. If something changed that shouldn't have, it stops instead of handing you a broken map.
You pick one of four modes: Full protection, Script only, Archive only or Custom. Full is what I use on my own maps. The program is in English plus 16 other languages.
What it can't do
No protector is going to stop someone who's really determined. The map has to run on the player's computer, so it can always be pulled out of memory and pieced back together by hand. What DevoProtect does is close the easy doors: people can't just open your map in the World Editor or an MPQ tool and start poking around, and the script becomes a real pain to read. Also, keep a copy of your unprotected map somewhere safe, because there's no way to undo the protection.
Extra options in Custom mode
- Decoy files: fake trigger files, a file list that lies about what's inside, fake imports, and an option that fills up the archive's hash table so nobody can add new files to it later. There are also a few malformed-header markers for the 512-sector archive.
- Non-printable IDs: the new IDs keep their first letter, but the other three characters become control characters instead of letters and numbers, and object editors and text tools just show them as garbage. The script still gets them as regular numbers, so nothing breaks.
- The JASS to Lua conversion I mentioned above.
How it compares to the other protectors
I put this together from each tool's own page on October 17, 2026. A "?" means their page doesn't mention it either way. If I got something wrong or it's out of date, let me know and I'll fix it.
| Vexorian's Wc3 Map Optimizer 5.0 | W3Protect | WC3Fuscator | DevoProtect | |
|---|---|---|---|---|
| Privacy | Runs on your PC | Your map is uploaded and processed on their server (1) | Runs on your PC | Runs on your PC, the website too (2) |
| Runs on | Windows | Website | Windows | Windows, Linux, browser |
| Price | Free | Free tier (3 maps a day), paid upgrade | Free | Free, MIT license |
| Current patches | ✗ breaks maps on 1.29+ (3) | ✓ | ✓ | ✓ |
| JASS obfuscation | ✓ names, whitespace | ✓ | ✗ only removes editor files | ✓ checked with pjass |
| Lua obfuscation | ✗ | ✓ VM and string encryption are paid | ✓ runtime loader | ✓ encrypted strings, loader layers |
| JASS to Lua | ✗ | ✓ paid | ✗ | ✓ |
| Editor-only files removed | ✓ | ✓ | ✓ | ✓ |
| Object IDs changed | ? | ? | ? | ✓ with a key so save codes keep working, non-printable IDs optional |
| Archive protection | ? | ✓ but MPQ Editor and StormLib still open it read-only | ? | ✓ 512-byte sectors, MPQ Editor and StormLib refuse it |
| Decoy files (fake triggers, fake file list, fake imports) | ? | ? | ? | ✓ |
| Hash table filled so no file can be added | ? | ? | ? | ✓ |
| Size optimization | ✓ | ✓ | ? | ✓ lossless |
Campaigns (.w3n) | ? | ✓ paid | ? | ✓ |
| Runtime anti-cheat | ? | ✓ paid | ? | ✗ |
| Last update | 2014 | 2026 | 2026 | 2026 |
(1) According to their own page, the map you upload is used for the job and deleted afterwards, and the protected file sits on their server for a while so you can download it.
(2) Like I said up top, the website does the work in your browser. It reads the map from your disk and saves the protected copy straight back, so the map never goes anywhere.
(3) The optimizer writes the old player constants into the script as plain numbers. Since 1.29 the game has 24 player slots instead of 12, so the neutral players (Neutral Hostile, Neutral Passive and the rest) end up pointing at the wrong slots. People here have also reported its other script options breaking maps, and most folks just untick them and keep only the protection ones.
About it being open source
The whole thing is on GitHub under the MIT license, and the website runs that same code. That means anyone can read exactly how it protects a map, and I'm fine with that. The goal is to keep casual people from messing with your map, and a protector that only works as long as nobody knows how it works wouldn't be worth much anyway.
Credits
pjass by lep is what checks the JASS scripts, and it ships with DevoProtect. The licenses for the other third-party pieces are in THIRD_PARTY_NOTICES.md.
Feedback
This is version 0.1.0, the first public one, so I'm sure there are maps out there that will trip it up. If yours does, or you have an idea, just post here or open an issue on GitHub.
来源:Hiveworkshop · hiveworkshop.com