Talk:Reverse engineering

From Wikipedia, the free encyclopedia
Jump to: navigation, search
          This article is of interest to the following WikiProjects:
WikiProject Computer Security / Computing  (Rated C-class, High-importance)
WikiProject icon This article is within the scope of WikiProject Computer Security, a collaborative effort to improve the coverage of computer security on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
C-Class article C  This article has been rated as C-Class on the project's quality scale.
 High  This article has been rated as High-importance on the project's importance scale.
Taskforce icon
This article is supported by WikiProject Computing.
WikiProject Computing (Rated C-class, High-importance)
WikiProject icon This article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
C-Class article C  This article has been rated as C-Class on the project's quality scale.
 High  This article has been rated as High-importance on the project's importance scale.
WikiProject Technology (Rated C-class)
WikiProject icon This article is within the scope of WikiProject Technology, a collaborative effort to improve the coverage of technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
C-Class article C  This article has been rated as C-Class on the project's quality scale.
Checklist icon

CAD Stuff[edit]

Why is there so much non-related information in the "Reverse engineering of mechanical devices" section. Ie all the CAD models? Its no needed. Its just noise —Preceding unsigned comment added by (talk) 02:20, 14 October 2009 (UTC)

RE Educational materials[edit]

An interesting use for the RE concept was mentioned recently in a FOSS educators mailing list, to RE proprietary educational curricula and contents to make it FOSS. Actually RE appears to be SOP of creating educational books, seldom any of them being able to prove complete authorship in afield, and because of copyright issues, requires re-editing identical concepts, put in different words, by trying to go to a common source. —Preceding unsigned comment added by (talk) 03:58, 8 May 2008 (UTC)

A external linking request.[edit]

As per under: Links normally to be avoided

It states in [[section 3: "A website that you own or maintain, even if the guidelines above imply that it should be linked to. This is because In the interests of neutrality, I would like to have re-included in the external links. Or at least . 'of neutrality and point-of-view concerns; neutrality is an important objective at Wikipedia, and a difficult one. If it is relevant and informative, mention it on the talk page and let other — neutral — Wikipedia editors decide whether to add the link." . Well, I maintain the site, so:' Why do I think this qualifies under the other auspices of said ?


1. They do reverse engineering of circuit boards, as far as we can tell unique amongst companies in the English speaking world. There are several other companies that will reverse engineer chips, and other single components, but as far as I can tell, none of them will draw out a circuit board, especially multi-layer.]]2. They do offer a free Reverse Engineering service, if the device is theirs to keep. They will send a clear copy of the schematic in exchange. Thus this site does not exist soley to sell product.

3. They exist for the sake of patent research, and do not sell hacks or devices to do such. Thus they are legal under recent court rulings.

4. They describe some of the work they do on the site.

5. They have been in business for over 25 years, thus they have permanency.

6. Flash, and Javascript are NOT REQUIRED to view the site (although they do add flavor). All images are ALT texted to ensure compatibility for blind users.

If anyone disagrees, please tell me why below this section. Thank you.

A new external linking request.[edit]

I added an external link to a product that I participate in the development: Spy_Studio. This application is free and let you hook any module of any process to study its behaviour. I do believe that this product is a great tool to reverse applications. I have been working reversing software for a lot of time and we are now developing this application to help us and to give to the community another help. This guy Veinor removed the link to our product. I asked where should I put this product as it is related to the subject and he answered putting the article of my product for deletion like 'increasing bet'. I wonder how much this guy knows about Reverse Engineering and how many software's guts he knows to consider himself the 'Reverse Engineering' policeman.

This behaviour is terrible and will convert Wikipedia in the place where some kind of 'lawers' tell me what to put in technical articles.

Is WINE really rev.eng.?[edit]

Is WINE really _reverse_ engineering? There are public specs for the Win16/Win32 API, and WINE is just an implementation of them. So, you go from specs to product, therefore, it's just plain engineering, right? --Anonymous

