[erlang-questions] Re: reverse engineering beam files / obfuscation ?

Richard O'Keefe <>
Mon Feb 15 02:15:58 CET 2010


Quintus faced this issue many years ago now.

There is _nothing_ you can do to stop a sufficiently determined
cracker.  Here's an anecdote.

(1) The Quintus emulator was shipped as an executable binary with
     (a) most but not all of the C symbols stripped
     (b) many but not all of the atoms used in the Prolog system
         clobbered (things users were _supposed_ to be able to mention
         were preserved, everything else smashed).
     (c) we had a special in-house-ONLY tool for restoring the smashed  
names.
(2) Full *and* demo versions of Quintus Prolog were handed out after the
     purchaser signed a contract saying, amongst other things, that they
     would not disassemble the system.
(3) One organisation that got a free demo copy of Quintus Prolog was a
     large software company with a Prolog of their own.  (Fair enough,
     we had a demo copy of their system at one time.)
(4) They attempted to publish in a conference a paper detailing
     implementation techniques that were used, to the best of our  
knowledge,
     only in Quintus Prolog.  Judging from what some of the people  
from that
     company had said previously, they had not then been using these
     techniques themselves.
(5) We informed the conference, and the paper was not published.

The need to disassemble MC68020 instructions hadn't stopped them.
A contract saying they wouldn't reverse engineer hadn't stopped them.

At least if it's in the contract the crackers will KNOW they are
doing something wrong, not just difficult.





More information about the erlang-questions mailing list