Fog Creek Software
g
Discussion Board




Open source programming and compilers

Hi,

Of all the popular programming languages in the open source world, which can be compiled+obfusicated on both UNIX-like platforms and Win32 platforms:

* Perl
* Python
* Tcl
* PHP
* C/C++ (duh)
* Scheme/Lisp
* Java

Li-fan Chen
Monday, January 26, 2004

D

http://www.digitalmars.com/d/

Benji Smith
Monday, January 26, 2004

To save everyone the anguish of stating the obvious:

Yeah you can distribute only the byte codes for the following I think on UN*X/Win32:

* Python, Perl, PHP, Tcl, Java

You can clearly obfuscate the following on Win32:

Java (commercial obfuscator), Python (commercial obfuscator), Tcl (commercial obfuscator), and Perl (commercial obfuscator), C/C++ (commercial obfuscator)

Li-fan Chen
Monday, January 26, 2004

Also of course, given the rather good work Mono are doing, at least the core of .NET (c#) fits into this as well. Certainly able to be obfuscated on Windows, not too sure about Unix, but it would amaze me if there wasn't a Unix tool for that already.

Andrew Cherry
Monday, January 26, 2004

Well, when you obfuscate java bytecodes, they should run on any platform since you're transforming legal code into a version which ideally differs only in performance.  (There are caveats, especially when you're using dynamic techniques like reflection.  Also, code which is already incorrect can behave more or less so, such as when you have thread timing problems.)

IBM has one.  I believe an old (useful) version is still provided opensource through alphaWorks.  It's hard to expect many free versions since the main use is to hide sourcecode.  The original use was size/performance improvements, but it takes enough maintenance that I'm sure few Free Software projects would use it.

Tayssir John Gabbour
Tuesday, January 27, 2004

Oh yeah, some of these are buggy.  Yup, obfuscators are but programs and they may bleed...  So it's another point of failure that clashes with the economic objective of keeping your code scarce.

Tayssir John Gabbour
Tuesday, January 27, 2004

Don't forget OCaml

http://www.ocaml.org/

Apparantly it compiles as fast as C

http://dada.perl.it/shootout/craps.html

Ged Byrne
Tuesday, January 27, 2004

No need to obfuscate!  Just write in Perl, Lisp or Forth, and no one will understand your code enough to steal it.  In fact, YOU won't understand your code.  It's the perfect solution!

Eric TF Bat
Tuesday, January 27, 2004

Obfuscation is fundementally impossible:

http://www.wisdom.weizmann.ac.il/~boaz/Papers/obfuscate.html

Having had the pleasure to disassemble 'obfuscated' Java apps, I can point out that all obfuscation seems to buy you nothing at all (except loosing nice names in error messages and stack traces for uncaught exceptions - ouch)

i like i
Tuesday, January 27, 2004

For Java obfuscation, gcj can compile to machine code.  No longer portable, but at least "obfuscated" to the point of C/C++.

David Jones
Tuesday, January 27, 2004

True Story:
My manager wanted me to ofuscate my JavaScript for an Intranet site because he didn't want another department to "steal" it.  I told him don't worry, my code is so badly written I don't even understand half of it!  He worried anyway.

Bill Rushmore
Tuesday, January 27, 2004

*  Recent Topics

*  Fog Creek Home