Jump to content


Photo

Anti-Decompiler [Download]


  • Please log in to reply
480 replies to this topic

#1 score_under

score_under

    Least kawaii

  • GMC Member
  • 1321 posts

Posted 05 March 2009 - 11:09 PM

Always make sure your version is the latest to avoid possible bugs!
Combine with other programs (Schreib's Obfuscator, some EXE compressors, 39ster's DLL to remove scripts from memory)
Supports: :GM8_new: GM8.0 games :GM7: GM7.0 games :GM6: GM6.1-to-vista'd games


Last update: 20/06/11 (20th June 2011)

Do not use any self-check scripts with this (e.g. debug checker, or checksum DLL), as it voids the checksum and debug data.

Anti-Decompiler Downloads
Version 2:
> bit.ly/AntiDecompiler < 305KB .ZIP -- EDIT! Dropbox hates me.  Get DonPotenzo's copy and check your SHA-sums
> van0014's packaged version <

Old version 1:
> RAR < 2.5MB
> ZIP < 2.85MB

__________
Alternate Skins Just for fun
Sindarin's (amazing) skin is included by default.
(See post for screenshot [->])
Zues' Skin: [->]
ev149's skin: [->] - 404
Hauzer-Ninja's skin: [->]

__________
Anti-Decompiler Info

This program is my take on the decompiler problem: If you can't hide it, encrypt it.
At the moment, this does:


  • Moves game data to a random position. (Slightly increases filesize, but never by more than 0.07MB)
  • Encrypts game data with random keys.
  • Overwrites all version info with random data.
  • Integrates itself into the game EXE - doesn't extract any DLLs, doesn't save any temporary files.
  • Has an extremely small decryption time.

The anti-decompiler is now much more user-friendly:
antidec2.png
(Sindarin's excellent skin, now default, can be seen in his post. You only need to extract "skin.bmp" and "icon.ico" to replace skins.)
Screenshot of side-by-side comparison in hex editor:
hex.png

This program is not written in Game Maker.

Unlike the attempt that I made last time, which was basically just a proof-of-concept, this one now has many more features to make it more user-friendly and straightforward. It also has a more secure encryption scheme than before.

Anti-Decompiler Q&A
Q: What happens when someone tries to decompile a protected game?
A: See this screenshot: (Click to zoom in) results.jpg
---
Q: Can I upload the protected game to InstantPlay?
A: No, InstantPlay can't read the game data.
---
Q: If the data's encrypted and relocated, how does Game Maker read it?
A: It decrypts at runtime, this program hooks the required functions.
---
Q: Does this require any extra DLLs, EXEs, or other datafiles to be distributed with the game?
A: No.
---
Q: Is this a virus?
A: No. Try scanning with something like virustotal if you are worried.
---
Q: Can I use this in my own software?
A: Sure, but remember it's your responsibility to update it! (Fortunately my rate of updates has decreased dramatically)
You can call it from most programs, like so:
Batch script:

antidecompiler "c:\path\to\game to protect.exe"
Game Maker:
execute_program("antidecompiler.exe",'"c:\path\to\game to protect.exe"',1);
//Notice quotes *inside* the string

Anti-Decompiler Changelog
20th June 2011:
  • Checks whether the GM8.1 exe is in fact 8.1.91 before it goes and messes everything up.
  • Options dialog on protecting.
  • AntiDecompiler.exe now does the compressing, rather than compress.exe.
  • All .DAT files updated to allow for a small amount of data aiding in compression of the EXE.

17th June 2011:

  • Finally! Supports 8.1.91 and *NO OTHER 8.1 VERSION YET*. If it doesn't work with your version it will probably remove the icon and stop windows from loading the EXE.

25th January 2011:

  • Created .dat format "version 2" (i.e. version 2 since last rewrite)
  • Now takes all forms of icons.

16th July 2010:

  • Improved .dat format, it is now extremely small.
  • Added GM8 support
  • A new codebase, so please report any bugs you find to me, as usual.

Halloween 2009:

  • Fixed a little problem with closing the program on some vista machines. (Again!)

09/09/09:

  • Greatly increased encryption strength, and encryption code no longer remains in program memory for long.
  • Added a quick program which will compress an already antidec'd GM7 EXE file (This is possible too with non-antidec'd EXE files and GM6-antidec'd EXE files, I just haven't added that into the program. I could do one manually for you if you asked nicely)

