decoration decoration
Stories

GROKLAW
When you want to know more...
decoration
For layout only
Home
Archives
Site Map
Search
About Groklaw
Awards
Legal Research
Timelines
ApplevSamsung
ApplevSamsung p.2
ArchiveExplorer
Autozone
Bilski
Cases
Cast: Lawyers
Comes v. MS
Contracts/Documents
Courts
DRM
Gordon v MS
GPL
Grokdoc
HTML How To
IPI v RH
IV v. Google
Legal Docs
Lodsys
MS Litigations
MSvB&N
News Picks
Novell v. MS
Novell-MS Deal
ODF/OOXML
OOXML Appeals
OraclevGoogle
Patents
ProjectMonterey
Psystar
Quote Database
Red Hat v SCO
Salus Book
SCEA v Hotz
SCO Appeals
SCO Bankruptcy
SCO Financials
SCO Overview
SCO v IBM
SCO v Novell
SCO:Soup2Nuts
SCOsource
Sean Daly
Software Patents
Switch to Linux
Transcripts
Unix Books

Gear

Groklaw Gear

Click here to send an email to the editor of this weblog.


You won't find me on Facebook


Donate

Donate Paypal


No Legal Advice

The information on Groklaw is not intended to constitute legal advice. While Mark is a lawyer and he has asked other lawyers and law students to contribute articles, all of these articles are offered to help educate, not to provide specific legal advice. They are not your lawyers.

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
A New Expression for "Reverse Engineering"?
Friday, May 06 2005 @ 09:53 AM EDT

I wanted to let you know why I was so quiet for a bit. I was preparing an article for LWN on reverse engineering. What can you do and what can't you do? It was a massive project, and you can read the result here if you have a subscription. If not, you can either get one quite easily or wait a week to read the article.

I wanted to share one thing I found in my research here on Groklaw. A lot of people have come to think of reverse engineering as a criminal activity, and while it can be, there are many legitimate reasons to do reverse engineering, as my article highlights. Reverse engineering is just figuring out how something works. We all took apart clocks and radios as kids, I imagine. Why? Just for fun, to see how they worked.

Gaining knowledge is normally viewed as a positive thing. Yet, more and more, there are laws being passed to prevent this kind of knowledge when it comes to software. If that subject interests you, you will enjoy reading Professor Ed Felton's Freedom to Tinker blog. Part of the problem, then, is the phrase and all the negative associations attached to it, but another issue is that taking apart a clock and figuring out how a software program works are not really comparable as far as the process is concerned.

I found an article in my research, which I listed in a separate LWN page, Additional readings on reverse engineering law (also subscriber content), that suggests that a new word or phrase is needed to replace "reverse engineering":

There are three good reasons to rethink the term reverse engineering: (1) it implies unethical behavior, (2) it lacks meaning, and (3) it conjures up inaccurate images from the past. While the problem is easy to define, the solution is not. The challenge lies in defining a new term. . . .

The first meeting of the Data Capture/Reverse Engineering technical group-part of the RTAM (Rapid Technologies and Additive Manufacturing) technical community-was held in July 2004. The participants were charged with defining the roles and goals of the technical group. However, within a matter of moments, the group discovered that the interests of the participants were varied and the definitions of reverse engineering diverse. The disparity was so great that it became impossible to chart a course and define the tech group's mission.

The discussion rapidly regressed to a few simple questions. What is RE? What technologies does it include? What are the applications? This group of experienced professionals, each with hands-on experience in RE, was unable to define the technology in the context of its many applications. It concluded that if the tech group could not come to a consensus, there is no possibility for a clear understanding in industry. Therefore, the tech group decided that reverse engineering needed to be renamed and redefined.

With agreement to do so, the conversation turned to resolving this dilemma. The question arose. "If it isn't RE, what is it?" The answer to this simple question is deceptively complex.

To date, the Data Capture/Reverse Engineering tech group has yet to come up with the answer. Although the industry has pondered the question for years, it has not fared any better in renaming the technology.

So, that group struck out in finding a new term. Three of the possibilities considered were data capture, digital duplication and reverse modeling, but no consensus was reached. Samba's Dan Shearer supports the idea that a new name is needed, and he suggested that I ask you for ideas. I also wanted to ask you to list for me what you think are the best projects that resulted from "reverse engineering." Here is his contribution, but we are seriously wondering if any of you can do better:

****************************

Constructive Exploration/Complementary Engineering
~ by Dan Shearer

------------------------

"If I have been able to see further, it was only because I stood on the shoulders of giants." http://en.wikiquote.org/wiki/Isaac_Newton

This well-known quote 1 embodies respect for intellectual effort of others and giving due credit. In considering any artificial work it is usual to wonder about the creative effort, and often as not to touch it or -- as we do from babyhood -- learn by taking it apart.

The term "Reverse Engineering" can be examined from legal and technical points of view. Here I am instead trying to capture the feeling of what is meant, in order to find a better term, a term that conveys meaning to most people.

I think "Reverse Engineering" has almost exactly the wrong implication. We're not taking something away from the sum of human knowledge, we're adding something to it -- even if I don't publish my results, if I produce something that artifact represents a mine of knowledge to others just as the original did to me. In Reverse Engineering we're not stealing someone else's hard work, we're being inspired by it. In short, the process of developing somewhat parallel thinking is moving forwards, not backwards. So the name should reflect that general attitude. It is a term that should probably apply much more widely than just fields with "Engineering" in their title.

Going back to Isaac Newton, a common thread is the notion of exploring how someone has expressed an idea. All of the following involve exploration of the expression of an idea, be it out of need, or for fun, desire to learn or many other motivations:

A locksmith buys a house, and out of curiosity first picks then dis-assembles the front door lock.

A musician hears a recording played from sheet music and immediately tries to re-create the sound with whatever instrument is to hand.

An anthropologist hears a rare language and attempts to deduce its meaning.

A software developer is told to use a program that does not run on his computer and tries to learn how the program works in order to make it run.

So what about "Constructive Exploration"? If I had to have a second choice it would be "Complementary Engineering". Clear enough to impart some meaning, vague enough to fit most uses.

Or, maybe "Complementary Engineering" should be the term, and "constructive exploration" be something you can use to explain what complementary engineering really is. As in:

I do complementary engineering for a living. What that involves is constructive exploration to learn the nature of things and then usually some engineering to express the results of that work.


1written to a scientist who was not very tall :-)


  


A New Expression for "Reverse Engineering"? | 362 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 10:29 AM EDT
Does 'constructive exploration' mean anything. Sounds like
oil exploration to me.

I would like 'compatibility engineering'.
But something like 'protocol analysis' might do.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: rsmith on Friday, May 06 2005 @ 10:34 AM EDT
As implied by the Newton quote, no engineer works in a vacuum. We all learn from
and are inspired by earlier work.

So I would simply call it "seeing how things work". or
"discovery".

---
Intellectual Property is an oxymoron.

