Staredit Network > Forums > SC1 UMS Theory and Ideas > Topic: IP Map Protection
IP Map Protection
Oct 29 2009, 1:37 am
By: Falkoner  

Oct 31 2009, 6:43 pm Roy Post #21

An artist's depiction of an Extended Unit Death

Quote from O)FaRTy1billion[MM]
You have to read all 11 lines and for each of those read for possible username lengths. Each of those triggers should set a switch...
One major flaw with text detection is that when a line is overwritten, the old message isn't cleared but simply written over where necessary. For example, if line 1 was
Code
Roy: All your base are belong to us.

and the twelfth line (which would be the first again) was
Code
Roy: This game sucks.

The resulting message in memory would be
Code
Roy: This game sucks.e belong to us.

And, since you have to calculate the value by four characters at a time, this can indeed be very problematic for an ongoing system. If I explained any of this poorly or you think my findings are incorrect, please correct me.

As for a protection concept, why not detect screen position in the first couple seconds of the game, and you'd position the screen quickly to one of the corners? That plus a name detection would be a pretty good security, because who would figure all that out without opening the map with a good sense of EUDs (or reading this post :P)?




Oct 31 2009, 7:31 pm Falkoner Post #22



Well, since I'm reading the names, not typed text, the array not being zeroed doesn't really cause a problem, and I figure as long as there's a slight protection, no one is going to go through too much effort to play the beta. It's mainly to ensure that an inferior copy isn't distributed.



None.

Nov 1 2009, 12:59 pm Heinermann Post #23

SDE, BWAPI owner, hacker.

Quote from Roy
Code
Roy: This game sucks.e belong to us.

And, since you have to calculate the value by four characters at a time, this can indeed be very problematic for an ongoing system. If I explained any of this poorly or you think my findings are incorrect, please correct me.

As for a protection concept, why not detect screen position in the first couple seconds of the game, and you'd position the screen quickly to one of the corners? That plus a name detection would be a pretty good security, because who would figure all that out without opening the map with a good sense of EUDs (or reading this post :P)?
Screen detection would desynch. And that string would be
Code
Roy: This game sucks.\0e belong to us.\0


Don't need to scan every possible user name length or anything complicated like that, because you already know the username, a constant value. You can create the password so that it aligns to 4 bytes.
"Hein" "erma" "nn: " "sup\0"
"Mini" "moos" "e270" "7: c" "ool\0"




Nov 2 2009, 1:08 am Roy Post #24

An artist's depiction of an Extended Unit Death

Quote from Heinermann
Screen detection would desynch.
Yes, it would. Just have it required for the first player, which presumably would be the host/creator. You can use an "at most" or "at least" to detect if the screen is in the wrong place, and the desync would occur, and the map would lock.




Nov 2 2009, 5:53 am O)FaRTy1billion[MM] Post #25

👻 👾 👽 💪

Quote from Heinermann
Don't need to scan every possible user name length or anything complicated like that, because you already know the username, a constant value. You can create the password so that it aligns to 4 bytes.
"Hein" "erma" "nn: " "sup\0"
"Mini" "moos" "e270" "7: c" "ool\0"
I don't think that <15-character names are padded... Also somewhere in there is a color formatting byte (before the colon?). :P



TinyMap2 - Latest in map compression! ( 7/09/14 - New build! )
EUD Action Enabler - Lightweight EUD/EPD support! (ChaosLauncher/MPQDraft support!)
EUDDB - topic - Help out by adding your EUDs! Or Submit reference files in the References tab!
MapSketch - New image->map generator!
EUDTrig - topic - Quickly and easily convert offsets to EUDs! (extended players supported)
SC2 Map Texture Mask Importer/Exporter - Edit texture placement in an image editor!
\:farty\: This page has been viewed [img]http://farty1billion.dyndns.org/Clicky.php?img.gif[/img] times!

Nov 2 2009, 10:23 pm Roy Post #26

An artist's depiction of an Extended Unit Death

