• 🏆 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!

Dat Anti Maphack

Status
Not open for further replies.
Level 23
Joined
Apr 16, 2012
Messages
4,041
I saw at least one map that wouldnt open even with mpq editor, but that was most likely some field that the mpq readers take into consideration and game doesnt.

If you remove (Listfile), all your files will be called FileXXXXXXXX.yyy, where X are some numbers, and yyy is the extension of the file
 
I saw at least one map that wouldnt open even with mpq editor, but that was most likely some field that the mpq readers take into consideration and game doesnt.

If you remove (Listfile), all your files will be called FileXXXXXXXX.yyy, where X are some numbers, and yyy is the extension of the file

That's called corrupting the MPQ with a hex editor or some program that does it for you. Sadly its easily fixable. However there's one field nobody knows how to fix and that is the size manipulation, I have only seen one map achieve this. I don't know how to do it myself and if I did I couldn't reveal it because its the one technique that keeps a map safe.

Vex's opt automatically does that as well jumble the script making it cleaner and harder to read. This however isn't protection for the map or MPQ, this is so people can't cheat and reveal whole map.
 
Level 23
Joined
Apr 16, 2012
Messages
4,041
you can still open map archive that went through optimizer or widgetizer with absolutly no problem with mpq editor, but there is at least one map that fucks you in the ass if you try to open it with mpq editor, but game can still load it fine. So yeah, there is for sure something hardcoded to the game that the editor nor the mpq editors check for
 
you can still open map archive that went through optimizer or widgetizer with absolutly no problem with mpq editor, but there is at least one map that fucks you in the ass if you try to open it with mpq editor, but game can still load it fine. So yeah, there is for sure something hardcoded to the game that the editor nor the mpq editors check for

Yup, hex editor protection as well some people have made special programs for this too, So far only Koreans and Chinese though. http://www.wc3c.net/showthread.php?t=101586 That is one of them, corrupts the MPQ to the point only WC3 can read it and can only be opened by read only with some MPQ editor's. Encryption surprisingly does exist for WC3, just sadly cheaters got smarter as well to decrypt. =(
 
Level 23
Joined
Apr 16, 2012
Messages
4,041
maybe the guy used (4), since I only used MPQMaster to check if the map is openable :D and yeah, I was too lazy to research the whole thing and try to open it manually(programatically, or using hex editor), but thats good to know
 
Level 13
Joined
Oct 18, 2013
Messages
690
I thought about implementing this in my map, but I honestly don't want maphackers to crash. In my map, if it takes me 30 min to get a full house, then it would really pain me to see like 4 people just crash. If I do implement this in my map,perhaps it will have a chance of snapping your screen to bottom right and using the animation. But it would only be like 5% of the time... I don't really want to waste time getting a FH then having people crash, then inevitably starting a leave train. If only there was such a simple method to detecting MH that didn't crash them..
 
I thought about implementing this in my map, but I honestly don't want maphackers to crash. In my map, if it takes me 30 min to get a full house, then it would really pain me to see like 4 people just crash. If I do implement this in my map,perhaps it will have a chance of snapping your screen to bottom right and using the animation. But it would only be like 5% of the time... I don't really want to waste time getting a FH then having people crash, then inevitably starting a leave train. If only there was such a simple method to detecting MH that didn't crash them..

There use to be, but then it got countered. Thank the coders who made such a cheap program. Only thing useful I like is visible attack speed numbers and mana bars.

Sadly there is no known way to detect MH besides this. I don't like cheaters and don't like to play with them so I don't really mind the leave trains, its up to the cheaters and their supporters to not cheat. Their fault that they choose to ruin your game, not yours. Besides make functional AI so it doesn't hit as hard as well easier to get FH.
 
Level 13
Joined
Oct 18, 2013
Messages
690
Besides make functional AI so it doesn't hit as hard as well easier to get FH.
I actually am working on AI for my map atm ^^ It would definitely help for things like this. I would also love seeing all these people crash and being like, "Hmm... I wonder why THAT happened!" xDD
Their fault that they choose to ruin your game, not yours
I could have this state of mind about it, and it is rather easy to. But I am willing to sacrifice some integrity of my map for playability. It's just not as fun having 8 people as it is having 12. Also, unless I can design my AI well, it will probably weigh down the map considerably is it picks up more toys to play with.
 
Level 4
Joined
Nov 27, 2012
Messages
85
This should be stickied. Took me forever to find a map with a corrupted model.
I confirm this works

further testing seems the unit has to be preplaced
 
Last edited:
Well it should never have worked in the first place. If the game was reasonably robust it would have failed loading the model as corrupt instead of crashing when it tries to render it.

It is so stupid that people purposely try to crash WC3.

MH'ing and hacking in general should have never worked in the first place. It is quite stupid that people purposely try to hack. :thumbs_up:

Crashing the game for cheaters is one of the kinder things to do and was the only method left since the cheaters have made workarounds to every other method.

How about using constant native IsFoggedToPlayer takes real x, real y, player whichPlayer returns boolean to where the corrupted model should be? If it is false, purposely crash the map like Player(-1) or something.

MH's can no longer be detected by jass.
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,188
Modern MH programs are (or should be) overlays so they do not alter the game at all. Warden and other Blizzard anti-hack systems still detect them because they are reading memory from the game and they have certain profiles and signatures of known hack programs.

