Staredit Network > Forums > SC1 UMS Theory and Ideas > Topic: Detecting Maphacking and Drophacking
Detecting Maphacking and Drophacking
Aug 28 2011, 4:17 am
By: IAGG
Pages: < 1 2 3 >
 

Aug 29 2011, 11:20 pm TiKels Post #21



The most solid anti maphack i've heard (i THINK it was...) is apos' method.

He could describe it better than me, but this isn't the first topic about this, so I'm sure it can be found.

Brb looking for it.



"If a topic that clearly interest noone needs to be closed to underline the "we don't want this here" message, is up to debate."

-NudeRaider

Aug 30 2011, 12:37 am Sacrieur Post #22

Still Napping

You mean this?

Anyway, it's possible to detect which keys are pressed, if we can set that a sequence such as /drop will result in a desync. It isn't too hard actually, we simply have to detect when the player keys enter, and set a switch:

Keystroke(Current Player, Enter);
Set Switch(1, Set)

Switch(1, Set)
Keystroke(Current Player, Not /);
---
Clear switch 1.

Switch(1, Set)
Keystroke(Current Player, /);
---
Set Switch(2, Set)

etc...

Only use a counting method local to the player.

Post has been edited 1 time(s), last time on Aug 30 2011, 12:42 am by Sacrieur.



None.

Aug 30 2011, 12:46 am Roy Post #23

An artist's depiction of an Extended Unit Death

Quote from Sacrieur
Anyway, it's possible to detect which keys are pressed, if we can set that a sequence such as /drop will result in a desync.
Yeah, theoretically. Trigger cycles are approximately 12 cycles/second, though, so if someone was pressing and releasing a key faster than 1/12 of a second (not uncommon), it would fail to pick up the entire sequence. It's better than nothing, I suppose.

Quote from Sacrieur
Only use a counting method local to the player.
Your example using switches would work just fine. I explained why this works in this post. It's also the reason as we discussed earlier why it is impossible to send a message to other players when a hacker is detected through display text messages.

Apos' method is essentially the selection detection idea, but with units that cover the entire map, basically forcing the player to select one of the units if they're going to maphack.




Aug 30 2011, 1:29 am FoxWolf1 Post #24



Quote from Sacrieur
Keystroke(Current Player, Enter);
Set Switch(1, Set)

Switch(1, Set)
Keystroke(Current Player, Not /);
---
Clear switch 1.

Switch(1, Set)
Keystroke(Current Player, /);
---
Set Switch(2, Set)

Well, it's not quite that easy...for example, suppose the user types the following:
"/r Don't really know :-p"
A common enough thing to say, yes? But your method will identify him as a drophacker, because he typed /, then d, then r, then o, then p.

In order to avoid this, you need additional triggers to reset the counting method when any other key is pressed...but that, in addition to being rather impractical, gives the hacker plenty of possible ways to bypass the detection.



None.

Aug 30 2011, 1:39 am Ice Baby Post #25



Quote from Sacrieur
You mean this?

Anyway, it's possible to detect which keys are pressed, if we can set that a sequence such as /drop will result in a desync. It isn't too hard actually, we simply have to detect when the player keys enter, and set a switch:

Keystroke(Current Player, Enter);
Set Switch(1, Set)

Switch(1, Set)
Keystroke(Current Player, Not /);
---
Clear switch 1.

Switch(1, Set)
Keystroke(Current Player, /);
---
Set Switch(2, Set)

etc...

Only use a counting method local to the player.


I was looking at the discussion apos was explaining. I didnt quite understand what he did exactly. Did he just put disabled starports over a vital area in the game so only hackers would be able to click on them and crash?



None.

Aug 30 2011, 1:53 am Sacrieur Post #26

Still Napping

Quote from FoxWolf1
Quote from Sacrieur
Keystroke(Current Player, Enter);
Set Switch(1, Set)

Switch(1, Set)
Keystroke(Current Player, Not /);
---
Clear switch 1.

