System Anti-CheatPack System

Gwypaas

hook DoNothing MakeGUIUsersCrash
Reaction score
50
Good mappers will be able to change the code to get the same result and therefore still be able to force them to find the new version :)
 

Ghostwind

o________o
Reaction score
172
How about using a character array, so they can't find it? It would be a pain to write, but it would be like this:

set c[1] = P
set c[2] = l
set c[3] = e
set c[4] = a
set c[5] = s
set c[6] = e

etc.
 

emjlr3

Change can be a good thing
Reaction score
395
what I meant was that they can piggy back on an already created trigger if they want, its not a difficult work around
 

saw792

Is known to say things. That is all.
Reaction score
280
Of course, but then it doesn't become a generic cheatpack that anybody can insert. The code you insert that uses pre-existing triggers would be different for every map and would require the person doing it to actually read and understand the code. That is outside the scope of this system.
 

emjlr3

Change can be a good thing
Reaction score
395
not if the creator of the cheatpack wrote a short script to insert the code upon the creation of the first trigger - i have no idea how they work currently, but its not an unfathomable concept
 

Romek

Super Moderator
Reaction score
963
They could also use an existing timer, and create all the cheat triggers at 0. seconds.
So they could avoid this, and create as many handles as they ever wanted.
 

saw792

Is known to say things. That is all.
Reaction score
280
Hell, they could delete the entire map script and copy/paste their own. That'd show me.
 

Flare

Stops copies me!
Reaction score
662
They could do a hundred different things... there isn't really a perfect method to cheat prevention and (until I find out more systems of this nature) this is the next best thing assuming it works (I would assume it does, seems silly to submit it otherwise :p)

They could also use an existing timer, and create all the cheat triggers at 0. seconds.
So they could avoid this, and create as many handles as they ever wanted.
Well, they have to find the timer first :p And, as saw said, pre-existing code for every map would be different, which would just make things really tedious, and anything that is capable of detering hackers is a good thing IMO
 

Romek

Super Moderator
Reaction score
963
Well, they have to find the timer first :p And, as saw said, pre-existing code for every map would be different, which would just make things really tedious, and anything that is capable of detering hackers is a good thing IMO

Cheat Pack Importing Instructions:
- Copy <This Code>
- At the top of the map, you should see the word "globals"
- find a line that starts with "timer" in this block, and remember the name of the variable. (The line after that)
- Replace the word <TIMER> in the cheatpack with that.

Done. Now it'll just use that timer once, before any other triggers use it, to initialize the cheat pack. :D
 

saw792

Is known to say things. That is all.
Reaction score
280
I did have an idea about running JASS code from imported .ai scripts at one point (i.e, storing the map script inside the .ai file and tampering with the rest of the .j). Unfortunately it seems you can only use common.ai natives for that rather than common.j/blizzard.j code. That would have so many applications...
 

emjlr3

Change can be a good thing
Reaction score
395
something that works situationally as a deterent, is...meh
 

saw792

Is known to say things. That is all.
Reaction score
280
Fair call. Then again, you could say everything works situationally. I'm working on something a bit better though, so maybe that will work a bit less situationally.
 

emjlr3

Change can be a good thing
Reaction score
395
its not just that it works situationally, but there are also easy work arounds (deterant)
 

saw792

Is known to say things. That is all.
Reaction score
280
Well in the situation that it does apply there are no workarounds. Otherwise it would not be situational, it would just not work. The workarounds occur outside the situation that it is designed to work in.
 

SerraAvenger

Cuz I can
Reaction score
234
well... While the idea is quite fashionable, I think just disabling a few of the triggers doesn't matter at all as it can be easily worked arround.

I recommend ending the map instead, but not via crashing war3 ( especially not with something as easy to detect like Players( -1 ) ), rather than that I'ld use something like the EndGame function being called by another function that is called with an ExecuteFunc.
Also, another really nice try would be not just disabling a few things when the map has been cheated on, instead starting the map only if it hadn't been cheated

like:

JASS:
if TRIGGERS_DISABLE  == true then
  call AutoEndMap.execute()
else
  call StartInitTriggers.execute()
endif


Where StartInitTriggers shows a text that everything is ok, creates the heroes and does some of the init stuff.

Now, the clever Cheatpack users would have to find the ExecuteFunc( ) stuff and disable just that single line. Taking out the trigger or disabling it would not start the map as liked.
 

saw792

Is known to say things. That is all.
Reaction score
280
I've sortof given up on this system, if only because every solution can be circumvented. If you'd like to modify this system yourself and resubmit it as your own work I would not mind at all. Other than that, I don't feel like updating it myself or getting it approved at all.
 

SayNoToWar

Member
Reaction score
3
The enemy reads too!

Always be aware that the 'enemy' maybe reads this! So please dont give anyone an instruction here on how to cheat a map or how to disable the anti-cheat-system. If you want to tell s.th. like that to saw792 then please use the private message function.

@saw792:
Good work, any effords to stop cheat-packs is worth it. I agree with you that over 90 % of the cheaterpacks are added by not-jass-pros. There are about 5 000 cheated maps in bnet. I simply dont believe that the few jass-kiddies who made cheaterpacks have that much time. But please remove the domain of that cheaterpage. Information-policy is an important aspect.
 

SayNoToWar

Member
Reaction score
3
still we should not help someone who wants to hack a map in any way.

Is this system compatible with the current wc3-version?
JASS:

  private function T2I takes trigger t returns integer
    return t
    return 0
  endfunction
 

Jesus4Lyf

Good Idea™
Reaction score
397
No. Replace its use with GetHandleId.

>still we should not help someone who wants to hack a map in any way.
It's more fun to talk about than seriously deal with.
As evidenced by this thread.

MapLock is the only really nice protection.
Sorry that I still haven't updated it.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top