Post by IsmAvatar on Jul 27, 2007 13:10:54 GMT -5
What is it?
GMKrypt Obfuscation is the encryption/obfuscation used on GMK files produced by GameMaker 7.0 Lite and Pro, originally implemented to slow G-Java development, since Mark feared that people would confuse G-Java with GameMaker and flood the GMC with G-Java questions. It is also used by GameMaker Extension Maker/Builder for the extension packages, to prevent package-users from modifying the packages when the designer may not want them to.
Thus, we wish to vehemently express that if you use this in a project, you should make it perfectly clear that your project is third party, and not by YYG, and that questions, etc, should be sent only to your project's party, and NOT to GameMaker or YYG places. When applied to Extension Packages, it should NOT be used for the specific purpose of modifying or stealing code or other such resources from a package, unless you have express permission to do so by the original package maker, in which case they would likely gladly provide you with a non-encrypted version, so there should be no need to decrypt the package.
This documentation, then, documents only the obfuscation and scheme and how to obfuscate or deobfuscate a file which uses this scheme. I also try to keep it in layman's terms so even a novice can understand it.
Semi Legal information, Credit, License, Corrections, etc
Much credit goes to Quadduc who wrote the Python code on which I had to figure out how to read (myself not knowing Python) and understand as my sole source of understanding of this obfuscation scheme.
This, as with all my other documents (unless otherwise specified) is provided under the GNU GPL, however I would appreciate being notified of any changes you may make to it so that I may retain an official copy for general distribution. Alternatively (and preferably) you may mention any errors or parts that you feel need changing - to me, and I will correct them.
I, nor any of the LateralGM team, are liable for any damages done from the information contained in this document.
This document utilizes the Free Information Philosophy. While this philosophy and Capitalism may not be compatible, I have done my best to fully utilize Free Information without violating Capitalism, since I live within a country of Capita, so no legal charges may be filed against me, since this is merely an expression of free speech. For more information on Political and Economic Philosophy like this, contact your nearest qualified professor, teacher, philosopher, or me.
Expected Use
The document is in Rich Text Format, so you will need a program such as WordPad, Word, OpenOffice, etc to open it. The purpose of this is so that I can add formatting to easily denote which text is code and which text is simply me talking.
I have gone to the trouble of laying out the document in a format that is easily readable by most people. Thus, it is much appreciated if you too go to the trouble of reading it. I have provided code to supplement your understanding of the obfuscation. It is my philosophy of enlightenment that you should indeed go out of your way to learn stuff, but I know there will be many of you who would rather be ignorant and will just skip the text and copy and paste the code. If you want to be ignorant like that, I won't stop you.
I also do not expect you to be such a coding wiz that you could produce such code from scratch just from understanding the format, thus you are welcome to borrow from or even use the code, provided proper credit is given to the creator of the code. However, I provide no warranty that the code works at all. If you want to be a lazy ignorant programmer and just snatch code without thinking about it, then so be it, just don't be surprised when it doesn't work or corrupts one of your files.
Download and Archives
www.IsmAvatar.com/lgm/formats/gmkrypt1.rtf
There are no archives at this time.
Prior erroneous documents did exist but were destroyed due to errors which made them useless, and were never released to the public.
GMKrypt Obfuscation is the encryption/obfuscation used on GMK files produced by GameMaker 7.0 Lite and Pro, originally implemented to slow G-Java development, since Mark feared that people would confuse G-Java with GameMaker and flood the GMC with G-Java questions. It is also used by GameMaker Extension Maker/Builder for the extension packages, to prevent package-users from modifying the packages when the designer may not want them to.
Thus, we wish to vehemently express that if you use this in a project, you should make it perfectly clear that your project is third party, and not by YYG, and that questions, etc, should be sent only to your project's party, and NOT to GameMaker or YYG places. When applied to Extension Packages, it should NOT be used for the specific purpose of modifying or stealing code or other such resources from a package, unless you have express permission to do so by the original package maker, in which case they would likely gladly provide you with a non-encrypted version, so there should be no need to decrypt the package.
This documentation, then, documents only the obfuscation and scheme and how to obfuscate or deobfuscate a file which uses this scheme. I also try to keep it in layman's terms so even a novice can understand it.
Semi Legal information, Credit, License, Corrections, etc
Much credit goes to Quadduc who wrote the Python code on which I had to figure out how to read (myself not knowing Python) and understand as my sole source of understanding of this obfuscation scheme.
This, as with all my other documents (unless otherwise specified) is provided under the GNU GPL, however I would appreciate being notified of any changes you may make to it so that I may retain an official copy for general distribution. Alternatively (and preferably) you may mention any errors or parts that you feel need changing - to me, and I will correct them.
I, nor any of the LateralGM team, are liable for any damages done from the information contained in this document.
This document utilizes the Free Information Philosophy. While this philosophy and Capitalism may not be compatible, I have done my best to fully utilize Free Information without violating Capitalism, since I live within a country of Capita, so no legal charges may be filed against me, since this is merely an expression of free speech. For more information on Political and Economic Philosophy like this, contact your nearest qualified professor, teacher, philosopher, or me.
Expected Use
The document is in Rich Text Format, so you will need a program such as WordPad, Word, OpenOffice, etc to open it. The purpose of this is so that I can add formatting to easily denote which text is code and which text is simply me talking.
I have gone to the trouble of laying out the document in a format that is easily readable by most people. Thus, it is much appreciated if you too go to the trouble of reading it. I have provided code to supplement your understanding of the obfuscation. It is my philosophy of enlightenment that you should indeed go out of your way to learn stuff, but I know there will be many of you who would rather be ignorant and will just skip the text and copy and paste the code. If you want to be ignorant like that, I won't stop you.
I also do not expect you to be such a coding wiz that you could produce such code from scratch just from understanding the format, thus you are welcome to borrow from or even use the code, provided proper credit is given to the creator of the code. However, I provide no warranty that the code works at all. If you want to be a lazy ignorant programmer and just snatch code without thinking about it, then so be it, just don't be surprised when it doesn't work or corrupts one of your files.
Download and Archives
www.IsmAvatar.com/lgm/formats/gmkrypt1.rtf
There are no archives at this time.
Prior erroneous documents did exist but were destroyed due to errors which made them useless, and were never released to the public.