Switch(1, Set)
Keystroke(Current Player, /);
---
Set Switch(2, Set)

Well, it's not quite that easy...for example, suppose the user types the following:
"/r Don't really know :-p"
A common enough thing to say, yes? But your method will identify him as a drophacker, because he typed /, then d, then r, then o, then p.

In order to avoid this, you need additional triggers to reset the counting method when any other key is pressed...but that, in addition to being rather impractical, gives the hacker plenty of possible ways to bypass the detection.


Yeah, that was implied but never elaborated on. The reset idea was there from the beginning (not /). I suppose the only way to bypass it is type it is type faster than 12 keystrokes/s.



None.

Aug 30 2011, 1:55 am FoxWolf1 Post #27



With the reset included, typing another letter in the middle of the command and then deleting it (i.e. a typo, intentional or unintentional) would also allow the detection to be bypassed.



None.

Aug 30 2011, 2:22 am Tank_7 Post #28



You would have to include Backspace and go back one switch.
You would have to include a second Enter and clear all switches.

However I am concerned about how most people who drophack have the version which Pauses the game. When Paused a trigger wont fire.



None.

Aug 30 2011, 2:25 am Roy Post #29

An artist's depiction of an Extended Unit Death

Quote from Ice Baby
I was looking at the discussion apos was explaining. I didnt quite understand what he did exactly. Did he just put disabled starports over a vital area in the game so only hackers would be able to click on them and crash?
Yes, basically. Only hackers would be able to see the Starports; other players wouldn't notice a thing. When they click on a Starport, selection detection kicks in and you can drop the player from the game.

ANYWAY

I decided to do a bit of testing and found some addresses that seem to only be modified when certain hacks are injected into SC. Here they are:

Code
ADDRESS      EPD          VALUE      WORKS FOR

0008CC10     -1308117     576520     Epicsauce.dll, Oblivion.dll, Drophack.dll
0008A990     -1310325     28         Drophack.dll
0008A6A8     -1310511     569200     Oblivion.dll
0008A9EC     -1310302     65535      Oblivion.dll

(All addresses above appear to have the value 0 when hacks are not injected).