Quote from O)FaRTy1billion[MM]
I don't think that <15-character names are padded... Also somewhere in there is a color formatting byte (before the colon?). :P
After the colon and before the space, and you'd have to detect both variations to prevent a desync (<07> and <02>) (At least I think it's <02>... Could be <01>... Too lazy to test right now).

Anyway, that doesn't really matter if you're going to just detect the name, which would be way easier.




Nov 3 2009, 7:20 pm SkiPz Post #27



Well if you knew anything about programing, you could also create a custom dll to inject and change something that would not desynce the game, but at the same time make it so there would be no way to get those results unless it was injected. Then have an EUD condition set up to detect this change, if the proper change is found it knows it's you hosting it, and have the action Do Nothing. However if the proper change is not detected that means it's not you because you would have the injected dll, and have the condition run something that would desynce.



None.

Nov 5 2009, 1:18 am rockz Post #28

ᴄʜᴇᴇsᴇ ɪᴛ!

You might as well inject a dll, and detect that. Only the creator and folks who have the dll can host the map.



"Parliamentary inquiry, Mr. Chairman - do we have to call the Gentleman a gentleman if he's not one?"

Nov 8 2009, 12:26 am Falkoner Post #29



Yeah, I actually like that idea best, pick a random section of memory that I know is unused in-game, and make one odd modification to it, then have an EUD detect if that modification is there, I wouldn't even need to make a DLL to inject it, I could just modify it with a memory editor. That's definitely the easiest solution.



None.

Nov 8 2009, 2:09 am Heinermann Post #30

SDE, BWAPI owner, hacker.

And then you drop from the game. Brilliant.




Nov 8 2009, 2:34 am rockz Post #31

ᴄʜᴇᴇsᴇ ɪᴛ!

easiest solution is still the first suggestion, since it's all of 1 trigger.

You'd have to find a section of memory which is different for each player, and constant each time. You could do this with a death count and triggers. Set deaths for player 1's memory of some unused random unit (p12) via a trigger which only runs for him. Edit it so it's 0 again, somehow (easiest to inject a dll or something), then detect if it's 1. If it's 1, player 1 desynchs because the other players still have 0. When this runs, if player 1 isn't in the game, everyone loses. However, that limits host to player 1's spot, without random start locations. If editing death counts will drop you (which it very well might) then this won't work.



"Parliamentary inquiry, Mr. Chairman - do we have to call the Gentleman a gentleman if he's not one?"

Nov 8 2009, 7:34 pm Falkoner Post #32



Quote
And then you drop from the game. Brilliant.

Depending on what value you choose, obviously I would pick a non-shared one :P



None.

Nov 9 2009, 6:32 pm Heinermann Post #33

SDE, BWAPI owner, hacker.

Which means you drop. You're making a modification that causes the trigger to execute, meanwhile other players in the game don't have that modification, and don't execute the trigger.




Nov 10 2009, 10:51 pm Roy Post #34

An artist's depiction of an Extended Unit Death

Quote from Heinermann
Which means you drop. You're making a modification that causes the trigger to execute, meanwhile other players in the game don't have that modification, and don't execute the trigger.
Unless you choose to execute a trigger when the value does not equal the modified value, so you would drop without the modification (assuming you would only have this trigger for one player). Then simply make the game unplayable without that particular player.




Nov 10 2009, 11:21 pm Falkoner Post #35



Quote
Which means you drop. You're making a modification that causes the trigger to execute, meanwhile other players in the game don't have that modification, and don't execute the trigger.

Yeah, Roy pretty much covered it, I would have it check an unshared value, and if that value ISN'T what I would set it to using the memory editor, then I declare defeat, the player drops, and the other players have triggers that defeat them when player 1 drops.



None.

Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[01: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:
[2024-4-27. : 9:38 pm]
NudeRaider -- Ultraviolet
Ultraviolet shouted: NudeRaider sing it brother
trust me, you don't wanna hear that. I defer that to the pros.
Please log in to shout.


Members Online: Roy