GM7 *Is The* Decompiler

By now all of you are most certainly aware of the GM decompiler floating around, but what Caniac discovered today may come as a bit of a shock to some readers.

The user discovered that GM7 in fact ‘decompiles’ packaged extensions for Game Maker 7. This allows any user to view the source code to any Game Maker extension and possibly steal and modify said code without permission from the extension’s author.

You may know that the GM7 decompiler can already ‘decompile’ such extension packages, however this is a bit different. This method of extracting the contents of the package does not require any additional decompiling software, tools or hacking methods. In fact all that is needed is notepad to remove a single line from the extension file Game Maker outputs after the package has been installed in the program.

This is just a small warning to those Extension Makers who are perhaps concerned their work could be stolen or modified without permission. One use of Extensions (prior to this discovery) was to release a secure library of functions to perform various programming tasks which could only be called by the programmer, not viewed or modified. Now it is no longer possible to share programming functions with other developers without also exposing the source code behind them.

11 Responses

  1. The topic has now been removed from the GMC, did anyone actually ever prove it worked? The original poster seemed a bit crazy, has anyone else replicated what he said he’s done at all? Until there’s proof I’m going to stay skeptical about whether this is in fact true.

  2. Just like any normal GML script, you can use a memory editor to view the source of a script inside an extension while the game is running. This method sounds weird though: remove one line to read the other lines? By the way, Mark never claimed the extension encryption to be strong.

    However, contrary to stolen games, stolen extensions can only be redistributed inside the Game Maker Community: it is hard to steal an extension without getting caught.

  3. Quote from Bliigbol:
    “This method sounds weird though: remove one line to read the other lines?”

    Once the line is removed, the file can be opened with the official extension maker. Making the source completely visible and instantly available for extension theft & modification.

  4. I’ve known this for a while, I’m pretty sure it was even on the page for the extension maker at one point. It’s really not that big a deal.

  5. Damn, no Google cache of it either 😦

  6. Another reason to avoid trying to make something commercial with Game Maker.

  7. isn’t it sad that the most popular articles on this blog are those of the GM decompilers?

  8. I never said that I did it,
    I was showing that somwhere in the extension file,
    there is 3-4 charectors that prevents the ext maker from opening it.
    yes it can be done.
    try it!
    make a new ged file, save it.
    then make it a gex
    then open that with gm7,
    and go to program files>gm7>extensiopns:
    and you cvan see “yourext.ged”
    compare it to the original………………

  9. Changing a small bit in the libraries could make GM think it is an official one, thus should not be edited. I guess this extension thing would work in a similar way.

  10. Open the extensions directory in the Game Maker install directory. Find the extension you want and open it in a hex editor. Change the 5th byte (the LSB in the second long) to a 1 (it should be a 0). You’re done.

  11. Thanks Leif, I am glad that somone figured out this. I could not figure out which charector to ajust, thank you for giving me the proof 🙂

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: