Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where is Reverse Engineering used? [closed]

I ask myself where reverse engineering is used. I'm interested at learning it. But I don't know if I can/should put it on my CV.

I don't want my new chief to think I am an evil Hacker or something. :)

  • So is it worth it?
  • Should I learn it or put my effort somewhere else?
  • Is there a good Book or tutorial out there? :)
like image 353
n00ki3 Avatar asked Feb 15 '09 10:02

n00ki3


2 Answers

Reverse engineering is commonly used for deciphering file formats for improving interoperability. For example, many popular commercial Windows applications don't run on Linux, which necessitates reverse engineering of files produced by those applications, so that they can be used in Linux. A good example of this would be the various formats supported by Gimp, OpenOffice, Inkscape, etc.

Another common use of reverse engineering is deciphering protocols. Good examples include Samba, DAAP support in many non-iTunes applications, cross platform IM clients like Pidgin, etc. For protocol reverse engineering, common tools of the trade include Wireshark and libpcap.

No doubt reverse engineering is often associated with software cracking, which is primarily understanding program disassembly. I can't say that I've ever needed to disassemble a program other than out of pure curiosity or to make it do something it wasn't. One plus side to reverse engineering programs is that to make any sense of it, you will need to learn assembly programming. There are however legal ways to hone your disassembly skills, specifically using Crackmes. An important point to be made is that when you're developing security measures in your applications, or if you're in that business, you need to know how reverse engineers operate to try to stay one step ahead.

IMHO, reverse engineering is a very powerful and useful skill to have. Not to mention, it's usually fun and addictive. Like hmemcpy mentioned, I'm not sure I would use the term "reverse engineering" on my CV, only the skills/knowledge associated with it.

like image 144
codelogic Avatar answered Sep 21 '22 10:09

codelogic


Reverse engineering is usually something you do because you have to, not because you want to. For example, there are legal issues with simply reverse engineering a product! But there are necessary cases - where (for example) the supplier has gone and no longer exists or is not contactable. A good example would be the WMD editor that you typed your question into. The SO team/community had to reverse engineer this from obfuscated source to apply some bug fixes.

like image 21
Marc Gravell Avatar answered Sep 23 '22 10:09

Marc Gravell