So what does this mean? Well, for the address 0x0008CC10, it appears that injecting various hacks causes the value to change from 0 to 576520. So if the hacker is using Epicsauce and/or Oblivion and/or the plain Drophack injection, this address will detect them of hacking (P.S.: Epicsauce and Oblivion are unstable and often crash SC if you try running them together, but I did it anyway to verify the value doesn't change from the combination). I'm theorizing that this address is related to custom commands (i.e. typing "/drop X" to drop a player), but this is just a guess. Regardless, the EPD should work just fine to prevent hackers of any sort. If your interest is to only prevent Drophackers, and you don't care if the player has Oblivion or Epicsauce, you can use address 0x0008A990, which seems to be only affected when Drophack is injected. Now, I only tested combinations between these three hacks, and other hacks may change the values of some or all of the addresses listed above. If you want to play a more aggressive/risky card, you can use "At Least 1" instead of the exact value, since these addresses seem to only be changed from 0 when something is injected into SC. While it is not necessarily safe to assume these values will always be 0 for non-hackers, it seemed to be the case in my experiment.

TL;DR: Add this trigger to your map and it should protect against the most popular hacks out there (the defeat action will cause desynchronization, so even if they have a stay-alive hack, they'll drop from the other players immediately):

Trigger
Players
  • All Players
  • Conditions
  • Memory at Death Table + -1308117 is exactly 576520
  • Actions
  • End scenario in defeat for current player.

  • SCMDraft text trigger


    Post has been edited 1 time(s), last time on Aug 30 2011, 3:15 am by Roy.




    Aug 30 2011, 3:33 am iCCup.xboi209 Post #30



    holy cow, you need to be rewarded like OVER NINE THOUSAND minerals o.O



    None.

    Aug 30 2011, 3:44 am jjf28 Post #31

    Cartography Artisan

    It goes without saying that since he published those here (and people will want to use them), that they are much more likely to be patched, finding your own values (thus making the values exclusive to your map) is most effective (I believe Roy also wrote a short guide for doing this in another thread).

    On the subject of detecting each letter of "/drop " if you added one to the death counter every time a correct letter is typed in succession you could track how far into "/drop " they get prior to making a typo, then add too a seperate death counter for every subsequent typo, and remove the death counters appropriately for each backspace untill they finish typing "/drop " - big fun right?

    ^ This of course assuming this kind of detection would be effective and lasting in the first place.



    TheNitesWhoSay - Clan Aura - github

    Reached the top of StarCraft theory crafting 2:12 AM CST, August 2nd, 2014.

    Aug 30 2011, 3:55 am Roy Post #32

    An artist's depiction of an Extended Unit Death

    Quote from jjf28
    It goes without saying that since he published those here (and people will want to use them), that they are much more likely to be patched, finding your own values (thus making the values exclusive to your map) is most effective (I believe Roy also wrote a short guide for doing this in another thread).
    Yeah, the methodology I used can be found at the end of segment 4.1 in this post: http://www.staredit.net/304565/

    A lot of these hacks haven't been updated since 2009, and I'd feel flattered if they honestly took the time to rewrite it because I publicly posted a few memory addresses that seem to work. I know a lot of hackers weren't too happy about the Drophack being leaked to the public, though, so the chances of another Drophack being patched and leaked again aren't phenomenal. That's why I posted an address specific to this hack, in the event that Oblivion and Epicsauce are updated.

    Also, if the hacker knew that EUDs were in place to detect keystrokes, they could always press and release the key faster than 1/12th of a second to completely and safely bypass key press detection. They wouldn't have to worry about making purposeful typos.




    Aug 30 2011, 4:42 am Tank_7 Post #33



    Hey Roy, I just tested with Oblivion 4.0.6b and nothing happens. I'm guessing you tested with the newest Oblivion, 4.0.6f

    I have attached the map so you can see if I made any errors in implementing your addresses.

    I'm finding that Oblivion DLs are drying up... I'm getting corrupt .zips from gamerzneeds.net and gamethreat.net has taken down its download section completely.
    Generally this is a good thing, but bad for testing antihacks.

    Anyways... hate to make you do more work but the best scenario would be if you worked out the addresses for some of the older Oblivions, I think. Oblivion 4.0.2 was what I had a working antihack for back in 2009.

    EDIT: PS I can attach my copy of Oblivion if you want to try it yourself just let me know. And I want to know what Oblivion you got!

    Attachments:
    AH_Aug2011.scm
    Hits: 1 Size: 38.19kb

    Post has been edited 1 time(s), last time on Aug 30 2011, 4:50 am by Tank_7.



    None.

    Aug 30 2011, 5:22 am jjf28 Post #34

    Cartography Artisan

    edit: so Roy, do you think zynastor is now focused on sc2? o.O

    Post has been edited 3 time(s), last time on Aug 30 2011, 6:07 am by jjf28.



    TheNitesWhoSay - Clan Aura - github

    Reached the top of StarCraft theory crafting 2:12 AM CST, August 2nd, 2014.

    Aug 30 2011, 8:29 am Apos Post #35

    I order you to forgive yourself!

    Actually, with my anti map hack method, something weird happens. I'm pretty sure I explained it in an other post, but I'll post it right here too.

    When using Oblivion, for some reasons (According to rockz I believe, it's cause by disabled units) the game drops and crashes even before the hacker clicks on any of the hidden units. This does not happen when using Freedom, only with Oblivion. (I think that Freedom is dead though.)

    Note: I don't have the map showing the anti map hack. If someone else could upload it, it would be very nice to do so.

    Edit: Here it is: Apos' Marine Rush with antihack in it.

    Post has been edited 2 time(s), last time on Sep 2 2011, 11:53 pm by Apos.




    Aug 30 2011, 12:46 pm Heinermann Post #36

    SDE, BWAPI owner, hacker.

    Quote from Roy
    Quote from Ice Baby
    I was looking at the discussion apos was explaining. I didnt quite understand what he did exactly. Did he just put disabled starports over a vital area in the game so only hackers would be able to click on them and crash?
    Yes, basically. Only hackers would be able to see the Starports; other players wouldn't notice a thing. When they click on a Starport, selection detection kicks in and you can drop the player from the game.

    ANYWAY

    I decided to do a bit of testing and found some addresses that seem to only be modified when certain hacks are injected into SC. Here they are:

    Code
    ADDRESS      EPD          VALUE      WORKS FOR

    0008CC10     -1308117     576520     Epicsauce.dll, Oblivion.dll, Drophack.dll
    0008A990     -1310325     28         Drophack.dll
    0008A6A8     -1310511     569200     Oblivion.dll
    0008A9EC     -1310302     65535      Oblivion.dll

    (All addresses above appear to have the value 0 when hacks are not injected).

    So what does this mean? Well, for the address 0x0008CC10, it appears that injecting various hacks causes the value to change from 0 to 576520. So if the hacker is using Epicsauce and/or Oblivion and/or the plain Drophack injection, this address will detect them of hacking (P.S.: Epicsauce and Oblivion are unstable and often crash SC if you try running them together, but I did it anyway to verify the value doesn't change from the combination). I'm theorizing that this address is related to custom commands (i.e. typing "/drop X" to drop a player), but this is just a guess. Regardless, the EPD should work just fine to prevent hackers of any sort. If your interest is to only prevent Drophackers, and you don't care if the player has Oblivion or Epicsauce, you can use address 0x0008A990, which seems to be only affected when Drophack is injected. Now, I only tested combinations between these three hacks, and other hacks may change the values of some or all of the addresses listed above. If you want to play a more aggressive/risky card, you can use "At Least 1" instead of the exact value, since these addresses seem to only be changed from 0 when something is injected into SC. While it is not necessarily safe to assume these values will always be 0 for non-hackers, it seemed to be the case in my experiment.

    TL;DR: Add this trigger to your map and it should protect against the most popular hacks out there (the defeat action will cause desynchronization, so even if they have a stay-alive hack, they'll drop from the other players immediately):

    Trigger
    Players
  • All Players
  • Conditions
  • Memory at Death Table + -1308117 is exactly 576520
  • Actions
  • End scenario in defeat for current player.

  • SCMDraft text trigger
    Sorry but that method can NEVER work.
    0x0008CC10? If anything read from there it would crash my game. Nothing is statically allocated there.

    You guys don't seem to understand the concept of dynamic memory. You should only reference modules that are in most cases loaded at an absolute address, like Starcraft.exe and Storm.dll. That's pretty much all you're limited to (unless you also want to include battle.snp, which means your map will only be playable on Battle.net).

    Typically the address range for the Starcraft module is 0x00401000 - 0x006DD694. You should never use EUDs outside this range if at all.
    DLLs usually contain an "image base" such as 0x15000000 for Storm.dll, but they do not necessarily need to be loaded at that address. It is merely a guideline. Even more uncertain are dynamic allocations, which you guys keep referencing in just about every topic about this.

    Referencing a dynamic allocation is like selecting your map and pressing DELETE, confirming the dialog, then emptying your Recycle Bin.




    Aug 30 2011, 1:56 pm FoxWolf1 Post #37



    Quote from name:xboi209
    holy cow, you need to be rewarded like OVER NINE THOUSAND minerals o.O

    Surely you should test it and confirm that it works before you get all excited, because...

    Quote from Heinermann
    0x0008CC10? If anything read from there it would crash my game. Nothing is statically allocated there.

    I made a test map and this is exactly what happened.



    None.

    Aug 30 2011, 2:26 pm Roy Post #38

    An artist's depiction of an Extended Unit Death

    Quote from Heinermann
    Sorry but that method can NEVER work.
    0x0008CC10? If anything read from there it would crash my game. Nothing is statically allocated there.

    You guys don't seem to understand the concept of dynamic memory. You should only reference modules that are in most cases loaded at an absolute address, like Starcraft.exe and Storm.dll. That's pretty much all you're limited to (unless you also want to include battle.snp, which means your map will only be playable on Battle.net).

    Typically the address range for the Starcraft module is 0x00401000 - 0x006DD694. You should never use EUDs outside this range if at all.
    DLLs usually contain an "image base" such as 0x15000000 for Storm.dll, but they do not necessarily need to be loaded at that address. It is merely a guideline. Even more uncertain are dynamic allocations, which you guys keep referencing in just about every topic about this.

    Referencing a dynamic allocation is like selecting your map and pressing DELETE, confirming the dialog, then emptying your Recycle Bin.
    That's interesting. I knew about dynamic allocation but never really understood it. Thanks for the clarity.

    Quote from FoxWolf1
    made a test map and this is exactly what happened.
    WOMM :P

    Yeah, ignore my post. Heinermann is right.




    Aug 30 2011, 7:24 pm Tank_7 Post #39



    Quote from Roy
    Yeah, ignore my post. Heinermann is right.


    Noooºººº°°°°····000OOOóóóÖÖÖÖòòòòöööööôôôô••••
    I was so dreamy about a new era of antihacking like in early Star Quest w/ AntiHack check link



    None.

    Aug 30 2011, 9:59 pm iCCup.xboi209 Post #40



    Quote from Tank_7
    Quote from Roy
    Yeah, ignore my post. Heinermann is right.


    Noooºººº°°°°····000OOOóóóÖÖÖÖòòòòöööööôôôô••••
    I was so dreamy about a new era of antihacking like in early Star Quest w/ AntiHack check link
    Exactly what I thought after reading this again



    None.

    Options
    Pages: < 1 2 3 >
      Back to forum
    Please log in to reply to this topic or to report it.
    Members in this topic: None.
    [02:26 pm]
    UndeadStar -- Vrael, since the ad messages get removed, you look like a total madman for someone that come late
    [2024-5-02. : 1:19 pm]
    Vrael -- IM GONNA MANUFACTURE SOME SPORTBALL EQUIPMENT WHERE THE SUN DONT SHINE BOY
    [2024-5-02. : 1:35 am]
    Ultraviolet -- Vrael
    Vrael shouted: NEED SOME SPORTBALL> WE GOT YOUR SPORTBALL EQUIPMENT MANUFACTURING
    Gonna put deez sportballs in your mouth
    [2024-5-01. : 1:24 pm]
    Vrael -- NEED SOME SPORTBALL> WE GOT YOUR SPORTBALL EQUIPMENT MANUFACTURING
    [2024-4-30. : 5:08 pm]
    Oh_Man -- https://youtu.be/lGxUOgfmUCQ
    [2024-4-30. : 7:43 am]
    NudeRaider -- Vrael
    Vrael shouted: if you're gonna link that shit at least link some quality shit: https://www.youtube.com/watch?v=uUV3KvnvT-w
    Yeah I'm not a big fan of Westernhagen either, Fanta vier much better! But they didn't drop the lyrics that fit the situation. Farty: Ich bin wieder hier; nobody: in meinem Revier; Me: war nie wirklich weg
    [2024-4-29. : 6:36 pm]
    RIVE -- Nah, I'm still on Orange Box.
    [2024-4-29. : 4:36 pm]
    Oh_Man -- anyone play Outside the Box yet? it was a fun time
    [2024-4-29. : 12:52 pm]
    Vrael -- if you're gonna link that shit at least link some quality shit: https://www.youtube.com/watch?v=uUV3KvnvT-w
    [2024-4-29. : 11:17 am]
    Zycorax -- :wob:
    Please log in to shout.


    Members Online: RIVE