[plug] Reverse Engineering

Campbell, David (Ex AS17) david.j.campbell at honeywell.com
Tue Dec 5 12:24:50 WST 2000


From:	Earnshaw, Mike [SMTP:earnshawm at wa.switch.aust.com]
> Subject:	[plug] Reverse Engineering
> 
> Pluggers,
> 
> Not sure if this falls into the OT bucket ... apologies if it does.

Half in, half on the floor.

> I have a need to be able to reverse engineer an application to verify
> information and progress reports given by the third party. It is all
> cloak and dagger stuff and I appreciate there would be legal
> implications here.

Can this reverse engineering be classed as "for inter-operability"?
There is a very specific loop-hole where reverse engineering is
perfectly legal.

> My quick question would be: "How hard is it to reverse engineer
> an application?"

Which platform? The binutils package has a program called objdump
which can disassemble a program. It works better if the program
hasn't been "stripped" and the debug flags are still present.

> I don't know at this stage what it is compiled in [I am sure I
> can find that information].

If it is C++ then the symbol names are mangled (this is to handle
polymorphism where two functions have the same name but
differ by argument list).

> A second question, "How messy or what problems would
> be encountered" [I appreciate this is a ball of string as I don't
> have more details than this at this stage].

It can border on the impossible unless you know what the
program is attempting to achieve. I have reversed engineered
the Iomega ZIP Plus driver (parallel port driver for the current
generation of ZIP drives). Here I knew that it would be talking
SCSI, it was a matter of matching the patterns of the bytes
sent to the parallel port with the expected SCSI command.

Some more details about the program are required
(eg: CAD, word processor, GUI, etc).

David Campbell



More information about the plug mailing list