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: Peter H. Salus on Friday, May 06 2005 @ 10:34 AM EDT
- Studying - Authored by: Anonymous on Friday, May 06 2005 @ 10:51 AM EDT
- A New Expression for "Reverse Engineering"? - Authored by: Anonymous on Friday, May 06 2005 @ 10:58 AM EDT
- The same thought - Authored by: Anonymous on Friday, May 06 2005 @ 11:07 AM EDT
- Structural Analysis - Authored by: llanitedave on Friday, May 06 2005 @ 11:13 AM EDT
- A New Expression for "Reverse Engineering"? - Authored by: Anonymous on Friday, May 06 2005 @ 11:16 AM EDT
- Reconstructive Examination ? - Authored by: einarth on Friday, May 06 2005 @ 11:42 AM EDT
- A New Expression for "Reverse Engineering"? - Authored by: Anonymous on Friday, May 06 2005 @ 11:52 AM EDT
- A New Expression for "Reverse Engineering"? - Authored by: Anonymous on Friday, May 06 2005 @ 11:54 AM EDT
- A New Expression for "Reverse Engineering"? - Authored by: hardcode57 on Friday, May 06 2005 @ 12:15 PM EDT
- Whats next "Master/Slave", "Reboot", Debug" ??? - Authored by: Anonymous on Friday, May 06 2005 @ 12:16 PM EDT
- Operation Analysis - Authored by: Anonymous on Friday, May 06 2005 @ 12:26 PM EDT
- A New Expression for "Reverse Engineering"? - Authored by: Anonymous on Friday, May 06 2005 @ 12:32 PM EDT
- A New Expression for "Reverse Engineering"? - Authored by: Anonymous on Friday, May 06 2005 @ 12:38 PM EDT
- A New Expression for "Reverse Engineering"? - Authored by: Anonymous on Friday, May 06 2005 @ 12:40 PM EDT
- Newspeak - Authored by: greyhat on Friday, May 06 2005 @ 12:43 PM EDT
- A New Expression for "Reverse Engineering"? - Authored by: Anonymous on Friday, May 06 2005 @ 01:01 PM EDT
- A New Expression for "Reverse Engineering"? - Authored by: Anonymous on Friday, May 06 2005 @ 01:05 PM EDT
- Need multiple terms - Authored by: Anonymous on Friday, May 06 2005 @ 01:32 PM EDT
- A New Expression for "Reverse Engineering"? - Authored by: brendthess on Friday, May 06 2005 @ 01:40 PM EDT
- A New Expression for "Reverse Engineering"? - Authored by: Anonymous on Friday, May 06 2005 @ 02:03 PM EDT
- How about "Specification recovery" - Authored by: Jude on Friday, May 06 2005 @ 02:04 PM EDT
- A New Expression for "Reverse Engineering"? - Authored by: salvarsan on Friday, May 06 2005 @ 02:20 PM EDT
- Comptibilty and Interoperability Analysis? - Authored by: nanook on Friday, May 06 2005 @ 02:39 PM EDT
- A New Expression for "Reverse Engineering"? - Authored by: wvhillbilly on Friday, May 06 2005 @ 03:13 PM EDT
- A New Expression for "Reverse Engineering"? - Authored by: tgibson37 on Friday, May 06 2005 @ 04:06 PM EDT
- "Parabolic Processing" is the new "Reverse Engineering"? - Authored by: Anonymous on Friday, May 06 2005 @ 04:12 PM EDT
- A New Expression for "Reverse Engineering"? - Authored by: Anonymous on Friday, May 06 2005 @ 06:44 PM EDT
- A New Expression for "Reverse Engineering"? - Authored by: Anonymous on Friday, May 06 2005 @ 10:03 PM EDT
- Functional Analysis - Authored by: sproggit on Saturday, May 07 2005 @ 04:28 AM EDT
- A New Expression for "Reverse Engineering"? - Authored by: Anonymous on Saturday, May 07 2005 @ 11:05 AM EDT
- A New Expression... why? - Authored by: Anonymous on Sunday, May 08 2005 @ 09:06 PM EDT
- What's wrong with "Reverse Engineering"? - Authored by: Anonymous on Monday, May 09 2005 @ 06:49 AM EDT
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
Authored by: heretic on Friday, May 06 2005 @ 10:48 AM EDT |
Functional Modelling [ Reply to This | # ]
|
|
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 | # ]
|
|
Authored by: Anonymous on Friday, May 06 2005 @ 10:51 AM EDT |
How about "Hacking"? [ Reply to This | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
Authored by: Anonymous on Friday, May 06 2005 @ 11:13 AM EDT |
I like "black box analysis". [ Reply to This | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
Authored by: Anonymous on Friday, May 06 2005 @ 11:15 AM EDT |
operational analysis
interoperability engineering
blackbox engineering
[ Reply to This | # ]
|
|
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
|
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 | # ]
|
|
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 | # ]
|
|
Authored by: Anonymous on Friday, May 06 2005 @ 11:20 AM EDT |
Brian S.[ Reply to This | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
- Best Projects - Authored by: Anonymous on Friday, May 06 2005 @ 11:57 AM EDT
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
Authored by: Rsnable Person on Friday, May 06 2005 @ 11:45 AM EDT |
.. [ Reply to This | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
Authored by: bsm2003 on Friday, May 06 2005 @ 11:47 AM EDT |
. [ Reply to This | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
Authored by: mojotoad on Friday, May 06 2005 @ 12:37 PM EDT |
or more playfully:
Doodlebugging
;)
Matt[ Reply to This | # ]
|
|
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 | # ]
|
|
Authored by: feep on Friday, May 06 2005 @ 12:40 PM EDT |
Reconstructive Research [ Reply to This | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
Authored by: Anonymous on Friday, May 06 2005 @ 12:55 PM EDT |
How about "Functional Modeling"? [ Reply to This | # ]
|
|
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 | # ]
|
|
Authored by: Anonymous on Friday, May 06 2005 @ 01:00 PM EDT |
Historical Education Learning Process [ Reply to This | # ]
|
|
Authored by: Anonymous on Friday, May 06 2005 @ 01:02 PM EDT |
[ Reply to This | # ]
|
|
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 | # ]
|
|
Authored by: qu1j0t3 on Friday, May 06 2005 @ 01:06 PM EDT |
To start the ball rolling: Felten [ Reply to This | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
Authored by: cricketjeff on Friday, May 06 2005 @ 01:27 PM EDT |
would seem to cover it... [ Reply to This | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
Authored by: Anonymous on Friday, May 06 2005 @ 02:59 PM EDT |
.
kimmow[ Reply to This | # ]
|
|
Authored by: Anonymous on Friday, May 06 2005 @ 03:04 PM EDT |
Obvious. [ Reply to This | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
Authored by: Anonymous on Friday, May 06 2005 @ 06:45 PM EDT |
Reverse Documentation. - this is precisely what the term means. [ Reply to This | # ]
|
|
Authored by: Anonymous on Friday, May 06 2005 @ 07:07 PM EDT |
N/T [ Reply to This | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
Authored by: Anonymous on Friday, May 06 2005 @ 08:49 PM EDT |
Deconstructive Analysis [ Reply to This | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
Authored by: Anonymous on Saturday, May 07 2005 @ 01:19 PM EDT |
How about this?
Post Deployment Engineering
[ Reply to This | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
Authored by: Anonymous on Monday, May 09 2005 @ 04:58 AM EDT |
How about "positive deconstruction"? Just my two cents worth. [ Reply to This | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|