[comp.arch] Reverse Engineering

jmorton@daitc.daitc.mil (Joe Morton) (10/04/88)

In article <359@wucs1.wustl.edu> jps@wucs1.UUCP (James Sterbenz) writes:
>Much of IBM source code is liscenced, in which case (assuming you're
>liscenced for the code you're using) there's nothing wrong with looking
>at, modifying, and making suggestions for improvement of code.
>
>If, on the other hand, you've disassembled an OCO (object code only)
>program, that might be another matter.

I'm not familiar with IBM lingo beyond the PC.  Is reverse
engineering (which is how I interpreted the second statement) a no-no
in this case?  At this level, is the algorithm expressed in the object
code still copyrightable or otherwise protected by law?

If this is the wrong group to be asking these questions, I'm open to
suggestions.

Joe Morton - jmorton@daitc.daitc.mil.UUCP

jps@wucs1.wustl.edu (James Sterbenz) (10/06/88)

In article <192@daitc.daitc.mil> jmorton@daitc.daitc.mil.UUCP (Joe Morton) writes:
>In article <359@wucs1.wustl.edu> jps@wucs1.UUCP (James Sterbenz) writes:
>>Much of IBM source code is liscenced, in which case (assuming you're
>>liscenced for the code you're using) there's nothing wrong with looking
>>at, modifying, and making suggestions for improvement of code.
A
>>If, on the other hand, you've disassembled an OCO (object code only)
>>program, that might be another matter.
A
>I'm not familiar with IBM lingo beyond the PC.  Is reverse
>engineering (which is how I interpreted the second statement) a no-no
>in this case?  At this level, is the algorithm expressed in the object
>code still copyrightable or otherwise protected by law?

I don't know all the precise legal details, but as I remember, an
OCO license has a clause prohibiting disassembly of code, i.e.
reverse engineering.  It depends on the program, for various reasons
(both technical and business) some programs and architectures are
open, some are not.  In the mainframe end of things, far more programs
are available with source than are OCO, but the tendency seems to be
for new programs to be OCO.

OCO means that you get only object (binary)
code, no source.  I suspect that this has nothing to do with the 
patents or copyrights.

One of the TECHNICAL advantages to IBM
for OCO programs, is that customers can't modify complex systems code,
which sometimes results in systems breaking, and IBM going to great
lengths to find/fix a bug that was introduced by customer mods.  I
know from experience (both inside and outside IBM) that great lengths
are taken to fix problems.  I know that some other companies don't
even come close to that level of support.

And yes, there are business and marketing reasons for new programs
to be OCO, but the marketing types, MBAs, and lawyers can have fun
with them, I'm not the slightest bit interested. (half :-).

BTW, followups to this should probably go to some other group
that I never read, so email comments/flames.

I suppose I should put an explicit disclaimer in this one:
These opinions are my own, and not those of Washington University
or IBM.




-- 
James Sterbenz  Computer and Communications Research Center
                Washington University in St. Louis 314-726-4203
INTERNET:       jps@wucs1.wustl.edu
UUCP:           wucs1!jps@uunet.uu.net

jps@wucs1.wustl.edu (James Sterbenz) (10/06/88)

In article <192@daitc.daitc.mil> jmorton@daitc.daitc.mil.UUCP (Joe Morton) writes:
>In article <359@wucs1.wustl.edu> jps@wucs1.UUCP (James Sterbenz) writes:
>>Much of IBM source code is liscenced, in which case (assuming you're
>>liscenced for the code you're using) there's nothing wrong with looking
>>at, modifying, and making suggestions for improvement of code.
A
>>If, on the other hand, you've disassembled an OCO (object code only)
>>program, that might be another matter.
A
>I'm not familiar with IBM lingo beyond the PC.  Is reverse
>engineering (which is how I interpreted the second statement) a no-no
>in this case?  At this level, is the algorithm expressed in the object
>code still copyrightable or otherwise protected by law?

I don't know all the precise legal details, but as I remember, an
OCO license has a clause prohibiting disassembly of code, i.e.
reverse engineering.  It depends on the program, for various reasons
(both technical and business) some programs and architectures are
open, some are not.  In the mainframe end of things, far more programs
are available with source than are OCO, but the tendency seems to be
for new programs to be OCO.

OCO means that you get only object (binary)
code, no source.  I suspect that this has nothing to do with the 
patents or copyrights.

One of the TECHNICAL advantages to IBM
for OCO programs, is that customers can't modify complex systems code,
which sometimes results in systems breaking, and IBM going to great
lengths to find/fix a bug that was introduced by customer mods.  I
know from experience (both inside and outside IBM) that great lengths
are taken to fix problems.  I know that some other companies don't
even come close to that level of support.

And yes, there are business and marketing reasons for new programs
to be OCO, but the marketing types, MBAs, and lawyers can have fun
with them, I'm not the slightest bit interested. (half :-).

BTW, followups to this should probably go to some other group
that I never read, so email comments/flames.

I suppose I should put an explicit disclaimer in this one:
These opinions are my own, and not those of Washington University
or IBM.

-- 
James Sterbenz  Computer and Communications Research Center
                Washington University in St. Louis 314-726-4203
INTERNET:       jps@wucs1.wustl.edu
UUCP:           wucs1!jps@uunet.uu.net

peter@ficc.uu.net (Peter da Silva) (10/10/88)

In article <376@wucs1.wustl.edu>, jps@wucs1.wustl.edu (James Sterbenz) writes:
> I don't know all the precise legal details, but as I remember, an
> OCO license has a clause prohibiting disassembly of code, i.e.
> reverse engineering.

Reverse engineering is taking a product and figuring out how to make it.

This does not imply that you're disassembling the code. You could just be
running it and observing how it behaves. It's amazing how much you can tell
about a system this way. I have diagnosed bugs in people's code this way,
and they've been sure I was looking at the source.
-- 
Peter da Silva  `-_-'  Ferranti International Controls Corporation.
"Have you hugged  U  your wolf today?"            peter@ficc.uu.net