[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