I read that WINE is supposed to be bug-compatible to the extent that legitimate programs might rely on the bugs. --Anonymous
Plus, various Windows OSs have undocumented functions, and some documented ones may have undocumented behaviour and side effects. However, I believe that the fact that the APIs are supposed to be documented makes Wine a rather poor example. --Mike Van Emmerik 22:14, 23 September 2006 (UTC)
I dunno, but definitively samba isn't reverse engineered over binaries. It was developed using sniffers to analyze the network traffic, and thus the protocol was inferred via actual messages rather than windows code. (That is because in USA there are some restrictions over reverse engineering, and samba developers actually don't accept people that has knowledge over windows smp code in the project) -- 01:03, 7 April 2007 (UTC)
ask anyone on the wine team, they'll tell you there's no reverse engineering going on, just looking at inputs and outputs and reimplementing functions, mention of it should be removed from this article. —Preceding unsigned comment added by (talk) 04:19, 8 August 2008 (UTC)
Reimplementing functions is not reverse engineering, but "looking at inputs and outputs" is. To the extent that WINE specs derive from this kind of observation, reverse engineering is involved; to the extent that WINE relies on published specs, it is not involved. As to the samba mention above, analyzing traffic to determine how a protocol works is reverse engineering; reverse engineering from software does not have to be "over binaries", so I'm not sure what the point was. I don't think the requirement not to look at SMB binary code is dictated by US laws (directly), but by Windows software licensing that specifically forbids disassembly. (talk) 15:40, 31 August 2012 (UTC)

Different kinds of rev.eng.[edit]