[ Reply to This | # ]

Algorithm Understanding
Authored by: dscho on Friday, May 06 2005 @ 10:35 AM EDT
Hi,

my favorites (not mutually exclusive):
- Algorithm Understanding
- Protocol Understanding
- Program Flow Understanding
(in the tradition of Image Understanding).

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 10:37 AM EDT
The problem is you don't say which understanding of Reverse Engineering you want
to clarify?
Nor for which meaning you want a new expression....

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 10:38 AM EDT
Why not...."Working knowledge".
ie. "We obtained working knowledge of the system before we implemented a
new scheme."

[ Reply to This | # ]

Giant's Shoulders: Probably off-topic
Authored by: Anonymous on Friday, May 06 2005 @ 10:39 AM EDT
There is a suggestion that Isaac Newton was dissing Robert
Hooke. Robert Hooke was born on the "wrong side of the
tracks" and probably didn't get the air time to which he
was entitled. Newton was very aggressive in promoting his
reputation and often claimed ownership if things to which
he wasn't clearly entitled to do (cf Leibnitz) - actually
this is beginning to sound familiar - and Newton's rings
are more accurately called "Hooke's rings".

On to the point of the posting - Robert Hooke was stooped
through illness and it has been posited the Newton was
dismissing the possibility that he had borrowed, developed
upon or even reverse engineered anything by Hooke.

[ Reply to This | # ]

Why is a separate term necessary?
Authored by: rsmith on Friday, May 06 2005 @ 10:42 AM EDT
I wonder if a separate term is really necessary? It's natural for designers and
engineers to use ideas from the public domain. It is only when ideas are
encumbered by artificial monopolies like patents that this is not allowed.

---
Intellectual Property is an oxymoron.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 10:43 AM EDT
cognitive deconstruction

From dictionary.com (one has to stretch the definition of deconstruction a bit to get it to apply to the computer field - but so what else is new).

Main Entry: cog·ni·tive
Pronunciation: 'käg-n&t-iv
Function: adjective
: of, relating to, or being conscious intellectual activity (as thinking, reasoning, remembering, imagining, or learning words)

deconstruction

n : a philosophical theory of criticism (usually of literature or film) that seeks to expose deep-seated contradictions in a work by delving below its surface meaning

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Ninthwave on Friday, May 06 2005 @ 10:44 AM EDT
Engineering?
Evolving Technology?
Technological Evolution?
Artistic Engineering?


I guess the thing that bugs me is the fact that no one lives in a vacuum, no
idea is free of the ip of others and it should not be expected to be. Oh well
ever onward we go, I just can't wait until this ugly mess is a comic little
blurb in our history.

---
I was, I am, I will be.

[ Reply to This | # ]

the irony, Start something curious
Authored by: Anonymous on Friday, May 06 2005 @ 10:44 AM EDT
The new Microsoft ad Start something curious.
Start discovering ... Start feeding your brain.

Does anyone else find this ironic coming from a company that supports closed
source, patents and DRM.

And isn't Google the choice these days for discovery?

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: joef on Friday, May 06 2005 @ 10:47 AM EDT
"Diagnosis" is a respectable term in many professions: it implies
observation and investigation to get at root causes.

"Synthesis" is likewise a respectable term, although not in as many
working vocabularies, and implies a putting together of components and ideas to
make a new entity.

So how about "diagnostic synthesis" as our new term?

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: PolR on Friday, May 06 2005 @ 10:48 AM EDT
Is the problem really with the connotation of the term? I am not sure about
that.

Could it be that the real problem is there are two many people that do not want
this activity to exist? That these people will put a lot of money an effort to
give this activity a bad name? In these days of continual push for more and more
intellectual property protection, reverse engineering is a primary target. If we
change the name, the new term will over time be given a bad name by the very
same persons for the very same reason. In fact, they will say "Look at
that. This is reverse engineering by another name. They try to fool us but it
won't work."

I would think the correct solution is to make an equally strong and persistent
effort at exposing why reverse engineering is good and should be protected. When
the goods are of quality, they need a selling job, not a paint job.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: heretic on Friday, May 06 2005 @ 10:48 AM EDT
Functional Modelling

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: David on Friday, May 06 2005 @ 10:49 AM EDT
Personally, I like the term "grok" :-)

In trying to fully understand something (how a program operates, an unkown language, a new piece of music, the Law), we are *always* strangers in a strange land.

wikipedia: Grok

---
WARNING: You are logged in to reality as root....

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 10:51 AM EDT
How about "Hacking"?

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 10:53 AM EDT
There is no need for new terminology. It is simply not constructive to focus on
this mote when the edifice is already under attack.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 10:53 AM EDT

Why add confusion to an already confused area - learn from the original
protocols - call things names based on what they do - not on what sounds cool..

If we are attempting to 'reverse engineer' a conversation between devices - then
it's "protocol decoding"

If we are attemping to 'reverse engineer' the mechanisms and activities of a
program - then it's "process decoding".

nice and simple - easy to understand - clear to apply...

Doing both of them ( samba ) involves protocol and process decoding..

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 11:02 AM EDT
I think most hardware engineer's know what RE is. Its some bad apples that have
gave software RE a bad name. Beside's who needs a paralegal to clarify what a
corporate attorney should be doing anyway. Its probably a good article for
those outside of an engineering community looking in.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 11:05 AM EDT

Engineering is the process of turning concepts into implementations.

Reverse engineering simply reverses this process. Taking implementations and deriving the concepts behind them.

What better name can there be? Why can't we continue to call it what it is? Isn't this just another example of that pathetic "politically correct" crowd? "Don't call it what it is - you might offend someone."

rho

1 + 1 = 3; [for sufficiently large values of 1]

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 11:09 AM EDT
Heh- in my opinion, trying to criminalize reverse engineering is innane, and
contrary to common law's definition of a crime; in many cases, there need be no
actus reus; it is often purely a mental activity.

Frankly, I reverse engineer every day- at work, at home- all the time.

Yesterday, I reverse engineered:
The fluidics system for automated cleaning of a particular printer.
The mechanical systems and the attributes of the motors of that same printer.
The effect of a poorly-documented piece of code that I was interfacing with.
Problems within a particular data array on a program I'm not directly working
on (that indirectly affects my work).

In none of these cases did I need to do anything physical (other than simple
cleaning, in the first case) to discover these. In the third and fourth
instance, I had perfect legal access to the entire work; it was merely easier
and more efficient for me to reverse engineer than forward engineer in those
cases.

You breathe. I reverse engineer.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 11:09 AM EDT
Sugestions:

Protocol Mapping
Protocol Cartography
Interface mapping


--
chriseyre2000 not logged in

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 11:10 AM EDT
Call it what it is: system analysis.

A lock is a system of gears, bolts, slides, and keys. A language is a
systematic release of audio and visual components. A program is a series of
instructions that follow rules. All result in a complete, integrated components
or systems.

It also applies to the sciences, economical, and social dynamics we know and use
everyday.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 11:10 AM EDT
I'd suggest either:

functional analysis
functional deconstruction

deconstruction is probably more accurate, but has some
semantic overload...

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Dave Lozier on Friday, May 06 2005 @ 11:11 AM EDT
How about "Extended Engineering"?

We are extending current engineering to cover more ground.


Just a thought. (need more coffee for clearer thought) LoL

---
~Dave

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 11:11 AM EDT
When I was in college, one way of dealing with homework problems -- physics
problems in particular -- where no approach to a solution was immediately
visible but where the correct answer was known was to work backwards from that
answer to produce a chain of reasoning that would solve the problem.

We called it "answer analysis". Seems appropriate here.

[ Reply to This | # ]

What about Functional Analysis
Authored by: Magpie on Friday, May 06 2005 @ 11:12 AM EDT
It seems to me that there is a difference at looking at the inside of something
to see how it works. In software terms, this would be looking at the raw binary
code and using tools to work out exactly what the real form of that binary code
is and does.

But I am not sure that is what normally happens. Another approach is to view
the effects of the code (ie look at the thing as a box from the outside and view
the messages/data/files/whatever that traverse its borders. I think this is
what you could term Functional Analyis (ie Analyse what somethings function is).

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 11:13 AM EDT
A systematic analysis of something to determine the rules that dictate how it
behaves, using experimental, investigative and theoretical modelling.

Isn't that just Science?

Whether it's a transistor radio, a volcano or a hedgehog it's the same thing.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 11:13 AM EDT
I like "black box analysis".

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 11:14 AM EDT
The whole "need" to find a new expression seems to have come from a
desire of entities to extend the protections of their IP beyond normal legal
protections through contract law (either written or shrink-wrap contracts).

I like the anthropologist and musician examples the most; they are more
"accessible" to the public when explaining what we do.

I have done a huge amount of reverse engineering in my career. There have been
times I reverse engineered entire projects where the designer left the company
(frequently not voluntarily) and did not document much of anything. This
actually became a specialty of mine as I was equally comfortable in hardware,
firmware and software.

Other times I reverse engineered old devices where the original company no
longer existed but support was needed for existing equipment (repair, drivers,
etc).

And other times, as a hobbyist, I also reverse engineered surplus military radio
gear from WWII to modify it and get it on the air as a ham.

One of the more unique projects involved the reverse engineering of the BIOS in
a "locked" laptop. This laptop contained key accounting data for a
company that was a competitor of the laptop's manufacturer (peripherals, not the
actual laptop) and it was claimed by them that the unit needed to go back to
Japan to be unlocked, which was clearly unacceptable to my client (the laptop
was locked by the bookeeper who embezzled a good sum of money and went to
Mexico). I had to desolder the surface mount flash memory chip, read it out,
decompile the BIOS, bypass the security mechanisms, write a new, abbreviated,
replacement BIOS which could talk to the hard drive and unlock it, and once
unlocked recover all the data.

I cannot imagine why once you buy a piece of equipment or a program you would
not be allowed to do with it what you want or need. There exist laws protecting
IP and they seem MORE than sufficient (I would argue, way too restrictive) so
why this push to prohibit valid and necessary probing?

Anyhow, no matter what I reverse engineer I can always see improvements that can
be made and I am certainly no utter genius so this proves that the more pairs of
eyes that look at something the more the art can be advanced and the product
improved. This is one of the reasons why open source programs are on a
trajectory to surpass proprietary ones and why companies like Microsoft are
concerned; even a company with their resources does not have the structure or
capability to match an army of user/developers.

[ Reply to This | # ]

Behavior Analysis?
Authored by: KurtVon on Friday, May 06 2005 @ 11:15 AM EDT
Sounds a bit more like a psych. term, but it is accurate.

[ Reply to This | # ]

Functional Analysis
Authored by: Anonymous on Friday, May 06 2005 @ 11:15 AM EDT
operational analysis
interoperability engineering
blackbox engineering

[ Reply to This | # ]

Couple of ideas
Authored by: Sgt_Jake on Friday, May 06 2005 @ 11:17 AM EDT
"exposition processing"
Exposition = An act or example of exposing
Processing = A series of actions, changes, or functions bringing about a result
(Doesn't really roll of the tongue though, does it...)

Contrassemble
Contra = reverse
disassemble / assemble. (hey, you didn't say we couldn't make up words...)

Is there a word that means 'how things work' we can tack an 'ology' onto?

[ Reply to This | # ]

  • Couple of ideas - Authored by: Anonymous on Friday, May 06 2005 @ 10:18 PM EDT
Functional Analysis.
Authored by: Jaywalk on Friday, May 06 2005 @ 11:19 AM EDT
It's not really "reversing" the engineering process since it will never get you back to the source code, which is lost forever upon compiling. (Reminds me of a client who said we needed to "deaggregate" an aggregated column.) What you are doing is analyzing how the final product works.

This isn't new in software. Back in the old days -- before the newfangled stuff like Assembler and compilers -- everything was in binary. Reading the binaries was not a special skill; it just went with the territory.

---
===== Murphy's Law is recursive. =====

[ Reply to This | # ]

Hacking
Authored by: dyfet on Friday, May 06 2005 @ 11:19 AM EDT
The term I might have considered to apply to the situation is "hacking", for it has the right spirit, but, alas, some people have also added negative associations with that term as well...

[ Reply to This | # ]

Alternate Methodology?
Authored by: Anonymous on Friday, May 06 2005 @ 11:20 AM EDT

Brian S.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 11:21 AM EDT
I have always used the term "functional analysis". It seemed to
describe what I was doing fairly accurately and avoided the term "reverse
engineering " for all the the previously mentioned reasons.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 11:21 AM EDT
In my practice, I typically describe these services as:
either "Compositional Analysis" or "Deconstructive
Analysis".

In this work, we are seeking to discern and describe
the essential nature of the object, looking from the
perspective our customer requires.

Deconstructive analysis has the unfortunate connotation
of a process that is facilitated by Dynamite, although
we typically move slower.

It is truly analysis and reportage, not creation per se.
It can lead to engineering and creation as a byproduct, but
that's a different operation.

The term is useful in describing anything from microcode
disassembly to smashing open a clock radio on the driveway
(although we use better tools, these days).

Brad Martin P.E.
Managing Partner, North Shore Circuit Design L.L.P.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: LarryVance on Friday, May 06 2005 @ 11:22 AM EDT
Here are some things that pop up in my mind.

1 INTERFACE DISCOVERY
2 OPERATIONAL DEFINITION
3 SUCCESSIVE ADDITION
4 INTERFACE ENHANCEMENT
5 FUNCTIONAL DISCOVERY
6 FUNCTIONAL FACILITATION


---
NEVER UNDERESTIMATE YOUR INFLUENCE!
Larry Vance

[ Reply to This | # ]

Some candidates
Authored by: Anonymous on Friday, May 06 2005 @ 11:22 AM EDT
  • Gnireenigne (just kidding)
  • Unobfuscation
  • Reconstruction
  • Reconstructi ve Engineering
  • Constructive Redisclosure
  • (Re)constructive Reengineering
  • (Inter)operative Reconstruction

[ Reply to This | # ]

Regenerative analysis
Authored by: skandalfo on Friday, May 06 2005 @ 11:27 AM EDT
Hey! I don't think that any name change is needed. I will personally keep using
"reverse engineering" when I talk/write.

But you may consider "regenerative analysis", because you analyze the
object in order to "recover" some knowledge that was "lost"
in the way that the object followed.

---
How can dreams become true? Is their type boolean?

[ Reply to This | # ]

Good concept, but probably a wasted effort.
Authored by: Anonymous on Friday, May 06 2005 @ 11:27 AM EDT
While I certainly agree with the idea behind developing a new term, and I applaud the efforts being made in that direction, realistically, I believe it will most likely prove to be a futile exercise.

The simple truth is that it's almost impossible for any individual or group to force a change of terminology upon a population from the outside. Accepted jargon usually evolves naturally, and once a term becomes widely accepted among a group, it requires a huge amount of energy to change it to something else, even when the original no longer accurately describes the thing it defines. The only time such an action is likely to succeed is if the body promoting the change has a direct, or at least a very strong, influence on the group, such as in a corporate or military heirarchy; something that's definitely not the case here. So really, trying to create a new term "by committee" like this is highly unlikely to succeed. Tell me, how many cases can you think of where a popularly accepted term was successfully replaced by a different one that was offered up by some concerned group? Few to none, I'm sure, at least compared to the number of attempts that have been made.

I think it would be a better use of resources not to push for a change in terminology itself, but rather make a more concerted effort to make people aware of the misconceptions that do exist, and let the community readjust the vocabulary naturally on its own (either the original will get redefined, or a new term will evolve naturally). It's easier to educate people than to try to force change upon them.

Of course, this is all my own opinion, and I very well could be wrong. If the new proposed term manages to resonate with the community in the right way, it just might take off and be one of the rare exceptions to the rule. In any case, I wish them luck.

---
SCOdenfreude n. Pleasure derived from witnessing the misfortunes of a certain unpopular software company.

m(_ _)m

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 11:28 AM EDT
When I was younger I had a Commodore 64. One of the great things about the 64
was the copy protection game companies would put on the games. It was like the
prize at the end of the Cracker Jack box. After I had finished the game I could
“crack” the copy protection, thus extending the challenge of the game. (And yes
I would give friends copies of the games.)

I learned more about computer programming cracking these games than I did in
college. Second year assembler is nothing after you have cracked a few games at
the machine level. The point is what I did was wrong in that it was stealing.

Now, as an IT professional, I integrate systems; Legacy Cobol into .NET and
Java, proprietary into Open Source. At times I have to reverse engineer other
peoples work. Sometimes the original source is lost (More often that you might
think). Sometimes the vender simply refuses, or more usually just keeps putting
me off until I run out of time.

My question is at what point is reverse engineering wrong? Where is the fine
line between right and wrong? Is motive the determining factor? If I just
cracked the games but did not give copies to my friends is that ok? If I
“crack” the payroll file format so that a company can automate it’s payroll tax
system, is that ok? What if I write a payroll program that outputs the same
format, to replace the orginal program?

Where are the legal and moral lines?

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 11:29 AM EDT
How about "scientific discovery".

The analogies between FOSS and "science" are often made, especially by Linus and esr, but not understood by many. There's no intellectual difference. Scientific discovery is just "reverse engineering" of nature.

Hence reverse engineering is just the methodology of science applied to a computing problem in which the design is nonobvious, either deliberately obfuscated for business/legal reasons or (and this is by far the most common case) just through PBD.

This proposal has the virtue of being (1) actually descriptive and (2) already having "good vibes". It clearly has the drawback of not being a stupid neologism that the stupid will take up as a trendy buzzword.

[ Reply to This | # ]

We do it all the time
Authored by: blang on Friday, May 06 2005 @ 11:29 AM EDT
I work in a software company, with several new and old applications. For every
release, there is usually some re-engineering going on.

A new feature might be needed for a module, but the original code is old and
ugly, hard to maintain, or simply too complex to modify to support the new
feature, or would require too much effort. When that happens, we re-engineer. A
new architecture is designed, which must support the original functionality as
well as the new.

To do this, RE is the perfect tool. The design & specs of the original
software is incomplete, the actual code, even if we have the source code is
unreadable, so instead you write new code to mimic teh behaviour of the old
code. That is certainly reverse engineering.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: haegarth on Friday, May 06 2005 @ 11:29 AM EDT
Why should we define a term for everything from taking something apart to
producing a dump and reading machine code to figure what a program does? If we
stick to the IT business, it might be much easier to find a new expression.
So how about 'code analysis', then?
This seems to fit for IT, be it source or object code, and it wouldn't prevent
Non-IT people from finding some expression of their own for their stuff.


---
MS holds the patent on FUD, and SCO is its licensee....

[ Reply to This | # ]

Best Projects
Authored by: Rob M on Friday, May 06 2005 @ 11:33 AM EDT
Here are the ones that come to mind, covering many of the current meanings of
Reverse Engineering. I am not limiting myself to FLOSS here, but RE projects in
general.

Samba
Open Office
Linux
LAME
Excel
ReactOS
WINE
MPlayer
IBM compatible computers
AMD-64
MS-DOS

[ Reply to This | # ]

How about these...
Authored by: bshowalter on Friday, May 06 2005 @ 11:39 AM EDT
Software Design Reconstruction (or maybe just plain DR)

Software Design Analysis

Programming Scene Investigation (sorry CSI)

[ Reply to This | # ]

"Remix Engineering"?
Authored by: rezende on Friday, May 06 2005 @ 11:40 AM EDT
Lessig uses 'Remix culture' for a broader endeavour, not necessarily technically
focused.

'Remix engineering' would narrow that focus, present the concept with an
expression which is less emotionally charged with IP FUDing, on one hand, and
more complete in its expressiveness (reverse + redo), on the other.

[ Reply to This | # ]

How about "Analytical Engineering"
Authored by: ssavitzky on Friday, May 06 2005 @ 11:41 AM EDT
the objective being to figure out how something works, whether for
interoperability or just intellectual curiosity.

---
The SCO method: open mouth, insert foot, pull trigger.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: ledow on Friday, May 06 2005 @ 11:44 AM EDT
A few suggstions on the name front, not all of which are direct replacements for
Reverse Engineering but are, to me, some of the sub-terms (if you like) that
could be applied to RE in certain circumstances.

Compatibility Assurance
Curiosity-driven Inspection
Technology Discovery
Work-a-like Fabrication
Functional Replication
Product Analysis

[ Reply to This | # ]

How about "Observational Engineering"?
Authored by: Rsnable Person on Friday, May 06 2005 @ 11:45 AM EDT
..

[ Reply to This | # ]

Parallel Engineering
Authored by: Anonymous on Friday, May 06 2005 @ 11:45 AM EDT
Although I known many cases where good came from renaming, my initial reaction
is always that someone has something to hide. In spite of this, I'll give it a
try.

Parallel Engineering sounds good. Parallel conveys that the two (software that
exists, software that is becoming) don't touch, but are heading in the same
direction. Also sounds more politically correct.

The only hitch is that IBM seems to be using the term.

[ Reply to This | # ]

The negative side
Authored by: Anonymous on Friday, May 06 2005 @ 11:45 AM EDT
The negative connotations of Reverse Engineering come from copying a design.
For instance, back in the day, you might design a nifty new graphics card for
the IBM PC. Some Taiwan outfit would buy a card, analyse it sufficiently to
copy your design, and produce and sell clones for 1/4 the price. (If you were
smart, you would have contracted the Taiwan outfit to produce the card in the
first place.)

All the positive connotations result from learning about a product at a deeper
level, so as to expand it and do it better.

Back in the day, patents were intended to encourage people to build a better
mousetrap, by giving the equivalent of copyright for designs of tangible
objects. Now, patents are used to prohibit people from building better
mousetraps - because someone already has the patent on "any device to kill
or entrap pests of the order rodentia".

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 11:46 AM EDT
How about "Functional Philosophy"

Philosophy literally means "love of wisdom" or "seeking
wisdom" and Reverse Engineering is seeking knowledge of the functions
performed by an item or procedure. It's a bit of a stretch to extend it to
"playing by ear" but there already is a phrase for that.

Z.

[ Reply to This | # ]

Forensic Deconstruction?
Authored by: rsteinmetz70112 on Friday, May 06 2005 @ 11:46 AM EDT
The term Forensic Engineering is generally applied to the investigation of
engineering failures but can easily be applied to understand success as well.

Deconstructive Engineering is another possibility, this should be popular in a
post-engineering society.

Combining the two leads to what surely could be a popular choice given the
academic fascination with deconstructing nearly everything and the popular
fascination with all sorts of bodily fluids and bits of evidence on television.

I for one never though Reverse Engineering had a negative connotation, As an
Architect I am engaged in it constantly to try to figure out what people were
thinking when they built something and left no record of the reasons why some
things were done.

In fact reverse merely indicates the direction of the process. The usual
engineering process starts with a problem and moves forward to a solution.
Reverse engineering starts with a solution and works backward to the problem.

The reason there are so many definitions is that there are some many ways to do
it. I note that most of the suggestions listed here are computer or more
specifically software centric and do not apply well outside that realm.

I have noted the tredge of SAMBA fame has on several instances stated that SAMBA
is not reverse engineered, because their technique is to "listen on the
wire". I have always been puzzled by why he makes that distinction. It
always seemed to me to be somewhat artificial.

---
Rsteinmetz

"I could be wrong now, but I don't think so."
Randy Newman - The Title Theme from Monk

[ Reply to This | # ]

What's wrong with "Reverse Engineering"?
Authored by: GLJason on Friday, May 06 2005 @ 11:47 AM EDT
Let's look at the points one at a time...
(1) it implies unethical behavior
I don't understand this one. I personally don't think it implies unethical behavior. When I hear the term, that is not what I think about. Reverse Engineering is NOT unethical. If it makes you think that then it must be because it has been portrayed as such by entities that didn't want it done to their product. If you change the term, those same entities will just villify the new term as well.
(2) it lacks meaning
Engineering is the planning and construction of something. Reverse Engineering is starting with the thing and figuring out the plans that were used to create it. It really is engineering in reverese.
(3) it conjures up inaccurate images from the past.
What images? I can't think of any. If they are inaccurate images and they don't fit, why are they conjured up? Can you give an example?

[ Reply to This | # ]

Leveling the playing field.
Authored by: bsm2003 on Friday, May 06 2005 @ 11:47 AM EDT
.

[ Reply to This | # ]

The negative side
Authored by: CustomDesigned on Friday, May 06 2005 @ 11:47 AM EDT
The negative connotations of Reverse Engineering come from copying a design.
For instance, back in the day, you might design a nifty new graphics card for
the IBM PC. Some Taiwan outfit would buy a card, analyse it sufficiently to
copy your design, and produce and sell clones for 1/4 the price. (If you were
smart, you would have contracted the Taiwan outfit to produce the card in the
first place.)

All the positive connotations result from learning about a product at a deeper
level, so as to expand it and do it better.

Back in the day, patents were intended to encourage people to build a better
mousetrap, by giving the equivalent of copyright for designs of tangible
objects. Now, patents are used to prohibit people from building better
mousetraps - because someone already has the patent on "any device to kill
or entrap pests of the order rodentia".

[ Reply to This | # ]

DMCA and RE a logical fallacy
Authored by: blang on Friday, May 06 2005 @ 11:54 AM EDT
The bit about circumvention of digital protection devices is probably the lamest
piece of legislation in a long time.

Irreglardless of fair use, and other issues where this law flies in the face of
common sense.

1. There are very good reasons to circumvent a digital protection mechanism.
For example, you might be the user of one. You pay big $$ to a company for a
digital protection mechanism to protect your company's digital assets. But how
do you know that it is any good? How do you know it really works, and will
protect your assets? If you are not allowed to test the mechanism by trying to
break in, you will have no piece of mind. You should for QA purposes be allowed
to break in to verify that you got what you paid for and not paud millions of $$
for the digital equivalent of a sticky-note.

2. What is a digital protection mechanism? If it works no better than a sticky
note, does it really qualify as a protection device? I say no. If outside tests
show that the protection mechanism camn be breached, it no longer should
qualify.

3. Making it a crime to attempt to circumevent such a protection mechanism, is
very strange. You have to attempt the circumvention (and break the law) in
order to verify the mechanism [ see 1 ]. Once it has been verified, you don't
need the protection of a special law anymore, because the device cannot be
circumvented.

4. It is still a crime to commit the acts of breaking and entering, invade
privacy, steal trade secrets, violate copyrights, sabotage networks, destroy
digital property, and the host of other activities the cracker communit is
involved with. The DMCA offers no special protection against those activities,
and the part of the law that tries to address those issues, has the logical
fallacy in [1-3]. The law is redundant, labels many perfectly legal activities
as illegal, and does nothng to prevent the real digital crimes.

I really like Clinton, as well as the California democrats, but in this law,
they really got it wrong, or was hoodwinked. I am sure Hollywood interests
played a big part, but I doubt very much that Clinton would have signed this
law, if he had understood the real implications of it.

[ Reply to This | # ]

Has anyone considered using "Engineering"?
Authored by: Matt C on Friday, May 06 2005 @ 11:55 AM EDT
I remember a line I heard on the radio once: "There is no such thing as
reverse discrimination". Let's not talk about that, though.

If you can do engineering/design/scientific work without any pre-existing datum,
a "given", then you my good friend are called "God" in most
languages.

So the process of seeing how an existing thing works and using the information
you discover to make different things is not abnormal and requires no abnormal
term. It's called "engineering"

I'm just thinking aloud here, also playing poker at the same time. Will put more
thought into this later.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 11:58 AM EDT
How about 'Exploratory Function Analysis' ? or 'Function Analysis For
Recreation' ?

[ Reply to This | # ]

Investigative Engineering?
Authored by: kawabago on Friday, May 06 2005 @ 12:02 PM EDT
It doesn't really roll off the tongue very well though.

---
AYNIL

[ Reply to This | # ]

Curiosity, Discovery, Science
Authored by: montana on Friday, May 06 2005 @ 12:10 PM EDT
Why use new words when the old are good enough?

---
Oro Y Plata

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 12:10 PM EDT
This is the same problem that made hackers into bad guys.
Crackers and thiefs are bad. Hackers and reverse engineering
are not bad.

It's that "tiny brain" syndrome that seems to affect
people with loud voices so that they won't confuse the
masses and still spread their biases to support their
own ends.


[ Reply to This | # ]

Don't change it!
Authored by: cjames on Friday, May 06 2005 @ 12:15 PM EDT

Please don't change this time-honored term! First of all, it's a futile effort -- language is one of those things that has unbelievable momentum, and paradoxically is incredibly fluid. We can talk all we like but we're unlikely to have any effect.

More importantly, "reverse engineering" is a very precise, accurate term. Frankly, I don't get what the problem is.

"Engineering" is the process of taking known facts, applying them to a problem, and creating an elegant and cost-effective solution. An engineer is a person who has studied his/her discipline and knows the facts and prior art inside out, so that the best solution can be obtained. We engineers like to say, "An engineer can do what any fool could do for twice the price."

Reverse engineering is simple: It is the process of figuring out what another engineer has done, how that engineer applied his/her knowledge to a problem, and how that engineer's solution addresses all of the elements of the problem.

Reverse engineering is a time-honored and honorable activity. Auto manufacturers regularly buy one another's cars and take them apart. After-market manufacturers' entire livelihood often depends on reverse engineering. Reverse engineering stimulates competition, lowers prices, and speeds development of new features.

Take AMD and Intel: Where would Intel be today if AMD hadn't been nipping at their heels for the last couple of decades? I guarantee we wouldn't be talking about 4 GHz computers. AMD were and are masters of reverse engineering, and we all benefit. (Ironically, it's now Intel who are trying to catch up.)

I think this discussion may arise because in software, many, perhaps most, software authors are no longer engineers in the formal sense of having a software-engineering degree. Not to say they aren't good programmers, many learn software engineering "off the street" or teach themselves and are excellent. But a formal engineering education gives one a sense of discipline, and also gives one a very broad knowledge of computing and a bit of the history of engineering itself. And to the topic of this essay, it gives one an understanding of what the term "engineering" means. When you talk to an engineer about "reverse engineering", s/he will know exactly what you mean.

Craig

[ Reply to This | # ]

It is a kind of science.
Authored by: pscottdv on Friday, May 06 2005 @ 12:21 PM EDT
The term "natural science" refers to the process of observing natural
phenomena, making hypotheses about how it works and then designing experiments
related to the phenomena to test the hypotheses.

"Reverse Engineering" is exactly this process as applied to human
artifacts. I, therefore, respectfully submit the term, "Engineered
Artifact Science".

I add the word "engineered" to distinquish from what archeologists do.

[ Reply to This | # ]

Not Reverse Engineering
Authored by: Mark Grosskopf on Friday, May 06 2005 @ 12:24 PM EDT
I think Reverse Engineering is a legitimate term for some coding/programming
activities, but not all. The realm of "not all" is what the dialog
seems to be about.

I recall the article on the "French Cafe" approach in developing
Samba, as well as the recent BK controversy with Mr Tridgell, that the "not
all" is a stimulus->response activity, which seems to me to be more
about biology and bio-systems. After all, the esteemed Mr Gates once alluded to
the software industry as a living system, or some such comparison.

IMO, one knows what the module/protocol/system does (input domain), knows what
the outputs/results need to be (output domain), but NEED to know what processes
and protocols are executed in between those two domains -- the processing block.
I don't think one is reverse engineering the code so much as analyzing stimulus
-> response of a system/organism. Which is kind of a behavior analysis of a
bio-system.

So how about calling it Software Behavior Analysis?

Although, in the case of some MS programs/protocols, what with the many ills
some of them have, we may wish to call that "Software Psychoanalysis",
and the proprietary nature of the code prevents one from practicing
"Software Psycho-therapy"...in order to fix it, you see...

MG

[ Reply to This | # ]

Reverse Engineering - Gnireenigne? :p
Authored by: skuggi on Friday, May 06 2005 @ 12:25 PM EDT
Gnireenigne is complete reverse of engineering.
Example: "I think we need to gnireenigne this program"
Nahh this is far out! :D

---
-Skuggi.

[ Reply to This | # ]

Technical Archaeology
Authored by: overshoot on Friday, May 06 2005 @ 12:27 PM EDT
Well, that's what we do, isn't it?

We analyze the technological artifacts of the past in order to better understand them. When we dig up a clay pot from Mesopotamia, we analyze that artifact, including figuring out how it was created. If that knowledge proves to be useful, so much the better.

So it is with, for instance, SAMBA. A technological artifact is analyzed to better understand it. If that knowledge proves to be useful, so much the better. The only difference is the distance in time, but there are archaeologists working on late-twentieth-century projects. Archaelogy is defined by study, not by epoch.

NB: I have, in over thirty years as an engineer, too often had to reverse-engineer my own employers' products (think garbage documentation.) Similarly, Microsoft often turns to the Samba team to understand their own network protocols, and for the same reason.

[ Reply to This | # ]

Newspeak
Authored by: greyhat on Friday, May 06 2005 @ 12:31 PM EDT
I wouldn't want to put down the efforts of the people with the difficult
challenge of finding a new term, but I'm a little disappointed that so many
people seem to think it's really the answer. So many times people have tried to
tackle a global misunderstanding of an issue simply by trying to replace a few
words in our language with some clever marketing. All it does is buy a little
time before the new term has *exactly* the same connotation as the old.

Until that happens, people might actually think this new term discribes
something different, but then that creates a sort of implied admission that
"reverse engineering" that has been done for the last several decades
was all wrong compared to the (insert this year's word) we do today.

I'm not all that old or wise, but I don't remember a single issue of global
ignorance that was ever corrected by inventing new terms for things. The answer
has always been to educate people, but every once in a while people try to
bypass that with an easier-looking solution.

Again, I'm not trying to attack anyone's ideas on this, but changing terms has
pretty much always been a bad move. Because both sides of any issue will always
have PR folks, but only one side has the truth. When the people with the truth
on their side start relying on the same PR methods as the ones without it, how
are people going to know the difference?

---
"Obviously Linux owes its heritage to UNIX, but not its code. We would not, nor
will not, make such a claim."
-- Darl McBride to Linux Journal, August 28, 2002

[ Reply to This | # ]

New term will only get maligned as well
Authored by: Anonymous on Friday, May 06 2005 @ 12:37 PM EDT
"Reverse engineering" doesn't imply illegal activity. That's just the
result of a post-DMCA smear campaign. If we start using a new term, the same
thing will happen to that one too.

This effort would be better spent combating the problem, rather than the
symptom.

[ Reply to This | # ]

Functional Dowsing ?
Authored by: mojotoad on Friday, May 06 2005 @ 12:37 PM EDT
or more playfully:

Doodlebugging

;)
Matt

[ Reply to This | # ]

OT Thread Here. Broadcast Flag Burned!
Authored by: Ed L. on Friday, May 06 2005 @ 12:37 PM EDT
Insert Standard Request to Please Make Links Clickable...

Perhaps not completely off-topic, but I couldn't help but notice this article at ArsTechnica announcing the tragic demise of the FCC/MPAA Braodcast Flag effort.

Actually, its no more than a minor setback, but the ruling will require that the kiddies get Congressional Authorization before trying this stunt again.

The link to Linux is here.

---< br>"Microsoft is like having a car where the bonnet is welded shut" (Mohammad Sephery-Rad, Iran IT Minister)

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: feep on Friday, May 06 2005 @ 12:40 PM EDT
Reconstructive Research

[ Reply to This | # ]

How about "Design Discovery"
Authored by: Anonymous on Friday, May 06 2005 @ 12:45 PM EDT
Coming from a legal background I like the term discovery. The original design is
what you are trying to discover. Both words are simple and easy to understand
and the meaning seems obvious to me and could be applied to pretty much any
discipline, I think.

Adrian.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 12:50 PM EDT
I believe the problem is that the term "reverse engineering"
encompases the whole process. There really are two distinct processes, the
_First_ is the "investigation", "detection", or
"analysis" of the concept, idea, protocol, hardware, software, or
whatever the case may be. The _Second_ process is the "construction"
or "building" of the artifact. (I think the term
"engineering" is overused and somewhat meaningless - as in domestic
engineer.)

So if you restrict the name to the analysis process, there may be less
confusion. The construction or implementation processes already have numerous
monikers for them depending on the specifics.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: jvx on Friday, May 06 2005 @ 12:53 PM EDT
RE would be tough to change meaningfully. For a friendlier public term, I'd use
"Reverse Analysis" if, to some, Reverse Engineering implies
manipulating something that already exists to bypass any restrictions. An
application cracker reverse engineers an application so they wont need a
license. Someone who wants to create a completely new application using an
existing one as a model does comprehensive analysis - not just a focused binary
smash and grab.

-- the mind is it's own beautiful prisoner.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 12:55 PM EDT
How about "Functional Modeling"?

[ Reply to This | # ]

OT: Bill giving CAR owners access to firmware source
Authored by: vadim on Friday, May 06 2005 @ 01:00 PM EDT
Here is an articleabout this bill...

I wonder why computer users should have less rights than car owners....

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 01:00 PM EDT
Historical Education Learning Process

[ Reply to This | # ]

"Functional Replication" ?? (n/t)
Authored by: Anonymous on Friday, May 06 2005 @ 01:02 PM EDT

[ Reply to This | # ]

"Reverse Engineering"?
Authored by: archivist on Friday, May 06 2005 @ 01:03 PM EDT
As one who has done it.

I have done 2 major projects both for the same company. The first was to see if a character set could be improved in a printer (the addition of descenders), this developed into adding a graphics mode and increasing resolution thus making the printer into a saleable product (we took 50% of the world output of the printer and sold mainly to the UK). After getting to that stage sourcecode was only then obtained from the manufacturer. While we dissassembled their code and reverse engineered it, it was not released and when out in the printer it came from, with some extra code from us. The manufacturer could only gain from our activities.

The second project was to dissassemble and reverse engineer code from another supplier who had sold us the complete copyright and source to a package and later started selling it again under another name, when we found it to be from the same code base, we sued and won.

I think the term is a reasonable description of the activity. In my view some of the recent attempts to make laws controlling this sort of activity are unjust for a number of reasons.

Adding functionality to a product requires full understanding of the product.

Interoperating with a product may requre reverse engineering a. if there are undocumented features or b. If the original mfr has gone out of business and there is no documentation.

To repair or replace some system that has been made especially for the cust and the supplier is no longer around.

[ Reply to This | # ]

Corrections here
Authored by: qu1j0t3 on Friday, May 06 2005 @ 01:06 PM EDT
To start the ball rolling: Felten

[ Reply to This | # ]

Gravity Machine
Authored by: Nick_UK on Friday, May 06 2005 @ 01:09 PM EDT
Remember those great 'Pan book of horror stories' you used
to see in the 60's and 70's? Each book had around 30 or
so short horror stories, just long enough to read a whole
story at bedtime.

One relevant story for this thread is where the USA called
in their top scientists to a secret meeting with the
military. At the meeting, they was show a 'stolen secret'
film taken from the USSR of an invention of a gravity
machine. The film showed a Russian team flying this
contraption.

The USA military wanted one also (due to cold war), and
the group was given 6 months to reproduce what the
Russians had done.

They did, of course reproduce it.

Then the punchline of the story. The USA military
confessed the film was a hoax, and they deliberately set
it all up to goad the scientists into producing what they
wanted.

Nick

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Arthur Frayn on Friday, May 06 2005 @ 01:13 PM EDT
Hmmm. What comes immediately to mind is "Empirical Induction." But the whole effort is really obfuscation, a gloss, and looking for euphemisms. Which is in the old established tradition of calling a spade an entrenching tool.

Why don't we just say "Learning How It Was Done"? The use of plain language means we can throw the presumption of wrongdoing back, saying: "The DMCA criminalizes many instances of Learning How It Was Done."

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: RFD on Friday, May 06 2005 @ 01:17 PM EDT
As I understand the term “reverse engineering,” it basically means something like, given the solution, find the problem, or, given the answer, find the question. Words and expressions, however, often take on a life of their own and come to mean different things in different contexts.

An archeologist might uncover an object and, through “reverse engineering” try to discern its use or purpose. An economist might study a society and through “reverse engineering” try to discern its “utility function.” Samuel Johnson, in writing his first dictionary, studied how words had been used historically, and through “reverse engineering” deduced their meaning or meanings. School children are often given the opposite assignment to “reverse engineer” a dictionary entry--given a vocabulary word, look it up in a dictionary and use it in a sentence. Sometimes the results are hilarious.

Even within the limited field of computer software, I suspect the term is used with multiple meanings. If you take the approach that definitions are “descriptive” rather than “proscriptive,” then I think the task at hand becomes clearer--Given a particular sense in which the word “reverse engineering” is used, is there some other term or phrase that will more clearly convey to the reader the intended meaning. Perhaps what is needed is a thesaurus.

---
Eschew obfuscation.

[ Reply to This | # ]

Same problem as "Hacker" and "Hacking"...
Authored by: Dr.Dubious DDQ on Friday, May 06 2005 @ 01:23 PM EDT

I think trying to introduce a "replacement" term is likely to be about as successful as getting people to say "cracker" instead of "hacker" has been...

Instead, I think the only way to solve the problem is to use the term correctly, publically, much more visibly. In other words, the reason "reverse engineering" sounds like a bad thing to some people right now is the same reason "hacker" sounds like a bad thing - the majority of cases where the person hears or reads the term it is associated with some sort of infringement or criminal activity.

If instead the term starts appearing in positive (or at least neutral and non-criminal/infringing) contexts much more often, people will once again begin to think of the terms in their proper contexts.

Or, put simply, we need a lot more eloquent "nerds" communicating with the public...

[ Reply to This | # ]

"Deductive Engineering", perhaps?
Authored by: Balance on Friday, May 06 2005 @ 01:24 PM EDT
Or "deductive modeling"?

Like some others who have posted, I don't know that trying to change the term
will accomplish anything. Still, if we were to try, some element of the new term
should reflect the thought processes involved. I fear "analysis" is
somewhat overused, and "deductive" does not suggest (to my mind, at
least) disassembly.

[ Reply to This | # ]

Functional Equivalence Analysis
Authored by: Anonymous on Friday, May 06 2005 @ 01:27 PM EDT
While reverse engineering may have some negative overtones a new term is not
really needed. But if it were the term functional equivalence analysis would
probably suffice for describing reverse engineeering of both hardware and
software functionality.

[ Reply to This | # ]

Normal human activity
Authored by: cricketjeff on Friday, May 06 2005 @ 01:27 PM EDT
would seem to cover it...

[ Reply to This | # ]

Progress - useful words tainted by agendas and media
Authored by: Anonymous on Friday, May 06 2005 @ 01:28 PM EDT
This is progress alright. Just to use another example, the words hacker and
hacking used to have a positive, if not cryptic to people not "in the
know",
meaning. Until "progress" lumped crackers and other less than ideal
behaviors and activities under the hacker umbrella.

Now the same is going with Reverse Engineering.

Personally, I do not think a new phrase or word will solve the problem. It
might hide it for a while, but it will never solve the problem fully. Thinking
it
will is being naive. Also, reverse engineering is not just a term to describe a

single step, it's a process. Especially when you go to the troulbe of creating
two separate teams, joined only by a specifications document.

With that said, some other terms that come to mind are:
Investigative Engineering (IE)
Incremental Engineering
Compatibility Engineering
Compatibility Verification
Compatibility Research, Design, and Engineering

The use of Compatibility in the new term, especially as it relates to reverse
engineering a protocol, shows the goal of compatibility as part of the effort.
And, since compatibility is still (last time I checked) allowed as a reason for

reverse engineering (even in the DMCA I think, but am not sure), perhaps the
new term should include that word.

Ok, enough of those. I still prefer the term reverse engineering. Though, I do
understand the potential political gains, especially with the seemingly
uneducated, that a new term could provide. [gsy]

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: philc on Friday, May 06 2005 @ 01:30 PM EDT
Reverse engineering has been a common practice in companies. The engineers
develop a set of skills in analyzing a product.

Reverse engineering is reversing the process of engineering. Engineering starts
with an idea and works its way through a collection of process steps to a
product. Reverse engineering starts with the product and works its way back
toward the original ideas. You end up trying to understand what went on at each
step. You work back until you get the information you need to solve your
problem.

When integrating components into a product you have to work out interoperability
problems. Often the vendor documentation is incomplete and inaccurate and the
vendor is not responsive to questions. When you are creating components you
often have to reverse engineer the target system to understand how to
interoperate with it. Another reason is to find out why a new version of a
component doesn't work.

Here at Groklaw there has been a lot of discussion about engineering
documentation and engineering notes from hundreds of IBM engineers. There is an
underlying assumption that they are valuable or even useful. Having never worked
for IBM, I don't know how IBM approaches engineering docs and notes. In the
"real world" of engineering in my experience with many companies over
3 decades, written documentation is almost always lacking. There is little time
to write it at the beginning (which isn't all that bad since you really don't
know enough about the problem yet), and no time to update it. What you end up
building vaguely resembles the descriptions in the documentation. Engineering
notes are usually taken in context with the situation. Talk with someone, go to
a meeting and jot down key points. They include thoughts on how to change
something or people to talk to. There is no discussion of the underlying
problem. Going back to them later is a complete waste of time.

Sample notes, from my current notebook (ask around to see if others are better).
We havn't looked at the design docs here in 6 months.

4/5
srp_port_remove_iocdev_int
mm_verbose 2048 +4096 + .... 6144,14366
testagent -log tst015
active page stealing asn_flush_smp vp_id(smp_process_id())
2349
pte_verify do_page_fault
crash extend vfecmds.so
see ed tomorrow 10

This all ment something whe I wrote it. It helped to solve the problem at hand.
Go ahead, ask me about this next year.

[ Reply to This | # ]

"Functional analysis"
Authored by: oneandoneis2 on Friday, May 06 2005 @ 01:30 PM EDT
It was the first thing that came to mind: A fancy way of saying "Take it
apart to see how it works"

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 01:34 PM EDT
How about these:

System Reconstruction
Model Discovery

or

System Model Discovery and Reconstuction

John from Montreal
PS. This is my first Groklaw post. Great Site

[ Reply to This | # ]

I like...
Authored by: frk3 on Friday, May 06 2005 @ 01:37 PM EDT

Digilogical Engineering.

Kind of a play off of "Biological Engineering".

[ Reply to This | # ]

Modeling & Engineering
Authored by: Tyro on Friday, May 06 2005 @ 01:38 PM EDT
Steps:
First construct a model of what you want to do
Second build a device to implement the model

Scrap the "reverse-" prefix. It's engineering and it's modeling.

Reverse engineering does imply disassembly of a device into components, and that
can be useful in constructing the model, but it's not a necessary ingredient.
(Having "reverse-engineered" code, I can tell you for certain that
having the source available isn't always a help. C can be as much a write-only
language as Forth!)

[ Reply to This | # ]

And now, for something completely different
Authored by: Oloryn on Friday, May 06 2005 @ 01:48 PM EDT

I find myself coming up with terms more like "Practical Self-Education". It's just that the self-education happens to be concerned with someone else's invention. I'm not quite sure how to tweak PSE to indicate that part.

What we're trying to avoid is the implication that we are learning forbidden information - and failing to avoid that implication tends to validate the concept of 'forbidden information' itself. Or at least extend it beyond the realm of government-declared 'classified information'. (Q: If we allow corporations to essentially declare certain information as the equivalent of 'classified' and give that declaration legal weight, are we essentially setting up little unelected governments and surrendering some of our sovereignty to them?).

[ Reply to This | # ]

"INTERFACE ANALYSIS"
Authored by: DMF on Friday, May 06 2005 @ 01:58 PM EDT
"INTERFACE ANALYSIS" or possibly "public interface
anaylsis", although I think that's too limiting and awkward.

The phrase seems to capture that the purpose of the activity is to gain
knowledge, suggests that the knowledge is primarily for interoperability, and
implies nothing illegal. It does leave out internal disassembly, except insofar
as needed to describe the behavior of the interface, and that bothers me. (IMO
*all* functional investigation is legitimate.) But "reverse
engineering" was coined to cover a whole spectrum of activities, and if
you're going to drop coverage of some (the allegedly illegitimate ones), the new
term has to cover a subset of the old term.

[ Reply to This | # ]

"Functionality Documentation"
Authored by: Anonymous on Friday, May 06 2005 @ 02:04 PM EDT
As in "We first compiled a complete set of Functionality Documentation on
our rival's box, then set about creating a compatible implementation of our
own."

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 02:20 PM EDT
There are three good reasons to rethink the term reverse engineering: (1) it implies unethical behavior, (2) it lacks meaning, and (3) it conjures up inaccurate images from the past. While the problem is easy to define, the solution is not. The challenge lies in defining a new term. . . .

I disagree with this. "Reverse engineering" means exactly what it means. I don't know how to define it, but I know what it means. Choosing a more-politically-correct phrase to describe it is pointless.

Instead we need to educate people, to remove the stigma. Teach them about the positive uses of reverse engineering, and about what is actually involved. Explain to them the benefits (better interoperability, more competition in the market, spreading key technical knowledge which certain monopolists would rather keep to themselves, discovery of security vulnerabilities, etc).

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: rp$eeley on Friday, May 06 2005 @ 02:20 PM EDT
Methods Discovery (MD)
gets my vote. Seems to convey the activity without the connotations raised by
"reverse engineering".

[ Reply to This | # ]

These people are so wrong.
Authored by: Anonymous on Friday, May 06 2005 @ 02:28 PM EDT
They make 3 basic claims about the phrase "reverse engineering"

(1) it implies unethical behavior,

(2) it lacks meaning, and

(3) it conjures up inaccurate images from the past.

They are wrong on every point.

The first point, no, it does not imply unethical behavior. Of course the
peoples product you are reversing are _always_ going to claim that it is
unethical no matter what you call it, so whatever the name you are going to have
people claiming that what you are doing is wrong.

The second point is wrong as well, you are taking an engineering effort on
someone elses part and going back to a specification from the product. It is
exactly precisely what you are doing, in fact, you could not be more exact in a
phrase describing what people are doing in this regard.

The third point, is that ignorant people who believe the first 2 points are
always going to have bizzare inaccurate images from the past.

No matter what you call it, some below average intelligence person is going to
just switch over their prejudices to the new phrase.

The same thing happens with the word "hacker." Most ignorant people
assume that this is a bad term, that it involves breaking security systems for
evil reasons. In fact when most people say "hacker" they meant
"cracker." All people who call themselves hackers know that hacking
is a good activity not at all related to "cracking", except that
cracking could be hacking too, if done for the good of humanity.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: cananian on Friday, May 06 2005 @ 02:35 PM EDT
No one seems to be thinking of the verb form of all these nice new phrases. How
did you determine that network protocol? Oh, I "compatibility
engineered" it? I "cognitively de/reconstructed" it? I
"constructively explored" it? I "discovery engineered" it?
I "functionally dowsed" it? At least "I doodlebugged it"
flows and isn't a waste of breath. "I reconstructively researched it"
makes some sense, but why not just say, "I reconstructed it" or
"I researched it"?

[ Reply to This | # ]

Process Modelling (ProMo? ProMod? PM?)
Authored by: SilverWave on Friday, May 06 2005 @ 02:54 PM EDT


I propose "Process Modelling" - ProMo (ProMod? PM?)

---
"They [each] put in one hour of work,
but because they share the end results
they get nine hours... for free"

Firstmonday 98 interview with Linus Torvalds

[ Reply to This | # ]

Reverse Engineering = Functional Redesign (N/T)
Authored by: Anonymous on Friday, May 06 2005 @ 02:59 PM EDT
.

kimmow

[ Reply to This | # ]

whiteboxing
Authored by: Anonymous on Friday, May 06 2005 @ 03:04 PM EDT
Obvious.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: blacklight on Friday, May 06 2005 @ 03:25 PM EDT
I like the word "reverse enginering", which is fully and accurately
descriptive of the activity. There is of course legitimate and illegitimate
reverse engineering, which is what the modifiers "legitimate" and
"illegitimate" are for: to modify the meaning of a phrase.

[ Reply to This | # ]

An analysis of the question
Authored by: Nick Bridge on Friday, May 06 2005 @ 03:28 PM EDT
Some have suggested terms. Some have suggested that the existing term
"reverse engineering" isn't negative, and is fine. Some have said
that whatever term is chosen, it'll become the target of FUDsters.

I believe the real difficulty lies in grouping a number of remarkably different
activities under one term. Although this is possible and we all think we know
what it means in context, it is not precise and leads to misunderstanding.

The fact that the term "reverse engineering" is now the target of many
make the matter worse - it's an easy target because it's imprecise.

I suggest the way out of the mess is to propose a precise term for each kind of
activity that currently comes under this definition.

Some examples of activity (not suggestions of terminology - I'll leave that to
the wordsters):

Disassembling - taking machine code, and outputting equivalent "Assembly
language"

Decompiling - taking a binary and regenerating more or less equivalent
high-level language. Languages like Java can result in very similar code.

Passive protocol analysis - taking a dump of a communications connection (eg
over a network - or through an internal interface) and - with the help of tools
- analysing it by hand to document the protocol.

Active protocol analysis - Using a tool (a program) to send possible commands to
another program (a server/service, api etc) to determine what it does, and how
it responds.

Possibly more coming (ran out of time!)

[ Reply to This | # ]

Learning through Dissection
Authored by: Anonymous on Friday, May 06 2005 @ 03:36 PM EDT
Learning through Dissection

Dissection Dis*sec"tion, n. [Cf. F. dissection.]
2. Fig.: The act of separating or dividing for the purpose of critical
examination.
[1913 Webster]

[ Reply to This | # ]

is this truly a worthy endeavor?
Authored by: jig on Friday, May 06 2005 @ 03:57 PM EDT
give me a break, it's all double speak coupled with the type of sensitivity
training that won't allow tag to be played in school playgrounds anymore.

reverse engineering: it works. it DOES mean something. if someone else want's to
try to paint it with criminal stripes, then educate THEM, don't f-up the meaning
of the word or the work of past masters who reveled in their reverse work.

trying to define a new name is such a pansy response.. grrrr.

[ Reply to This | # ]

How about "science"?
Authored by: Jude on Friday, May 06 2005 @ 04:02 PM EDT
After all, science just another name for reverse-engineering the universe.

[ Reply to This | # ]

Shoulder mapping...
Authored by: Anonymous on Friday, May 06 2005 @ 04:14 PM EDT
so we can stand on them.


Also for consideration:

shoulder defining
shoulder reconstructing
shoulder duplicating
etc.

DanB

[ Reply to This | # ]

Stop this silliness
Authored by: Anonymous on Friday, May 06 2005 @ 04:16 PM EDT
There are three good reasons to rethink the term reverse engineering: (1) it implies unethical behavior

Stop right there. It doesn't imply unethical behavior to any sensible person.

If you start making up new expressions just because silly people associate the old one with something bad, you never stop. Call it what it is; don't forever make up euphemisms. Do you need to be reminded of the ridiculous series of names for the place you go to pee? The first "delicate" name was Lavatory. Then that developed crude associations so it became Toilet (thereby rendering old books puzzling, because 'toilet' used to mean just a place with a mirror where one combed one's hair, etc.) Then that became too direct for the silly crowd, so it became Restroom in most of the USA. Or Bathroom, equally ludicrous. Or even 'Comfort station', a phrase which reduces non-American speakers of English to helpless mirth.

Reverse Engineering is Reverse Engineering. There is not, and never has been, anything remotely unethical about reverse engineering. This needs to be explained to any clot who thinks otherwise. You do not achieve anything by changing the name of a thing simply because foolish people imagine something "wrong" with it. It's like blackmail, it never ends once you start to give in to it.

[ Reply to This | # ]

A cautionary note
Authored by: RPN on Friday, May 06 2005 @ 04:23 PM EDT
Reading through all the posts to this point it seems to me that a lot of people
are missing an important point. Reverse engineering is carried out by just about
everyone in every profession in some manner and a lot of the suggestions to me
are far to specific to programming and/or hardware reverse engineering. I am not
a programmer and engineer, I train people to use IT sensibly - mostly unemployed
people, and when I think about it I reverse engineer quite a lot. In fact just
today to figure out how to fill in a typically insane peice of government
paperwork that was new to me I got hold of a form already filled in and used
that as a model. I didn't copy a single phrase but I did learn how to complete
it in a manner that wouldn't have some auditor in the future flinging it back at
me saying it wasn't done right.

This is a big reason I personally don't see a reason to change from 'reverse
engineering'. It is a genuinely generic term applicable in any environment and
even as a non engineer I do understand its meaning very clearly. I really liked
the description someone above gave of 'looking at an answer to find the
question and create a different solution that produces the same answer from the
same question'. Thought that doesn't quite cover every use of reverse
engineering across life.

I have to agree with a number of posters above that the problem to me seems to
be not the words and the accuracy of the description but the connotations that
have come to be applied to the term. I'm very far from sure that changing the
term really answers the problem of wilful misinterpretation which is at least
part of the problem with 'reverse engineering'. And I'm an old fogey whose
responce to some of this PC and related need for change is a weary sigh. I've
just had a letter from someone on a charity board who signs off as 'chair' and I
so long to answer 'can I sit on you then since you are a chair?' I can live with
chairperson, chairwoman, chairman but chair? Give me a break.

Richard.

[ Reply to This | # ]

Or - how about a meme?
Authored by: Nick Bridge on Friday, May 06 2005 @ 04:25 PM EDT
First law of pediatric pedagogy:
Infants Learn Through Reverse Engineering

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 04:34 PM EDT
Hmmmm..... Reverse engineering is done in order to understand something so that
you can do something similar in a new way. If you reverse engineer the BIOS on
a computer the aim is not to copy the thing, but to find out how the inputs and
outputs are defined and what is required of the various calls supported.

Seems to me that the word analyze could be used in it's various forms to mean
the same as most uses of 'reverse engineering'.

How about instead of calling it Reverse enginnering we call it Analysis. And we
don't reverse engineer a device or package, we analyze it. The object being to
understand the thing in order to produce something similar.

It seems simple enough to me. Drop the redundant verbiage and go with a simple
word. Reverse engineering is one of those phrases that came from the generation
of the "paradigm shift" where we could leverage our reverse
engineering to produce dynamic products with synergistic interface
relationships.

~highlander
(IANAL)

[ Reply to This | # ]

parallel template engineering ? or
Authored by: Anonymous on Friday, May 06 2005 @ 04:35 PM EDT
non-derivative parallel template engineering
developmental re-engineering
re-developmental engineering

If you think these are bad, I could very easily come up with worse.

[ Reply to This | # ]

Use a Description Appropriate for the Activity
Authored by: DrHow on Friday, May 06 2005 @ 04:38 PM EDT
I doubt that any new phrase for the concept can be successfully imposed on the
world. I think "reverse engineering" is just too well established.

OTOH, those who appreciate the problem (whether they regard it as real or merely
perceived) can avoid using the offending phrase. However, there is no need for
all such persons to use the same phrase. This is actually an advantage because
it allows them to describe their activity in the most relevant terms. It strikes
me that figuring out what external protocols an existing software system uses in
order to interoperate with it is an entirely different kind of activity from a
company trying to figure out how some competitor made some physical device work
so that the company can offer a similar product. We do not need a single phrase
for both activities (or any others). Just say what makes sense.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 04:51 PM EDT
I would like to see de-compiling or reverse compilation.

[ Reply to This | # ]

Other end of the spectrum
Authored by: Anonymous on Friday, May 06 2005 @ 04:55 PM EDT
I bet we can agree that reverse engineering as was done with the TU-4 should be (legally) discouraged. The difficult question is where to draw the line-

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: grw on Friday, May 06 2005 @ 04:58 PM EDT
It seems to me that the problem is not with the term, but with the meaning
attached to it by particular people, particularly laypeople who may be a juror
or judge. eg. Person A says "I smoked some good dope today". Person
B says "Cool, can I get some?" Person C says "You criminal, I am
calling the cops!" The same action is viewed differently by different
people according to their understanding and values. Likewise, to an engineer,
"reverse engineering" has a particular positive meaning which needs no
explanation, while a layperson, particularly one who finds himself on a jury,
may need a more detailed explanation, lest he be convinced by an attorney that
it has a different, undesirable meaning. A new equally obscure (to a layperson)
term, it seems to me, won't make that situation any easier.

[ Reply to This | # ]

Pseudo-scientific word?
Authored by: Nonad on Friday, May 06 2005 @ 05:15 PM EDT
Since the suffix "-logy" implies 'the study of" might not
whatever the appropriate classical Greek word for "works" or
"innards" or "substance" or something similar followed by
logy be an appropriate?

(Sorry, but I do not know the proper root word - "...it's all Greek to
me.")

Of course for many of us, "thaumatology" might be the most appropriate
word... :o)

[ Reply to This | # ]

don't Engineer, Analyse
Authored by: akStan on Friday, May 06 2005 @ 05:18 PM EDT
analysis ML., fr Gr. analysis, fr analyein to unloose, to resolve ...
1. Separation of anything into constituent parts or elements; also an
examinationof anything to distinguish its component parts or elements separately
or in their relation to the whole.

The word "engineer" is too much misused to be helpful. I don't have a
long-billed, striped cap and overalls, and I don't ring the bell, but I do pay a
Professional Engineering registration fee every so often.

About five hours ago an anonymous poster suggested "functional
analysis". Those two words characterize the activity. They are easy to
defend. They don't carry unwanted baggage.

Sometimes we get our story out better by describing what we do than by appealing
to a title.

just another
Professional Engineer in Private Practice.




[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 05:30 PM EDT
I tend to agree with many previous posters that we do not need a new term for
the process. Instead we need to educate those who do not seem to understand it.
However, just to throw my 2 cents in the wishing well, I submit either:

Algorithm Recovery
- or -
Process Retrieval

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: heretic on Friday, May 06 2005 @ 05:34 PM EDT

What is the purpose of reverse engineering? In software engineering it is to recreate functionally a piece of software without resorting to decompilation tools and other "dubious" pactices, by observing how the software reacts to input of various kinds. The end product is a functional model, of the original software, created by the reverse engineer. He can then say, quite thruthfully, that he did not take the original piece of code apart, but rather that he worked on a functional or conceptual model of the software.

I believe that anything that alludes to "taking apart" gives the wrong connotation. Eg If it seems or sound like the reverse engineer looked "inside" the code to find the "secret" parts of the code then I believe people feel this is bad and slightly dubious.

just my $.02

heretic

[ Reply to This | # ]

Weasel words?
Authored by: ozbird on Friday, May 06 2005 @ 05:41 PM EDT
That was my first thought - changing the term doesn't change the underlying
activity.

"Data capture" i.e. data recording = "piracy!"
"Digital duplication" = "PIRACY!"
"Reverse modeling" - sounds too close to reverse engineering for
people to understand the intended distinction.

Instead of focusing on the _what_ of reverse engineering, look at the _why_.
To use the current buzzword, what you are really doing is:
* Interoperability analysis
* Interoperability engineering
* Interoperability transfer

The last two abbreviate to IE and IT respectively, which makes life harder for
the critics: "Huh? IT is bad?" ;-)

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 05:57 PM EDT
<target> mapping
Observing the target's input and output
<target> disection
Observing the target's internal processing logic
Observing the information contained in an encrypted channel

API mapping
The act of determining the programming interface of a system by means of
brute-force submission of data to the API layer. The observer then records the
changes to the system. This technique is used when there is an unpublished or
missing pulic record of the API exposed by an application.

Protocol mapping
The act of observing unencrypted data flowing between two participating programs
using any sort of inter-process communications mechanism.

Secure protocol disection
The act of observing and defeating the encryption of encrypted data flowing
between two participating programs using any sort of inter-process
communications mechanism.

File format mapping
The act of analyzing a file to determine the data, format, and structure of the
data contained in it. There is no observation of the original program writing
the output. The author rebuilds the structure, format, and data only from the
file itself, not from the process of observing the file being created.

File format disection
The act of executing a computer program with code execution traced and
summarized in order to understand the format that data saved as.

Code trace disection
The act of executing a computer program with code execution traced and
summarized in order to understand the function, algorithms, structure and
process in which the program runs.

Code security disection
The act of executing a computer program with code execution traced and
summarized in order to detect security flaws, and the algorithms used in the
security product. This form of RE can also be used to eavesdrop on a secured
channel by penetrating the code logic of one of the secure channel's
participants.

Circuit logic mapping
The act of 'tapping' wires on electronic devices in order to figure out the
protocol or function of the electronic componets attached to the wires.

* Encryption in this post meaning any computational or trade secret used to
obscure any part of a conversation between two parties.

* Tapping is the act of attaching an electricly conductive material that probes
the voltage/current running over a wire for changes in those levels.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 06:45 PM EDT
Reverse Documentation. - this is precisely what the term means.

[ Reply to This | # ]

NT: Compatability Modeling
Authored by: Anonymous on Friday, May 06 2005 @ 07:07 PM EDT
N/T

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: urzumph on Friday, May 06 2005 @ 07:50 PM EDT
Perhaps reverse engineering is not engineering at all?
From http://en.wikipedia.org/wiki/Engineering :
Engineering is concerned with the design of a solution to a practical problem. A
scientist may ask "why?" and proceed to research the answer to the
question. By contrast, engineers want to know how to solve a problem, and how to
implement that solution.

From http://en.wikipedia.org/wiki/Scientific_method :
...a repeating cycle of observation, hypothesis, experimentation, and the need
for independent verification.

As far as I can tell, the first part, figguring out how it works is science, the
second part, building something that works similarly afterwards is pure
engineering.

So perhaps we should call it scientific engineering? engineering science?
analytical engineering?

[ Reply to This | # ]

A language devide
Authored by: Ben Hildred on Friday, May 06 2005 @ 08:27 PM EDT
I think we lost something when law cases quit being heard in latin, becouse we
now think laws are written in the same language we speak.

---
It's not chicken soup for the soul; it's more like peanut butter for the mind.
-- The Famous Brett Watson

[ Reply to This | # ]

PJ's article from last year.....
Authored by: NastyGuns on Friday, May 06 2005 @ 08:35 PM EDT

PJ, don't forget about the previous article you did on Reverse Engineering.

---
NastyGuns,
"If I'm not here, I've gone out to find myself. If I return before I get back, please keep me here." Unknown.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 08:49 PM EDT
Deconstructive Analysis

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 08:55 PM EDT
Guys, guys, guys.... (used in the best-intentioned engineering sense - one that
includes both sexes!)

It is NOT always a protocol.

It is NOT always a paradigm.

It is NOt always an algorithm.

So any terms that utilize such notion-specific terms are immediately void. Sorry
'bout your luck.

Reverse Engineering is not really all that bad. The author himself does a much
more poorer job with each of his alternatives!

Deconstructive Analysis is an acceptable, but not neccesarily better,
alternative, if one is really needed.

All IMHO, of course!

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 09:20 PM EDT
I think you already created the term in your article:

Parallel Performance Software = PPS.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: sbungay on Friday, May 06 2005 @ 09:43 PM EDT
Reverse engineering is a fine term. It defines exactly what it is you are doing.
You have the end result and you put forth the effort to engineer/create those
results, and perhaps improve on them. What reverse engineering is NOT is copying
someone elses work. It has to be stressed that copying is NOT engineering, and I
think perhaps this is what it is being construed as. So, let reverse engineering
stand as it is, make sure to differentiate it from the mere duplication of
anothers work.
I remember I reverse engineered Supertrek from the old HP 3000 contributed
library. I knew the command structure of the game (I played it enough in the
70's), the way it behaved, and how it presented information to the user. I used
no source code from the original (which I understand was written in FORTRAN),
and I reverse engineered it in Commodore 128 BASIC 7.0. Then compiled it using
BASIC 128. That was almost 20 years ago! A small feat perhaps, but that game was
created based on the results of a piece of software written by someone eles.
There was no reference to the original's internal structure or source code. I
had to create it all, but when you played it it felt like the original, except
of course it has (yes I still have a copy ... somewhere around here) colour
ASCII.. er... PETSCII, and a dollop of sound.

---
Programmer: A red eyed mumbling mamal that converses with inanimate objects.

IANAL IAAP

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Friday, May 06 2005 @ 09:44 PM EDT
How about,
Software/hardware:
Deductive analysis,
Deductive modelling,
Deductive reconstruction.
or,
Software/hardware:
Forensic analysis,
Forensic modelling,
Forensic reconstruction.

Cheers
Ivan Anderson

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Tanka Tennen on Friday, May 06 2005 @ 10:45 PM EDT
I offer up "black box engineering." Like "black box
testing," we can't open the box, but we can examine its inputs and outputs,
its methods and events.

Now, "black box" testers use this information to verify and validate
functionality. Analogously, "black box" engineers use this
information to duplicate functionality.

And as an ADDED BONUS, it's BLACK -- so it's bitchin' / k3wl / 733t / whatever
phrase we're using now to indicate positive.

---
Ex vitio sapiens aleno emendat suum

[ Reply to This | # ]

Papa Hegel has mindshare
Authored by: Anonymous on Friday, May 06 2005 @ 11:38 PM EDT
Anyone else see two major camps developing:

macro-descriptive (process as dialectic)
micro-descriptive (process as procedure)

plus dissenting opinion that the whole argument is moot in the face of language
mutation?

Naming efforts are only useful when they synergize. Whitewash is damage, and
the system shunts around it.

[ Reply to This | # ]

My first "Reverse Engineering"?
Authored by: ravenII on Saturday, May 07 2005 @ 01:03 AM EDT
When I was a small kid, My parents came home one day to find that I have
dismantled our TV! next was their car!! But they were cool people, They bought
me an old TV and an old CAR, so I could reverse engineer to my hearts content.
It might seem trivial today, but I am talking about 28 years ago.

---
"Snowflakes are one of nature's most fragile things,
but just look what they can do when they stick together."

[ Reply to This | # ]

I don't understand the problem.
Authored by: Anonymous on Saturday, May 07 2005 @ 01:12 AM EDT
To me, patents, proprietary ideas and other "dog in the manger"
behaviours are the problem. This is what should have the bad name.

Reverse engineering is a good thing. Finding out how something works, spreading
knowledge, and making a better and cheaper product using that knowledge.

Reverse Engineering helps to prevent the "I was first so I get to rip
everyone off" syndrome.

Reverse Engineering enables competition, and competition is the essential
life-blood of a capitalist economy.

[ Reply to This | # ]

"Product Investigation" or "Investigative Engineering"
Authored by: darkonc on Saturday, May 07 2005 @ 01:22 AM EDT
I first came up with "Product Investigation". I mostly like it because it uses relatively simple words... "Investigative Engineering', on the other hand, is (I think) a bit more accurate.

Investigative engineering requires discipline, and prior knowledge, as well as an intuitive streak. I think it essentially classifies as engineering, and it's certainly investigative.

---
Powerful, committed communication. Touching the jewel within each person and bringing it to life..

[ Reply to This | # ]

Deductive Synthesis
Authored by: clueless on Saturday, May 07 2005 @ 01:55 AM EDT
Because it is a deductive process.

Because it is synthesis.

-clueless

---
A farewell to silly .sigs

[ Reply to This | # ]

"Black Box Analysis"
Authored by: rick stockton on Saturday, May 07 2005 @ 03:38 AM EDT
Call it "Black Box Analysis"... analyzing its behaviors from the outside, without looking at restricted/proprietary elements "within the box".

A project which required some set of behaviors, inputs, interactions, or outputs to be compatible with a proprietary Program (or set of interfaces, or a physical something-or-other) would be "Engineered via Black Box Analysis".

This is not a new term in the programming business. I wonder, when did it get lost, or why isn't it appropriate?

---
Rick S

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: iraskygazer on Saturday, May 07 2005 @ 04:10 AM EDT
In order to develop a new expression we, the community, must step back and take
a fresh look at the process. Simply ask the same questions that a new science
student is taught to ask when attempting to provide a description about the
problem at hand.
What is the purpose of 'Reverse Engineering?'
What is needed to perform the task of Reverse Engineering software?
Will the reverse engineering be performed against source code, such as is done
within a Software Configuration Control Board?
Or, will the reverse engineering be performed against a binary file? Maybe to
see how it can be made to work on another hardware platform. Here I'd imply that
there is no access to the source code used to produce the binary executable.
Now that we can see some boundaries developed for the definition of 'Reverse
Engineering' we can begin to create a new definition for the term and then
derive a new set of words to better define the principle.
I do believe that others have come close to a new expression by including the
word 'Analysis.'
Maybe something like 'Analysis of binary files to ....'

[ Reply to This | # ]

"Reverse Engineering"? How about "Scientific Research"?
Authored by: Wesley_Parish on Saturday, May 07 2005 @ 05:53 AM EDT

The absurdity of this entire hoohaa over "Reverse Engineering" is that it is precisely what scientists do with nature. Twiddle its bits in order to find out what makes it work, watch, look and learn for example, why the Spotted Hyena does what the Spotted Hyena does, and the truth about staring at the Sun with a pair of binoculars and why it's not a very smart thing to do ...

It's an apt illustration of why if "con" is the opposite to "pro", Congress is the opposite of Progress.

Warning - Political Rant hereinafter
I fail to understand the political process in the United States. Here you have a close relative of the Bald Twit Lion elected as President and proceeding to alienate almost everybody through Theoretical and Applied Stupidity; and at the very time that having made so many enemies, the US will need to pull out every finger just to keep up with them and its previous scientific and engineering reputation, you have various major companies and churches granted the right to put a stop to basic and applied research because that research will put a stop to granted and seized monopolies and will make deeply-felt indentations in various Holy Wallets, the only things that various people (who shall not be named) hold sacred ...

Ninety-nine red balloons!
Indeed!

---
finagement: The Vampire's veins and Pacific torturers stretching back through his own season. Well, cutting like a child on one of these states of view, I duck

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Saturday, May 07 2005 @ 08:51 AM EDT
In my youth, we called it "blueprinting." We had a widget we
wanted to understand but no blueprints (plans/engineering
drawings) for it, so we disassembled the widget, making
measurements and created our own set of blueprints.

Ok, blueprinting was/is a specific plan printing process, but
it shouldn't be patented any more <g>.

(I've always wondered why that term faded away in favour of
"reverse engineering." )


[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Saturday, May 07 2005 @ 10:09 AM EDT
Reverse engineering response
It seems to me that Reverse Engineering is simply not always
"Constructive", and not always "Complementary". One could
even argue (though perhaps not too boldly) that you could even do RE without
"Exploration" at all, as well, i.e. to do the complete OPPOSITE of
exploration, which is to simply to take IP without credit. That is the least
generous take, but one which could still apply to a lot of Reverse Engineering
activity, right alongside it's more charitable form of simply seeking to learn
for sake of learning -- but always it seems we have a quest to gain knowledge
through disassembly or deconstruction of an existing archetype.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: alvah on Saturday, May 07 2005 @ 11:57 AM EDT
Good Day All, I have been reading through the many suggestions and comments
concerning the suggestion for a
new name for Reverse Engineeing. I believe that I agree
with those individuals who believe that the name Reverse Engineering should
remain the term for the process of examining and producing a giving idea. But if
a new term is needed I will offer the following.

From Webbester's II New Riverside Dictionary
{Copyright 1984}

Retrospective : 1. A consideration or review of past events

Engineering: The application of scientific principles to practial ends; 2. The
design and construction of large-scale or complex structures such as bridges,
roads, and tunnels

Enlighten: 1. To provide with spiritual or intellectual understanding 2. To
inform -enlightenment -enlightener

My suggestions:

Retrospective-engineering
Retrospective-enlightenment
Enlightening-engineering (probably no a good suggestion)
Engineering-enlightenment

Alvah

[ Reply to This | # ]

A New Expression for "Reverse Engineering"? DATA/PROBLEM INVERSION
Authored by: Anonymous on Saturday, May 07 2005 @ 11:58 AM EDT
this is what it is - no presumptions or historical connotations.

INVERSION

of PROBLEM, SOLUTION or DATA

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Saturday, May 07 2005 @ 01:19 PM EDT

How about this?

Post Deployment Engineering

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: webster on Saturday, May 07 2005 @ 01:23 PM EDT
From Sports:

Back Door
End around
double reverse
backtracking
propietary disorienteering
open flush

Engineer terms:

Engine Reversing
Backfiring
backtracking
code dodging
purposeful alternativizing
Target emanations
developmental avoidance
Avoidance Engineering
Free alternativizing
code purification
propietary flushing
Open reconstruction
open recreation
technical detouring
propietary circumvention
propietary minefield work-arounds
open engineering
free engineering
minefield engineering
propietary alternative ingineering
propietary respect engineering
reverse liberating
technical liberation
delimiting adjustment
technical optimizing
open code back
free methodizing

from plumbing:

code declogging
free flushing
free piping


Off to soccer



from health"

bypass surgery
code surgery


---
webster

[ Reply to This | # ]

Why not "taking things apart" and "learning"?
Authored by: Anonymous on Saturday, May 07 2005 @ 01:38 PM EDT
We don't need a complex name to discribe an everyday activity. In fact, everyday words are probably preferable, to help convey the sense that we're talking about entirely ordinary activities.

"Learning" seems to be perfectly adaquate. Or if you want to focus on the disassemly portion of the task, call it "taking ____ apart".

As you said, kids do this when they take clocks apart. Ideally they learn something. Also, if their parently are lucky, they put the clock back together when they are done.

The only thing that changes when a kid takes xclock apart instead is that they can make a copy first and their parents aren't as likely to be irritated if the kid doesn't bother to put it back together. The point is still that the kid might learn something.

It seems likely that the only reason we even have the term "reverse engineering" is that someone wanted to pad his resume one day and knew that "3 years taking ____ apart and learning how it works" wouldn't impress anyone.

Simple language is also an advantage when it comes time for the bad guys to write legislation. If they had to write legislation criminalizing "taking things apart for the purpose of learning", we would hope this would draw more attention from the Congresspersons who bother to read things before they vote on them.

[ Reply to This | # ]

I Nominate "Deconstructive Analysis"
Authored by: Anonymous on Sunday, May 08 2005 @ 01:06 AM EDT
"Reverse Engineering" implies two processes: deconstruction (taking something apart) and analysis (figuring out how the parts worked together when assembled). Since it reverses the order of the typical engineering process (needs analysis, then design and development) it is easy to think of it as the "reverse" of engineering. Deconstructive Analysis would be a more direct and appropriate term.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Monday, May 09 2005 @ 04:37 AM EDT
Since computer code is encoded, why not just decoding or 'deciphering' rather
than the cumbersome 'reverse engineering' and then simply change the word for a
new one when licenses say you can't use the meaning of the old word. Play the
old redefinition game.

[ Reply to This | # ]

A New Expression for "Reverse Engineering"?
Authored by: Anonymous on Monday, May 09 2005 @ 04:58 AM EDT
How about "positive deconstruction"? Just my two cents worth.

[ Reply to This | # ]

A phrase I used a while back...
Authored by: Anonymous on Monday, May 09 2005 @ 12:58 PM EDT
... in a paper is "exploratory artifact decomposition".

It probably isn't catchy enough for general use, but I think it captures the
domain of what happens, both in software and in clocks, better than a lot of
other terms.

[ Reply to This | # ]

Let's clarify this muddy water
Authored by: DaveJakeman on Tuesday, May 10 2005 @ 04:23 AM EDT
I'd like you all to take a step back from this discussion for a moment and
reconsider these prior examples: the locksmith, the musician, the software
developer and the child with the clock. Apart from the term "reverse
engineering", what is the common denominator of these? What are they all
doing? I think it boils down to the desire to obtain original ideas or concepts
from a specific implementation.

If you have an implementation, such as a clock, the best (or worst) you can do
with it is make an exact copy. If you understand the design concepts and ideas
behind that implementation, you can design one yourself, adapt that design at
will, improve it or modify it to do any number of things. You could argue that
reverse engineering is an attempt to improve one's understanding of something
and of course ideas and concepts are the necessary components of understanding.
An idea is about a million times more valuable than an implementation. That is
why people reverse engineer: to get something more valuable than what they
started with. The full understanding of a clock and how it works is worth so
much more than its mere components.

There's something else relevant here though: ideas do not come into being and
exist independently on their own; every idea has its creator. The lock had its
designer, the sound track had its composer, the software had its author and the
clock had an evolutionary history and a designer too. In each of these
examples, the person doing the reverse engineering is trying to obtain the
original ideas and design concepts without consulting their creator. It's a
bypass - and that's what characterises reverse engineering.

The clock, as an implementation, is the embodiment of certain basic ideas and
concepts. They are there, implicit, in the physical components of the clock.
Those design fundamentals might not be obvious, but by some clever deduction,
they can be derived in reverse. By taking it apart, the child is trying to
discover those ideas directly from the implementation. At a generic level, the
child could probably learn more by studying a library book that describes
clocks, their principles, mechanisms and development through the ages. At a
specific level, the child could learn more about that particular clock by
contacting the designer of that particular clock. But instead, the child
dismantles the clock. Why? Because it's much easier. The clock is right
there. All that is needed is a few suitable tools. It takes an effort to go to
the library and find out. It would certainly be an effort to contact the
original designer of an appliance, starting off with just the appliance itself.
And the original designer, if found, might not want to impart the information
that curiosity desires.

So what about the creator? The implementation of every design delivers two
messages: an intended message and an unintended one. In the case of the clock,
the intended message might be "The time is now x"; the unintended
message would be something along the lines of "This is an example of how to
build a mechanism which displays the time accurately". The unintended
message may only be implicit, it might even be deliberately obfuscated,
concealed or encoded, but it is there all the same. The reverse engineer is
trying to obtain the unintended message, without consulting or asking the
permission of its creator.

Depending on the circumstances, this may or may not be a good thing. The way to
determine whether a particular instance of reverse engineering is good or bad,
is to determine whether the act, or its consequences, would in any way harm the
creator or owner of the original design (the owner might not be the creator if
the creator works for a company that assumes ownership of his output). This is
quite aside from whether the particular instance of reverse engineering is
legal, although legal consideration might use the same approach.

What harm will a child do to a clock's designer if the child dismantles the
clock to see how it works? What harm will Company X do to the designer of the
clock if its R&D department reverse engineers the clock for the purpose of
manufacturing a competing product? Here are two examples of the same operation
initiated by different motives. It's the motive that governs the legitimacy of
the act, not the act itself. This is the error of stating that "reverse
engineering" is bad. So are drugs; but drugs are prescribed by doctors. A
bread knife isn't an illegal weapon until it's used as one. There's nothing
wrong with the term "reverse engineering"; it's the motive or the
consequence that matters.

So how about trying to change the meaning of "reverse engineering" to
avoid any unpleasant connotations? It should be clear that "reverse
engineering" as a term doesn't need to change. Like any other term, it can
be used correctly or be abused. Promote its correct use and correct the
abusers. Learn to use "reverse engineering" with other modifiers like
"legitimate", "dubious", "authorised",
"illegal", "educational" and so on. The English language is
particularly rich in modifiers. Those are the words you need to know and use,
rather than trying to redefine a well defined, unambiguous technical term that's
already in common usage and which you don't have any control over anyway.

Political correctness should be left to politicians; hackers need not descend to
that level of doublespeak. Instead, it's far better to say what you mean, which
is what it is: reverse engineering.

I'm all in favour of children dismantling clocks. I did, along with many other
interesting mechanisms, just for the hell of it. And I learned even more by
trying, failing and sometimes succeeding at putting them back together again so
they still worked.

[ Reply to This | # ]

Convergence Engineering?
Authored by: renuk007 on Friday, May 13 2005 @ 05:14 AM EDT
Since it's similar to convergent evolution in biology, I think "convergence
engineering" should be close to the ideal term.

[ Reply to This | # ]

Groklaw © Copyright 2003-2013 Pamela Jones.
All trademarks and copyrights on this page are owned by their respective owners.
Comments are owned by the individual posters.

PJ's articles are licensed under a Creative Commons License. ( Details )