Custom map makers really should not bother with map hacks as it is not their problem. Hosts and bot owners who are trying to run competitive games should take the responsibility and blacklist/remove such players if detected.
 
Level 19
Joined
Dec 12, 2010
Messages
2,069
no, they cannot. just like any other static protection will fall within few hours.
and no, again, if there's something to do against maphackers, you should do that. there's just no reason to ignore this possibility.

on topic - as I said at the very start, it won't last any long, since it's the same as DotA used ~6-7 years ago
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,188
Frankly people are caring far too much about maphacks in an old game that is well past its prime. Modern map hacks are overlays so immune to this sort of thing anyway.

The only people who can truly detect maphacks are Blizzard. If they are not stopping them then hosts/robot admins can punish offenders.
 
Level 17
Joined
Apr 27, 2008
Messages
2,455
If you try to create a lightning in a place that a player has not the visibility, it won't be created.
Maybe you can use that ?
I mean create a lightning where it is supposed to be never visible for each player.
Then check if it was created or not, and make the computer player crash or sync the data to know which players have a maphack activated or not.
 
Level 17
Joined
Apr 27, 2008
Messages
2,455
lightning is created anyway but not rendered. it cannot be handled from current jass. memory exloit would be a big thing tho

I've not tried with a maphack tool but i can confirm that a lighning is not created (== null, GetHandleId == 0) if the place is not visible for the player, i have tested it.
Note that i'm not talking about the current camera view, just if this point is visible for the player.

Now, i don't know what happens with a maphack.
 
Level 17
Joined
Apr 27, 2008
Messages
2,455
So, this doesn't work with maphack ?

An empty map with this only one trigger detect :

JASS:
function Trig_detect_Actions takes nothing returns nothing
    local lightning light=AddLightning("CLPB",true,0,0,0,0)
    if light != null then
        call DestroyLightning(light)
        set light=null
        call BJDebugMsg("maphack detected")
    endif
endfunction

//===========================================================================
function InitTrig_detect takes nothing returns nothing
    local timer tim=CreateTimer()
    call TimerStart(tim,1,true, function Trig_detect_Actions )
endfunction
 

Attachments

  • maphack_detect.w3m
    12.1 KB · Views: 41
So, this doesn't work with maphack ?

An empty map with this only one trigger detect :

JASS:
function Trig_detect_Actions takes nothing returns nothing
    local lightning light=AddLightning("CLPB",true,0,0,0,0)
    if light != null then
        call DestroyLightning(light)
        set light=null
        call BJDebugMsg("maphack detected")
    endif
endfunction

//===========================================================================
function InitTrig_detect takes nothing returns nothing
    local timer tim=CreateTimer()
    call TimerStart(tim,1,true, function Trig_detect_Actions )
endfunction

I don't see how that would work in detecting any MH's nowadays due to overlays and such, about a decade ago that would have been a potential method. Local data of course isn't visible to anyone but the player your displaying it too however some of the mostly private more advanced MH's bypass all methods of JASS detection which is why crashing them cheaters was the last method left until Blizzard ruined/patched another part of WC3.
 
Level 19
Joined
Jul 2, 2011
Messages
2,162
Troll Brain's method seems interesting. Maybe it's worth a try.

how am I still a troll then you jerk!
double door is a method used in java because java code can't be read in encryption.which means protecting our programs are very difficult because when you encrypt the jar file you need to leave the encryption key on the door nob.

pointless.

which is how the double door principle was developed.

create 2 encryption with the encryption key for door one behind door 2. when door one is opened the encryption key changes so that door two can no longer be opened.

it's still possible to hack it but it requires the hacker to know exactly what encryption they used to open door one. which is why it's so effective, because most hackers use a program to decrypt the encryptions. programs that do not reserve the encryption key.
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,188
TheLordOfChaos201 the problem is that WC3 needs to be able to read the map file. Since WC3 lacks any sophisticated or even vaguely secure encryption I do not see how any of what you said is at all applicable. One cannot make WC3 do something it cannot do.

I do not see what map protection has to do with maphacks since maphacks read from WC3 process memory. Some might even just intercept net traffic.
 

pyf

pyf

Level 32
Joined
Mar 21, 2016
Messages
2,985
fyi, please read Classic's post about Banhammer for Diablo II :
http://us.battle.net/en/forum/topic/20745035139?page=2#36
" We won't present how or what we detect, because that would only precipitate a solution to our countermeasures. This is a game of cat and mouse. "


I believe Diablo II is currently used as a testbed.
Working solutions will be deployed in time for other games.

Sorry if it is a bit OT.
 
you cant protect client-client games. no way. totally. it HAVE to be client-server game, and noone gonna rebuild wc3. heck, they even have same issue with HotS.

Actually there is quite a lot of protection, just most of it has been destroyed/ruined/wrecked by Blizzard. Client-Server games are terrible due to how close you need to be to your server.
 
Level 19
Joined
Dec 12, 2010
Messages
2,069
Actually there is quite a lot of protection, just most of it has been destroyed/ruined/wrecked by Blizzard. Client-Server games are terrible due to how close you need to be to your server.
take valve's games as example. yeah, theres cheaters too, but not even close comparing to blizz. Thats the difference in budgets of anticheat teams. and, with proper implementation, thee's nothing bad at all. even 3rd world countries playing dota2 just fine, which is completely server-side
 
Status
Not open for further replies.
Top