12th June 2009:

  • Removed most of the "suspicious-looking" code (mostly just repeated bytes making it think it's packed, namely 90 and EB3B) in the EXEs to avoid it being wrongly detected as a virus.

9th May 2009:

  • Added an option to remove code snippets from the error dialogs.

5th April 2009:

  • Added command-line option support; compressed EXE; completely invalidated the resource-editing tutorial.

21st March 2009:

  • Minor tinkerings; after protection, not even programs that were previously debug-mode will be able to run in debug mode.

10th March 2009:

  • Fixed a small bug (hopefully hasn't affected anyone yet) in the GM6.1-to-vista anti-decompiler data which could possibly cause a crash.

9th March 2009:

  • Update 1: Fixed a stack bug which occurred at game end, this could be the crashing bug that's been eluding me for all of 4 days.
  • Update 2: Added GM6.1-to-vista support.

7th March 2009:

  • Fixed a bug with some unrelated GM functions causing a crash.

5th March 2009:

  • Released.

Edited by score_under, 20 July 2013 - 01:21 AM.

  • 21

#2 PickleMan

PickleMan

    Programmer

  • New Member
  • 995 posts
  • Version:Unknown

Posted 06 March 2009 - 12:58 AM

First Post! Nice to see that this topic flourished. I will be releasing my own soon.
  • 0

#3 Aertcz

Aertcz

    Aleksander

  • GMC Member
  • 1660 posts

Posted 06 March 2009 - 04:23 AM

Best thing to happen since the Decompiler
  • 2

#4 Tuz

Tuz

    GMC Member

  • New Member
  • 106 posts

Posted 06 March 2009 - 06:24 AM

This is something that i have waited for a long. But i hope that noone will find a way to crack this :D
  • 0

#5 tamper2

tamper2

    GMC Member

  • New Member
  • 369 posts

Posted 06 March 2009 - 09:45 AM

Hmmmm... looks nice...
I haven't downloaded it yet, but I want to ask, how do you know people won't decompile this, or find a way around this?
Do you have any special method that can't be cracked easily?

Tamper
  • 0

#6 allong

allong

    GMC Member

  • GMC Member
  • 191 posts

Posted 06 March 2009 - 11:05 AM

I would like to ask, what changes are made to the target EXE to render them un-decompilable ?
  • 0

#7 A saurus1

A saurus1

    GMC Member

  • Sandbox Moderators
  • 1609 posts
  • Version:GM8.1

Posted 06 March 2009 - 11:53 AM

I would like to ask, what changes are made to the target EXE to render them un-decompilable ?

Why would he tell you that. Anyway, I think it just causes the decompiler to think that the exe is not a GM exe, and therefore it won't decompile it.

I don't think this was written in GM. GM does not have built-in functions to accept D&D files, and requires a dll to do so. I did not see such a dll come with the decompiler.

Well, it works, that's all I can say. And I like your skin, I think you should keep it. However, if you do want a new one, I'll be happy to do it for you if you just give me some style ideas (what do you want?).
  • 0

#8 Aertcz

Aertcz

    Aleksander

  • GMC Member
  • 1660 posts

Posted 06 March 2009 - 03:34 PM

Beats buying Armadillo Passport
  • 0

#9 score_under

score_under

    Least kawaii

  • GMC Member
  • 1321 posts

Posted 06 March 2009 - 05:28 PM

Hmmmm... looks nice...
I haven't downloaded it yet, but I want to ask, how do you know people won't decompile this, or find a way around this?
Do you have any special method that can't be cracked easily?

Tamper

I have talked to the developer of the decompiler over instant messenger, he has no intention of creating a newer version of the decompiler - let alone cracking a 3rd-party protection.

I would like to ask, what changes are made to the target EXE to render them un-decompilable ?

Why would he tell you that. Anyway, I think it just causes the decompiler to think that the exe is not a GM exe, and therefore it won't decompile it.

It does both that, and encrypts the data too (so that if you choose the version manually, it still can't decompile).

I don't think this was written in GM. GM does not have built-in functions to accept D&D files, and requires a dll to do so. I did not see such a dll come with the decompiler.

Correct. It was written in C, and I used skinning to see how well I knew Win32 GDI functions.

Well, it works, that's all I can say. And I like your skin, I think you should keep it. However, if you do want a new one, I'll be happy to do it for you if you just give me some style ideas (what do you want?).

You can make any skin you want. I just want it to both be appealing to the eye (the one thing the previous version was not) and easy-to-use.
If anyone saw my previous version (although a little shrouded in obscurity) it was a lot more quirky to use than this - it used an interactive console window and printed minimalistic messages, without checking for the integrity of the EXE.

Beats buying Armadillo Passport

Yes, it does. Thanks :D
  • 1

#10 petenka

petenka

    The Chosen One

  • New Member
  • 911 posts

Posted 06 March 2009 - 08:14 PM

GM does have functions to examine parameters, so yes it IS possible for D&D to work in gm programs :D
Go look in the help files.
  • 0

#11 Maarten Baert

Maarten Baert

    GMC Member

  • GMC Member
  • 738 posts
  • Version:GM8.1

Posted 06 March 2009 - 09:11 PM

Okay, I can understand how the protecting part works, but I don't understand how you managed to keep the EXE working. I thought GM uses a self-check system, usually it just says 'game file is corrupted' if you change anything at all. Does this program export the orinigal EXE to the temp folder? Or does it run the game directly, disabling the self-check somehow?

EDIT:
According to ProcExp the original program is NOT exported. There are some small differences between the protected version and the original version though, most importantly the protected version uses 1MB more RAM (the actual game data? the runner?).

By the way, the protected program crashed when I tried to close it. Except for this small bug, this program is great! Can you give us some more info about how the 'integration' works?

Edited by matrebatre, 06 March 2009 - 09:27 PM.

  • 0

#12 A saurus1

A saurus1

    GMC Member

  • Sandbox Moderators
  • 1609 posts
  • Version:GM8.1

Posted 06 March 2009 - 09:40 PM

GM does have functions to examine parameters, so yes it IS possible for D&D to work in gm programs :D
Go look in the help files.


Yes, but in this program, you can actually drop a file into the window, not just on to the icon.
  • 0

#13 score_under

score_under

    Least kawaii

  • GMC Member
  • 1321 posts

Posted 06 March 2009 - 10:19 PM

Okay, I can understand how the protecting part works, but I don't understand how you managed to keep the EXE working. I thought GM uses a self-check system, usually it just says 'game file is corrupted' if you change anything at all. Does this program export the orinigal EXE to the temp folder? Or does it run the game directly, disabling the self-check somehow?

EDIT:
According to ProcExp the original program is NOT exported. There are some small differences between the protected version and the original version though, most importantly the protected version uses 1MB more RAM (the actual game data? the runner?).

By the way, the protected program crashed when I tried to close it. Except for this small bug, this program is great! Can you give us some more info about how the 'integration' works?

It shouldn't use any more than 64KB more RAM, as this is the maximum it will add to the game size.

EDIT:
Posted Image
It seems a Game Maker game uses varying amounts of RAM - in this case, the original used more than the protected.

It hooks the function which checks/reads/interprets the data and decrypts it before it's processed.

Edited by score_under, 11 March 2009 - 10:14 PM.

  • 1

#14 Sindarin

Sindarin

    Indie Game Developer

  • New Member
  • 1644 posts
  • Version:GM:HTML5

Posted 07 March 2009 - 12:22 AM

Someone please design a better theme!


Here, had some free time so I re-skinned it for you :D

Posted Image

Get It

Though I did have problems with the protected game. When I tried to use sprite_replace_alpha, the game froze and at the game end I got an app crash.

Edited by Sindarin, 07 March 2009 - 01:02 AM.

  • 0

#15 score_under

score_under

    Least kawaii

  • GMC Member
  • 1321 posts

Posted 07 March 2009 - 01:07 AM

Though I did have problems with the protected game. When I tried to use sprite_replace_alpha, the game froze and at the game end I got an app crash.

To be honest, I expected something like that. I'll try to upload a fix tomorrow.
EDIT: Uploaded, tell me if it's worked!

Edited by score_under, 07 March 2009 - 01:07 PM.

  • 1

#16 Sindarin

Sindarin

    Indie Game Developer

  • New Member
  • 1644 posts
  • Version:GM:HTML5

Posted 07 March 2009 - 02:11 PM

Good job, now it works. However the crash at the game end still occurs.
  • 0

#17 score_under

score_under

    Least kawaii

  • GMC Member
  • 1321 posts

Posted 07 March 2009 - 03:40 PM

Good job, now it works. However the crash at the game end still occurs.

I'm not getting this error... would you mind sending over the code that causes it? (As long as it isn't too sensitive.)

EDIT: 09 March '09: Sindarin, could you see if the crashing bug at game end is still caused by the newer version?

Edited by score_under, 09 March 2009 - 05:52 PM.

  • 1

#18 Tahnok

Tahnok

    Friendly Madman

  • GMC Member
  • 1788 posts
  • Version:Unknown

Posted 09 March 2009 - 06:55 AM

It works perfectly on my current project. Good stuff, thanks.
  • 0

#19 LoopStan

LoopStan

    North-See Developer

  • GMC Member
  • 1398 posts

Posted 11 March 2009 - 02:25 AM

Wow! I like this! This is really useful. I'm glad someone is putting their time and effort into creating something to help the GMWorld.
  • 0

#20 Sindarin

Sindarin

    Indie Game Developer

  • New Member
  • 1644 posts
  • Version:GM:HTML5

Posted 11 March 2009 - 04:48 PM

EDIT: 09 March '09: Sindarin, could you see if the crashing bug at game end is still caused by the newer version?


It seems it is fixed now, no crash at game end. Good job!
  • 0

#21 Gupocca

Gupocca

    Artist

  • GMC Member
  • 644 posts
  • Version:Unknown

Posted 13 March 2009 - 04:32 AM

Hey, this is nice. Glad to see that someone has come up with something that works, is free, and easy to use.

I'll be certain to use this in the future, unless someone manages to get past it by then—which is possible, however unlikely it might be.
  • 0

#22 Zues

Zues

    GMC Member

  • New Member
  • 180 posts

Posted 14 March 2009 - 03:23 AM

This is pretty cool! I've been looking for something like this for quite a while!
Thanks for taking the time to do this!


Also, to help out, I made another skin (security themed)
Here's what it looks like:
Posted Image
Download
Posted Image

~Zues

Edited by Zues, 14 March 2009 - 03:15 PM.

  • 0

#23 Sindarin

Sindarin

    Indie Game Developer

  • New Member
  • 1644 posts
  • Version:GM:HTML5

Posted 14 March 2009 - 06:24 PM

Also, to help out, I made another skin (security themed)


Why this reminds me of Phoenix Wright? XD
  • 0

#24 ZZ man

ZZ man

    GMC Member

  • New Member
  • 1745 posts

Posted 17 March 2009 - 11:25 AM

soon the hackers will make an anti anti decompiler XD
  • 0

#25 makerofthegames

makerofthegames

    Never you mind!

  • GMC Member
  • 7521 posts
  • Version:GM:Studio

Posted 17 March 2009 - 03:35 PM

soon the hackers will make an anti anti decompiler XD

That I would love to see...Impossable, but still.
  • 0

#26 petenka

petenka

    The Chosen One

  • New Member
  • 911 posts

Posted 17 March 2009 - 06:56 PM

soon the hackers will make an anti anti decompiler XD

That I would love to see...Impossable, but still.


Oh it is possible.
all protection methods are crackable.
this one is just the hardest gm protection to crack atm.
  • 0

#27 Ethelon

Ethelon

    GM Artist

  • New Member
  • 1094 posts

Posted 17 March 2009 - 10:24 PM

Nice job Score.
  • 0

#28 CoolGamrSms

CoolGamrSms

    Scorching Strings Maker

  • GMC Member
  • 1499 posts

Posted 18 March 2009 - 12:30 AM

soon the hackers will make an anti anti decompiler XD

That I would love to see...Impossable, but still.


Oh it is possible.
all protection methods are crackable.
this one is just the hardest gm protection to crack atm.



It's not really that hard, other than cracking the encryption. Not that I would know how to crack it as of now, I just know how it works, which would help. :blink:
  • 0

#29 iluvfuz

iluvfuz

    GMC Member

  • GMC Member
  • 1452 posts
  • Version:GM:Studio

Posted 18 March 2009 - 12:39 AM

soon the hackers will make an anti anti decompiler XD

That I would love to see...Impossable, but still.


Oh it is possible.
all protection methods are crackable.
this one is just the hardest gm protection to crack atm.



It's not really that hard, other than cracking the encryption. Not that I would know how to crack it as of now, I just know how it works, which would help. :blink:


Well, even if it is simple to do, decrypting and re-encrypting a Game Maker file, you must admit it's very useful. I don't really worry much about game sbeing decompiled though, as if it is a game posted on the GMC or YYG, you have proof it was yours first.

Great job!
  • 0

#30 Mailas

Mailas

    Send in the Mail

  • GMC Member
  • 5567 posts
  • Version:GM:Studio

Posted 19 March 2009 - 08:54 PM

This is great! Just one question,
will this at all effect the games performance? As in, cause any errors/bugs for the game when it runs?
  • 0




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users