I would like to see a disambiguation of the kind reverse engineering discussed here (reverse engineering of someone else's work), and the kind of reverse engineering performed on one's own product. In particular, there is a branch of academic software engineering called "reverse engineering" that isn't described here.

From [CC90]: Reverse engineering is "the process of analyzing a subject system to create representations of the system at a higher level of abstraction". (E.J. Chikofsky and J.H. Cross II "Reverse Engineering and Design Recovery: A Taxonomy" in IEEE Software, pp 13-17, IEEE Computer Society, January 1990.)

It can also be seen as "going backwards through the development cycle" (R. Warden, "Re-engineering - a practical methodology with commercial applications". in Software Reuse amd Reverse Engineering in Practice", pp 283-305. Chapman & Hall, London, England, 1992.) In this model, the output of the implementation phase (in source code form) is reverse engineered back to the analysis phase, in an inversion of the traditional waterfall model.

This type of reverse engineering should be compared and contrasted with "systems analysis", and the relationship with re-engineering and forward engineering should be mentioned. There is also reverse engineering from binary (executable) formats (machine code, Java and .NET bytecodes, etc) back to source code (disassembly and decompilation); these are also forms of reverse engineering. --Mike Van Emmerik


I'm not a lawyer, but this phrase seems wrong to me....: "patents apply to the functionality, not a specific implementation of it."

I'm pretty sure that patents apply to a specific implementation, _not_ generalised functionality. I'm not going to change this, due to the fact that I'm not actually certain. The page on patents themselves doesn't give me any additional insight.

--Andrew Moran

The comment "patents apply to the functionality, not a specific implementation of it." is incorrect I think. Patents actually apply to the specific implementation of an idea. I can't patent a space ship, but I can patent a specific _working_ design for one.
While it is true that the USPTO is granting patents on many things which are not working implementations of a design, or indeed novel or unique that doesn't mean that they are granting valid patents.
I think this phrase should be removed. --Anonymous
I have studied patents semi-professionally and my textbooks say that these days in the US you can patent a functionality and a specific means of achieving this functionality. You can always patent an improved mousetrap if it truly has novelty and inventive step. However, if no person in the world had created or used any mousetrap publicly you could patent the entire idea of catching mice with traps. You would have to demonstrate at least one way of implementing the idea of catching mice with traps or the application would fail -but your patent would not be limited to that implementation.

This extention of the scope of a patent is relatively new and certainly not globally accepted.


I think you (and Andy above) are both wrong; you CAN patent a "frobnicating coffee cup" - whether the cup is made out of metal or porcelain is irrelevant - it's the very idea of a cup that frobnicates is covered. That's why patents are considired harmful by many. Copyright cover implementations, patents cover ideas. --Anonymous
"though patent owners often contest this and attempt to stifle any reverse engineering of their products for any reason." - what has patents got to do with it? i thought the patent system was invented so people WOULDN'T have to reverse-engineer. this sentence smells like crack. --Anonymous
Patents were founded so you could technologies you're not allowed to implement. They forgot to think wether or not it is usefull or interresting to study technologies that you're not allowed to use. --Easyas12c 21:24, 4 November 2005 (UTC)

The current wording "reverse engineering a patented item can be infringement" seems incorrect to me. Patent law was specifically made so inventors would share their inventions and we wouldn't have to reverse-engineer them, therefore the information in a patent technically must be sufficient to recreate the device from scratch. You don't have to reverse engineer a patented device because the plans are publicly available as part of the patent. Re-creating the device without a license is infringement, whether you use the patent plan or reverse engineering. -- 20:18, 7 June 2006 (UTC)

On reading the article for the first time this incorrect wording jumps out immediately. The patents (at least in the US) are public domain. In light of this, the idea that the reverse engineering itself of a patented device could be infringment is nonsensical. For example, if I read the patent before I started reverse engineering then I obviously could not learn any patented ideas so then the process would be the same as reverse engineering a non-patented device. However, if I had not read the patent and only read the patent afterwords is the activity suddenly infringement? Or am I only infringing only up until the point I read the patent? This is obviously illogical. 18:23, 12 October 2006 (UTC)
I noticed this error also and wrote a new paragraph in place of the old one. See if you like it; I'm not an expert on the field nor write perfect English. There's no references either. Wipe 02:38, 24 October 2006.
Yikes, here be monsters...Patents cover what the claims of the patent state. If the product resulting from reverse engineering contains all of the elements of a given claim in a patent, then it infringes. The implementation/functionality distinction doesn't apply, or at least isn't as straightforward. You can often work around a claim. If the claim for a "frobnicating coffee cup" has as one of its elements a class 1 frobnicator with a 3" diameter, then a cup that has a class 2 frobnicator with a 1" diameter does not infringe that claim, even if it achieves the same functionality. (talk) 15:48, 31 August 2012 (UTC)
And as to whether it even makes sense to reverse engineer a product covered by a patent -- Yes, that could happen. Company X might patent feature Y which is used in product Z. When company W wishes to produce a competing product, they first need to reverse-engineer product Z. On discovering that company X included patented feature Y within the guts of Z, W must then find a way to work around the patent to implement a non-infringing equivalent of Y (forward engineering). (talk) 15:59, 31 August 2012 (UTC)

Rev.eng. Wikibook[edit]

I've started a book on software Reverse Engineering at Wikibooks. You can find it Here. So far interest among contributers has been low, and I am looking to get more contributers in on the project. People who know about reverse engineering of computer software should stob by and share your two cents. --Whiteknight


The reengineering that this page links to seems to be about management stuff rather than software reengineering. Perhaps a disambiguation page or a new section should be made? --Harrym 11:36, 6 January 2006 (UTC)

I agree. I'd never heard of "reengineering the organisation", so I did a google search for the keyword reengineering with either "software" or "organisation OR organisation". I was surprised to find that the latter was almost as popular as the former (2.6M pages vs 3.5M). Reengineering and business comes in at 5.2M. No doubt this is highly inaccurate, but it's quick. I guess we need a "reengineering (software)" title and a disambiguation page. --Mike Van Emmerik 22:09, 6 January 2006 (UTC)
I've added Reengineering (software) and put a disambig link at the top of the current article. I've also updated the links here to point to the correct page. I figured a whole disambig page wasn't necessary just for two topics. Harrym 14:59, 11 January 2006 (UTC)

Paycheck movie[edit]

They had reverse engineering in the movie Paycheck. -- 16:03, 24 February 2006 (UTC)


Shall we not mention one of the earliest acts of reverse-engineering, albeit not hi-tech, not even of a mechanical product? Wolfgang Amadeus Mozart managed to reverse-engineer the whole score of the Papal Mass from hearing alone, although the score was at that time kept in the utmost of secrecy and guarded with the threat of excommunication. --Shlomi Tal 13:20, 28 March 2006 (UTC)

While a great story, it's debatable whether Mozart actually "reverse engineered" the mass. This relies on the question of how much correspondence there is between the score and the performance. It could be argued that Mozart simply "wrote down" what he heard, albeit in score form, which was just illicit reproduction rather than discovering the "technological principles" behind the mass. I wouldn't like to see the article bogged down by pedantic considerations like these, though. JRM · Talk 13:08, 23 September 2006 (UTC)

Reversing/riddle game[edit] Loocifah 18:42, 17 April 2006 (UTC)

"mechanical" ?[edit]

The first sentence of the article states that

Reverse engineering (RE) is the process of discovering the technological principles of a mechanical application...

However, it seems that RE is certainly not limited to mechanical applications. The very fact that the next sentence uses electronics and software as examples of things that can be reverse engineered seems to show it is not just mechnical. Better terms may be (off the top of my head):

  • engineering applications
  • engineering systems
  • technological applications
  • technological systems
  • systems

Thoughts? --&m@ 01:37, 2 July 2006 (UTC)


Good book about it. May be added to the article. --Yonkie 23:00, 10 August 2006 (UTC)

To save people following the link to find the book title, this is "Reversing: Secrets of Reverse Engineering" by Eldad Eilam. This is a good book on software reverse engineering from binary programs (where source code not available), so it applies only to the sections "Binary Software" and "Binary Software Techniques". Perhaps more useful if we ever have a separate article on binary reverse engineering. --Mike Van Emmerik 22:24, 23 September 2006 (UTC)

problems with reverse engineering[edit]

Shouldn't the problems of this process be discussed in here? I'm not very knowledgable at all about the topic, but in an engineering tutorial at university, I was told about their being problems with reverse engingeering, such as not realising mistakes that you make whilst doing it. Sorry, I know thats a pretty weak explanation. —The preceding unsigned comment was added by (talk) 17:05, 6 December 2006 (UTC).

DMCA exemption paragraph[edit]

In the United States, the Digital Millennium Copyright Act exempts from the circumvention ban some acts of reverse engineering aimed at interoperability of file formats and protocols, but judges in key cases have ignored this law, since it is acceptable to circumvent restrictions for use, but not for access.[4] Aside from restrictions on circumvention, reverse engineering of software is protected in the U.S. by the fair use exception in copyright law.[5]

Would someone kindly rephrase this paragraph as it's far from easy to understand. I'd do it myself am not knowledgeable enough in this area. Pgr94 09:39, 21 May 2007 (UTC)

Reverse engineering as a job?[edit]

Im wondering about the legality of reverse engineering software as a profession and also if any companies/individuals already offer serices in this area? If someone could point in the right direction or if relevant include a small section about hirable reverse engineers that'd be great. —Preceding unsigned comment added by (talkcontribs) 10:17, 3 August 2007 (UTC)

legality of reverse engineering[edit]

These (unsigned) comments were copied from the main page; they don't relate to current content, so it seemed better to move them here. --lquilter 00:13, 6 October 2007 (UTC)

RE is mainly used to flout the law? Don't think so... Reverse engineering is commonly done to avoid copyrights on desired functionality, and may be used for avoiding patent law, though this is a bit risky: patents apply to the functionality. oh yea!!!!

Reverse-engineering a network protocol - legal?[edit]

Is it legal to reverse-engineer a protocol without looking inside the binaries? I believe the Samba project required a lot of reverse engineering, and even Microsoft develops protocol reverse-engineering tools! [1] Pgr94 14:59, 15 October 2007.

Another External Link[edit]

The site Tuts 4 You has been around for years and is popular. It focuses on software reverse engineering of all kinds, similar to OpenRCE but not so much concentrated on Malware and security and it also has crackme's like (also in the external links). It has many tutorials introducing and explaining many concepts of RCE. The source —Preceding unsigned comment added by Teddy Rogers (talkcontribs) 12:58, 5 February 2008 (UTC)

Samba not reverse engineered[edit]

According to Jeremy Allison who is one of the lead maintainers of Samba. Samba is never reversed engineered due to the large amount of encryption involved in file sharing. Therefore it would be mighty illegal for them to break the encryption. They use network analysis to develop Samba. You can here an interview with him talking about this very issue on FLOSS "Weekly". —Preceding unsigned comment added by Elite.est (talkcontribs) 06:43, 2 March 2008 (UTC)

Reverse-engineering is not only applicable to binaries, network protocols can also be reverse-engineered. Pgr94 (talk) 14:54, 2 March 2008 (UTC)

Binary software?[edit]

I'm weirded out by the fact that there's "Reverse engineering of software" "binary software" and "binary software techniques" what other type of software is there other than binary? why does it need a special heading.

also - although I can't find it in wikipedia - there's the technique of (I call it) System level reversing, where you aren't actually analysing the code, but rather observing the program as it runs using tools such as file/regmon, and network monitoring tools such as wireshark etc. I was about to add this to the article, but tripped over the crazy headings as above... requesting permission to totally rearange those three sections.... Whitehatnetizen (talk) 11:29, 16 April 2009 (UTC)

Fravia redirects here but is not explained[edit]

Fravia redirects to reverse engineering, but is not explained anywhere in the text. Can someone add an explanation about Fravia or why it redirects to reverse engineering? Otherwise, we may consider removing the redirection? Interp (talk) 08:40, 5 May 2009 (UTC)

a quick google says that fravia is an alias for a european reverse engineer. possibly unless that person is notable it should be entirely removed. Whitehatnetizen (talk) 09:21, 5 May 2009 (UTC)

fravia is notable... he was part of the underground, yes, but he was one of the best, and he was well-known in the whole world. —Preceding unsigned comment added by (talk) 13:55, 5 May 2009 (UTC)

Yes,I can add an explanation , I have read some of his works on and he always explained very well reverse engineering techniques and other related practices. He has also been present to talks regarding reverse engineering of which this and this are quite notable and he explains searching techniques. He was well known for hosting articles of seasoned reverse engineers on his website , very good articles explaining the inner-workings of some protection schemes for software. His real name is Fjalar Ravia . This is one of the talks he gave and a very interesting one it was indeed , very intuitive. He has essays and writings dating as far as in the '90s , about 1997 if I remember well. He deserves a place in wikipedia , of that I am sure. Stefan.petrea (talk) 14:38, 5 May 2009 (UTC)
shouldn't he have his own page then? looks like he used to but not any more? Whitehatnetizen (talk) 16:47, 5 May 2009 (UTC)
Here's the archived debate of the page deletion Interp (talk) 15:09, 6 May 2009 (UTC)
yes , is his own page if that's what you mean.Here on wikipedia he had a page then someone thought it should redirect to Reverse Engineering , which is wrong because they're not nearly the same thing , a domain and a person. Stefan.petrea (talk) 03:04, 6 May 2009 (UTC)

Mechnical section misses the point[edit]

Reverse engineering in a mechanical sense is far more involved than just "scanning " the form. To reverse engineer a mechanical device the engineer must discover more than just its basic dimensions. Questions such as how does it interact with other devices? What are the permitted tolerances for effective operation. How does the device age? What are the designed failure modes? What materials have been selected and what post processed have they undergone. Trying to reverse engineer a device with out full engineering assurance of the design can lead to catastrophic consequences.

In terms of potential legal application. Reverse engineering is often employed in cases of obsolescence. Some equipment can have very long asset lives or can be maintained for heritage purposes. In these case replacement parts are not available due to the design not being supported or dissolution of the original company. Consider the upkeep and maintenance of a vintage car or railway vehicle.

I believe that in the UK designs covered only by copyright of the drawing/specification and not a patent are covered for a period of 10 years provided that no modification to the design has been been made.

—Preceding unsigned comment added by Damowe (talkcontribs) 13:04, 22 May 2009 (UTC)

Citation not relevant[edit]

The first citation from this sentence "Reverse engineering has its origins in the analysis of hardware for commercial or military advantage [1]." (that links to this paper ) does not link to a paper that supports that statement.

The paper discusses the creation of a 3D scanning technique, and the words commercial and military appear nowhere in the article, nor does anything else relevant to that statement.

The sentence itself seems reasonable, but is currently unsupported, which is something you don't want at all, let alone in such a prominent position.

Does anybody know of a source to link to for this? —Preceding unsigned comment added by TheWizardOfHam (talkcontribs) 05:18, 8 February 2010 (UTC)

Related links[edit]

I deleted the above as it was an incorrect link. The article was perhaps moved. I am noting it here in case someone wants to track down the article and provide a link that will not go stale in the future.

ShaneCRoach (talk) 09:39, 4 June 2010 (UTC)

Copyright problem removed[edit]

Prior content in this article duplicated one or more previously published sources. The material was copied from: Infringing material has been rewritten or removed and must not be restored, unless it is duly released under a compatible license. (For more information, please see "using copyrighted works from others" if you are not the copyright holder of this material, or "donating copyrighted materials" if you are.) For legal reasons, we cannot accept copyrighted text or images borrowed from other web sites or published material; such additions will be deleted. Contributors may use copyrighted publications as a source of information, but not as a source of sentences or phrases. Accordingly, the material may be rewritten, but only if it does not infringe on the copyright of the original or plagiarize from that source. Please see our guideline on non-free text for how to properly implement limited quotations of copyrighted text. Wikipedia takes copyright violations very seriously, and persistent violators will be blocked from editing. While we appreciate contributions, we must require all contributors to understand and comply with these policies. Thank you. VernoWhitney (talk) 20:51, 28 February 2011 (UTC)

File:ApotosAct2 Unleashed-Generations.jpg Nominated for speedy Deletion[edit]

Image-x-generic.svg An image used in this article, File:ApotosAct2 Unleashed-Generations.jpg, has been nominated for speedy deletion at Wikimedia Commons for the following reason: Copyright violations
What should I do?

Don't panic; deletions can take a little longer at Commons than they do on Wikipedia. This gives you an opportunity to contest the deletion (although please review Commons guidelines before doing so). The best way to contest this form of deletion is by posting on the image talk page.

  • If the image is non-free then you may need to upload it to Wikipedia (Commons does not allow fair use)
  • If the image isn't freely licensed and there is no fair use rationale then it cannot be uploaded or used.
  • If the image has already been deleted you may want to try Commons Undeletion Request

To take part in any discussion, or to review a more detailed deletion rationale please visit the relevant image page (File:ApotosAct2 Unleashed-Generations.jpg)

This is Bot placed notification, another user has nominated/tagged the image --CommonsNotificationBot (talk) 14:01, 15 April 2012 (UTC)

If the EULA forbids reverse engering, in the US...[edit]

Then they violate the EULA, and fair use does not apply. Because contracts trumps fair use, the US found that if the EULA is forbids, fair use is no legal defense. -- (talk) 23:27, 25 August 2013 (UTC)

1st def failed verification[edit]

Eilam says "Reverse engineering is the process of extracting the knowledge or design blueprints from anything man-made." He doesn't say it's necessarily for the purpose of producing knockoffs, copies, or improved versions, although he does say, a bit later on that "Traditionally, reverse engineering has been about taking shrink-wrapped products and physically dissecting them to uncover the secrets of their design. Such secrets were then typically used to make similar or better products." (Emphasis mine.) And if you even pause for one nanosecond to think that the book's topic is reversing software, and that a huge chunk of that enterprise is reversing malware these days (all anti-virus companies basically do that), it starts to make sense why he doesn't peg the goal of reversing to necessarily be copying. He even says it explicitly "Reversing is also heavily used in connection with malicious software, on both ends of the fence: it is used by both malware developers and those developing the antidotes. Finally, reversing is very popular with crackers who use it to analyze and eventually defeat various copy protection schemes." None of these later goals are copying products. (talk) 20:00, 29 July 2014 (UTC)

Man-Made ? What about biology ?[edit]

There is many references to reverse engineering in biology and genetics (have a look to a simple search "reverse engineering" in google scholar), or cognitive science ("reverse engineering the brain" has been elected a challenge by the USA's national academy of engineering). Therefore I guess that the "man-made" element of definition - further more in the first sentence - is not justified. Proposition: "... from anything, man-made or not" What do you think ? — Preceding unsigned comment added by Ant1mazr (talkcontribs) 00:54, 14 December 2014 (UTC)

Reverse engineering in licensing, an error in judgement.[edit]

If it is not written down, then it does not imply that it is, or is not, a constitutional right.

Defacto, reverse engineering IS a constitutional right, and that makes all and every licensing statement concerning reverse engineering a zero issue. It isn´t in the reverse engineering, it´s in the use of such to promote yourself above and beyound maintainance level. — Preceding unsigned comment added by (talk) 17:30, 5 January 2015 (UTC)