Compiler OR Obfuscator for RoR applications?


#1

Hi folks,
I’m a newbie in the Ruby land, The Ruby language and RoR looks really
great but I think in my situation there is a problem, we are an ISV
that sells web application and we don’t want our clients see our
source code, I searched the web but couldn’t find any way to compile
and\or obfuscate ruby code (in web (RoR)), is there such tool
available for the language?

Thanks in advance for your help,
Dunnil


#2

Dunnil, An interesting approach is found at http://moonbase.rydia.net/
mental/blog/programming/avoiding-ruby-keywords.html. As far as I
understand, obfuscating source code has never been of great concern
to the Ruby or Rails developers, or the majority of Ruby developers
for that matter. If the need to obfuscate your source code takes
primacy over your platform decision, I would advise you to look
elsewhere at this time.

Jeremy

On Nov 23, 2005, at 2:14 PM, Human D. wrote:


Rails mailing list
removed_email_address@domain.invalid
http://lists.rubyonrails.org/mailman/listinfo/rails

/******************************************************

Also Cokemachineglow | www.cokemachineglow.com


#3

ROR code can be compiled…

See following tutorial:
http://www.erikveen.dds.nl/distributingrubyapplications/rails.html

----- Original Message -----
From: “Human D.” removed_email_address@domain.invalid
To: removed_email_address@domain.invalid
Sent: Wednesday, November 23, 2005 11:14 PM
Subject: [Rails] Compiler OR Obfuscator for RoR applications?

Hi folks,
I’m a newbie in the Ruby land, The Ruby language and RoR looks really
great but I think in my situation there is a problem, we are an ISV
that sells web application and we don’t want our clients see our
source code, I searched the web but couldn’t find any way to compile
and\or obfuscate ruby code (in web (RoR)), is there such tool
available for the language?

Thanks in advance for your help,
Dunnil


Rails mailing list
removed_email_address@domain.invalid
http://lists.rubyonrails.org/mailman/listinfo/rails


#4

From the Ruby2Exe site:

RubyScript2Exe transforms your Ruby script into a standalone, compressed Windows, Linux or Mac OS X (Darwin) executable. You can look at it as a "compiler". Not in the sense of a source-code-to-byte- code compiler, but as a "collector", for it collects all necessary files to run your script on an other machine: the Ruby script, the Ruby interpreter and the Ruby runtime library (stripped down for this script). Anyway, the result is the same: a standalone executable (application.exe). And that's what we want!

This is a tool for packaging and distribution, but it is not a
compiler. An end user could certainly extract the source code from it.

On Nov 23, 2005, at 2:33 PM, Mischa K. wrote:


Rails mailing list
removed_email_address@domain.invalid
http://lists.rubyonrails.org/mailman/listinfo/rails


Rails mailing list
removed_email_address@domain.invalid
http://lists.rubyonrails.org/mailman/listinfo/rails

/******************************************************

Also Cokemachineglow | www.cokemachineglow.com


#5

Webrick and Sqlite seem to be your options - they are both good and
fine within their limits, but you certainly won’t distribute anything
large scale on this stack.

This really isn’t obfuscation - remember, it is also a fairly trivial
task to disassemble .NET with the available tools and although I am
not certain, I would imagine Java assemblies can be poked inside of
as well.

On Nov 23, 2005, at 2:50 PM, Mischa K. wrote:

A bigger problem might be that you might be stuck running WebRick

From the Ruby2Exe site:

http://www.erikveen.dds.nl/distributingrubyapplications/rails.html
really
removed_email_address@domain.invalid


Rails mailing list
removed_email_address@domain.invalid
http://lists.rubyonrails.org/mailman/listinfo/rails

/******************************************************

Also Cokemachineglow | www.cokemachineglow.com


#6

Compressed distribution sounds like what is asked for :slight_smile:
It’s a huge step up though from text files which everyone can read :slight_smile:

and … if you have a .exe file on the windows platform there are
multiple
exe compressors to run over it, I’m sure there are tools for the other
platforms as well.

Not sure how much trouble you would want to go to protect the contents
though.

A bigger problem might be that you might be stuck running WebRick as a
webserver…

----- Original Message -----
From: “Jeremy Voorhis” removed_email_address@domain.invalid
To: removed_email_address@domain.invalid
Sent: Wednesday, November 23, 2005 11:40 PM
Subject: Re: [Rails] Compiler OR Obfuscator for RoR applications?


#7

A python solution is probably closer to what you want. The django
project (http://djangoproject.com) has just released its first public
version of its framework, and it addresses many of the same problems
that Ruby on Rails does. You probably won’t find many people here that
prefer Python over Ruby (I much prefer Ruby), but Django is well
implemented and Python can be distributed as compiled code.

In truth, the business model that you are describing seems better
suited to the asp.net concept of compiled intermediate code, - but
then you are stuck with the .net platform, and all that it implies :frowning:


www.channel200.net

aim: removed_email_address@domain.invalid
jabber/googletalk: removed_email_address@domain.invalid


#8

Thanks guys,
Seems I should wait for R2.0


#9

On Wednesday 23 November 2005 16:59, Jeremy Voorhis wrote:

Webrick and Sqlite seem to be your options - they are both good and
fine within their limits, but you certainly won’t distribute anything
large scale on this stack.

This really isn’t obfuscation - remember, it is also a fairly trivial
task to disassemble .NET with the available tools and although I am
not certain, I would imagine Java assemblies can be poked inside of
as well.

Well, there is the dotfuscator. It does a good job of mixing everything
in
your intermediate language code to confuse everyone (probably the
computer
too).

But really, “compiling” your ruby app with rubyscript2exe will lend a
single
executable. But when you run it, if you check in the /tmp directory,
you’ll
find a folder that contains all your code. They do have to be smart
enough
to check there though.

If you wait until Ruby 2.0 we’ll all be byte compiled. Still poke-able,
but
not nearly as much.