Game Maker Obfuscator - Protect your GM source
#21
Posted 01 May 2008 - 07:45 PM
I could add special support for those functions, but I would need a list of all "critical" functions in that case.
#22
Posted 01 May 2008 - 08:02 PM
You can begin by reading this (GM7 file format):
http://ismavatar.pro...i...&thread=471
and this (Encryption/Obfuscation documentation):
http://ismavatar.pro...i...&thread=476
and this (LateralGM's GmStreamDecoder/Encoder, 2 classes which makes reading/writing little-endian files and GMKrypted files that much easier):
https://opensvn.csie...eamDecoder.java
https://opensvn.csie...tException.java
and this (LateralGM's GmFileReader/Writer, 2 classes which make use of the Decoder/Encoder, so you could use them for examples)
https://opensvn.csie...FileReader.java
https://opensvn.csie...FileWriter.java
Of course, LateralGM, whilst conveniently written in Java, is (as are the files within) covered under the GNU GPL 3+, which mandates open source, so it would be incompatible with your closed-source obfuscater, but one could write similar ones from scratch, once they have obtained the knowledge needed from the files.
#23
Posted 01 May 2008 - 08:04 PM
Again, thanks for the GM6 file documentation.
#24
Posted 01 May 2008 - 08:05 PM
Apparently, decompiling isn'tnvm, perfectly legal.
Sadly, I don't think it's possible for him to make a GM7 version.GM6.
You mean, you don't care if x years of your blood, sweat, tears, (and passion) of making a commercial game gets hacked, and some one steals the idea?and i dont see why everyone is making these things
Call our Game Maker Creations' worthless all you want, our work still continues.no games are worth decompiling anyway.
Maybe not nooby, just illegal.and if u decompile a game ur not a noob.
I don't see you trying to help him, so, why complain?and u WONT be making it for GMKs.
I could tell from your horrible grammar, badly thought out post content, and of course, the order that it was all posted in..as usual, useless stuff flooding the GMC.
You proved that the saying still lives on...You couldn't make anything better.
Schreib, this is pretty cool, perhaps, you could contact YYG and maybe... Work, for them? I mean seriously, this could make you a lot of money (from them funding you somehow). Don't ever be "lazy". Just finish that lazy part you were talking about, and listen to the (constructive) feedback that people give you. Apparently you mentioned NPT not liking these types of programs, well, now he likes yours
P.S: Don't use curse words in the first post, they will generate flame! (try replacing the F-word, with the word "chicken"
Edited by erthgy, 01 May 2008 - 08:07 PM.
#25
Posted 01 May 2008 - 08:08 PM
It keeps away the (at least lazy) noobs.
A suggestion to section V.: Just rename the file from zip to jar!!
Kind regards,
Christian
#26
Posted 01 May 2008 - 08:33 PM
Apparently you mentioned NPT not liking these types of programs, well, now he likes yours .
Apparently, you misunderstood, what Schreib said. A program like this for GM has never been released publicly before. My dislike for previous "decompiler solutions" were not because they attempted to solve the problem, it was because they didn't solve anything. I also disliked how the promoters never disclosed the the shortcomings.
Schreib's obfuscator is a completely different type of solution, and his topic is candid and honest regarding it's capabilities.
I commented specifically on obfuscation and decompiling before I was aware that Schreib was working on one.
[link removed]
Some ideas for future versions of Game Maker.
- Change the exe format, with some deliberate obfuscation designed to inhibit decompiling.
- Allow variable and resource names to be obfuscated. Yes, this could possibly break execute_string() and execute_file().
- Make obfuscation an option, conditional that execute_*() commands can’t be used. This will also help protect exes from techniques that force open the interactive debugger.
- Assuming variable and resource obfuscation is implemented. Give every resource an obfuscate option, create a keyword volatile, for variables. During traditional compile and runs, no obfuscation occurs. This way the debugger still works. When a release exe is being generated, then the obfuscation option gets selected, all resources and variables are obfuscated except resources without the obfuscation option, and variables defined as volatile. This way execute_*() could still be used with those.
#27
Posted 01 May 2008 - 09:32 PM
Nope. It doesn't mess with functions, and when it changes a name it changes everything about the name. if's aren't messed with.uhm aren't there a mega number of bugs with such a tool? - Renaming resource names would potentially remove a lot of functionality (things like "if (object_get_name(OBJECT) = BLALBLA)" don't work.. Neither does the function "Variable_exists()" work anymore! Or does it look inside strings too?
So what happens if I have this variable named "team"..
now in the creation event I do:
if (!variable_local_exists("team"))
{
team=0
}If I put in the creation code of objects in the room event, which executed before the creation event, "team=1", what will happen? - Cause I mean, if a name got changed checking for the existance of "team" is pretty useless..
#28
Posted 01 May 2008 - 09:34 PM
#29
Posted 01 May 2008 - 10:00 PM
Thats why this tool won't work if for some reason you need to have your (eg, sprite and object) resources named the same (btw, the tool does warn you about this if it finds dupe resource names).
Gamma6, you might want to PM him about that. Your post could be over looked.
#30
Posted 01 May 2008 - 10:28 PM
#31
Posted 01 May 2008 - 10:39 PM
Anyway, for anyone who's not really sure what this does, it takes your gm6 files, looks through them, and renames everything so that none of the resource and variable names make any sense. It's harder to figure out what your code is supposed to do when it uses variable names like Fd3_37Q, yes?
As for what Chronic said about duplicate resource names, I think any Game Maker user who makes those sort of mistakes isn't really in a position to be worried about people wanting to decompile their game anyway.
Edited by JakeX, 01 May 2008 - 10:40 PM.
#32
Posted 01 May 2008 - 10:46 PM
@last sentenceHuh. The other day I was wondering if anyone would make an obfuscation program for Game Maker files - guess this is the answer, mm?
Anyway, for anyone who's not really sure what this does, it takes your gm6 files, looks through them, and renames everything so that none of the resource and variable names make any sense. It's harder to figure out what your code is supposed to do when it uses variable names like Fd3_37Q, yes?
Which is exactly why you should use this right before you compile the exe.
#33
Posted 01 May 2008 - 10:50 PM
#34
Posted 01 May 2008 - 11:06 PM
I think I quite throroughly explained what an obfuscator does in paragraph I, however.
#35
Posted 01 May 2008 - 11:26 PM
EDIT:
also, if it is possible, you should make it rename the sub folders to further confuse hackers/decompilers.
EDIT2:
if you are using D&D with things like the show message it will Obfuscate them as well.
Edited by candc32, 01 May 2008 - 11:46 PM.
#36
Posted 01 May 2008 - 11:29 PM
As a note to other users, running a gmk through LGM to get the gm6 will cause this program to error unless you open the gm6 in GM and save it again.
Also, it seems to mess up with case statements that contain a default case (it replaces the "default" keyword).
#37
Posted 01 May 2008 - 11:32 PM
Thank you. These are the kinds of posts I need. I'll have this fixed right away.Thank you! I've been waiting for this. If it worked with GM7 then it would be perfect.
As a note to other users, running a gmk through LGM to get the gm6 will cause this program to error unless you open the gm6 in GM and save it again.
Also, it seems to mess up with case statements that contain a default case (it replaces the "default" keyword).
This is not required, because GM discards the resource tree when compiling. That means that when you decompile an exe, all resources will lie in a big clump and will not be organized as before. I had that in plan before I discovered this.also, if it is possible, you should make it rename the sub folders to further confuse hackers/decompilers.
#38
Posted 01 May 2008 - 11:36 PM
That's a bad idea in general, so it's probably a good thing the tool warns you.Thats why this tool won't work if for some reason you need to have your (eg, sprite and object) resources named the same (btw, the tool does warn you about this if it finds dupe resource names).
#39
Posted 02 May 2008 - 03:11 AM
#40
Posted 02 May 2008 - 03:13 AM
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users









