ID:137443
 
Wondering how secure our projects really are. Is it possible to decompile them at all? How is the information translated to the point where its safe?

FIREking
FIREking wrote:
Wondering how secure our projects really are. Is it possible to decompile them at all? How is the information translated to the point where its safe?

Since the compiler produces byte code, just like machine code, for the BYOND virtual machine, this would be very difficult. It is certainly not possible to pop a .dmb into an editor and copy code out of it!

If you are concerned about this, certainly do not release DEBUG mode versions of your .dmb, since DEBUG mode includes extra information that makes it possible to examine variables and such at run-time. Still, the original source code is not contained within the .dmb. It's just byte code with extra symbol and line-number information.

--Dan
In response to Dan
Dan wrote:
FIREking wrote:
Wondering how secure our projects really are. Is it possible to decompile them at all? How is the information translated to the point where its safe?

Since the compiler produces byte code, just like machine code, for the BYOND virtual machine, this would be very difficult. It is certainly not possible to pop a .dmb into an editor and copy code out of it!

If you are concerned about this, certainly do not release DEBUG mode versions of your .dmb, since DEBUG mode includes extra information that makes it possible to examine variables and such at run-time. Still, the original source code is not contained within the .dmb. It's just byte code with extra symbol and line-number information.

--Dan

While we're on a tangentally related topic, how do you feel about the possibility of adding the option of allowing pre-compiled libraries? I'm thinking of a means of distributing useful routines without giving away the actual code. Would that be impossible to do with the existing architecture?
In response to Skysaw
Skysaw wrote:
While we're on a tangentally related topic, how do you feel about the possibility of adding the option of allowing pre-compiled libraries? I'm thinking of a means of distributing useful routines without giving away the actual code. Would that be impossible to do with the existing architecture?

I was interested in something like this as well. I would be very hesitant to use libraries from sources I didn't trust though, because it would be possible to slip in hidden verbs or special exceptions in the code to give a dishonest library creator unfair advantages in any game that uses his or her library.
In response to Shadowdarke
a review process for these special compiled libraries would fix that hesitant. or at least a way for dan and tom to decompile them, look at them, then give the thumbs up for download.