Questions tagged [reverse-engineering]

Reverse engineering is the process of discovering the technological principles of a human made device, object or system through analysis of its structure, function and operation.

Reverse engineering often involves taking something (e.g., a mechanical device, electronic component, or software program) apart and analyzing its workings in detail to be used in maintenance, or to try to make a new device or program that does the same thing without using or simply duplicating (without understanding) any part of the original.

Reverse engineering has its origins in the analysis of hardware for commercial or military advantage. The purpose is to deduce design decisions from end products with little or no additional knowledge about the procedures involved in the original production. The same techniques are subsequently being researched for application to legacy software systems, not for industrial or defense ends, but rather to replace incorrect, incomplete, or otherwise unavailable documentation.

Reverse engineering techniques of Software consist of decompiling, analyzing, hooking, and patching.

See also:


  • Tracing a NCR assembly program of MASM walk-through of manually tracing and commenting a simple recursive function ing 16-bit x86 asm source to C-like pseudocode. With discussion of how to analyse and what to look for in finding the data flow.
3872 questions
29
votes
13 answers

Sequence Diagram Reverse Engineering

I'm looking for a tool that will reverse engineer Java into a sequence diagram BUT also provides the ability to filter out calls to certain libraries. For example, the Netbeans IDE does a fantastic job of this but it includes all calls to String or…
Keith Fitzgerald
  • 5,651
  • 14
  • 43
  • 58
29
votes
4 answers

Docker: Reverse Engineering of an Image

When we use Docker it's very easy push and pull image in a public repository in our https://hub.docker.com but this repository it's free only for public image(only one can be private). Currently it's possible to execute a reverse engineering of a…
daniele3004
  • 13,072
  • 12
  • 67
  • 75
28
votes
4 answers

How do these javascript obfuscators generate actual working code?

There's this one and this one and they both generate completely unreadable code, one being more adorable than the other. Now, I'm no expert in Javascript, but I fail to see how ゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ ['_']; o=(゚ー゚) =_=3; c=(゚Θ゚)…
Cyclone
  • 17,939
  • 45
  • 124
  • 193
28
votes
7 answers

How do i prevent my code from being stolen?

What happens exactly when I launch a .NET exe? I know that C# is compiled to IL code and I think the generated exe file just a launcher that starts the runtime and passes the IL code to it. But how? And how complex process is it? IL code is embedded…
Calmarius
  • 18,570
  • 18
  • 110
  • 157
28
votes
7 answers

Any tool/software in windows for viewing ELF file format?

There are lots of PE file browsers. Here is a list of good ones if you are interested: PE File format viewers: PE Explorer http://www.pe-explorer.com/ PE VIew: http://www.magma.ca/~wjr/ PEBrowse Professional…
norris
  • 387
  • 1
  • 4
  • 6
27
votes
0 answers

Reversing an MD5 Hash

Possible Duplicate: Is it possible to decrypt md5 hashes? I have passwords stored in a database using md5, and was wondering if there was a way to reverse the hash to email the user's password to him in case they forget it. If that's not the most…
akano1
  • 40,596
  • 19
  • 54
  • 67
26
votes
9 answers

Protect string constant against reverse-engineering

I have android application that has hard coded (static string constants) credentials (user/pass) for sending emails via SMTP. The problem is that .dex file in .apk can be easily reverse-engineered and everybody can see my password. Is there a way…
D-Fox
  • 303
  • 1
  • 6
  • 8
26
votes
2 answers

What's the difference between .rdata and .idata segments?

I noticed in IDA that the PE file which I analyze has not only the .rdata section but also .idata. What's the difference?
Adam Sznajder
  • 9,108
  • 4
  • 39
  • 60
25
votes
10 answers

What is your favourite anti-debugging trick?

At my previous employer we used a third party component which basically was just a DLL and a header file. That particular module handled printing in Win32. However, the company that made the component went bankcrupt so I couldn't report a bug I'd…
Jonas Engström
  • 5,015
  • 3
  • 37
  • 36
25
votes
1 answer

Decompile XAPK file

I have worked pretty a lot analyzing Android projects with different reverse engineering tools, generally for secure purposes, to see what can be seen by a hacker when he/she gets my app. I've met a problem that I couldn't find any of decompilers…
Jenya Pu
  • 733
  • 1
  • 7
  • 13
25
votes
3 answers

REPNZ SCAS Assembly Instruction Specifics

I am trying to reverse engineer a binary and the following instruction is confusing me, can anyone clarify what exactly this does? =>0x804854e: repnz scas al,BYTE PTR es:[edi] 0x8048550: not ecx Where: EAX: 0x0 ECX: 0xffffffff EDI:…
Michael Scott
  • 539
  • 3
  • 8
  • 18
25
votes
2 answers

How can I connect to the FitBit Zip over Bluetooth 4.0 LE on Linux with bluez?

I purchased a FitBit zip. This device uses Bluetooth 4.0 LE. I would like to at least connect to it via bluez. If that is successful I want to see how much of the protocol I can figure out. I am using a Lenovo P500 Ideapad which has integrated…
Thomas Dignan
  • 7,052
  • 3
  • 40
  • 48
24
votes
14 answers

Can it be morally defensible to release a program which games an MMORPG?

I have written presumably some of the first code to modify the memory of a popular new MMORPG in such a way as to create a macro framework, allowing for advanced automated reactions, skill/level gain, large scale data retrieval, and botting. It's my…
Christopher Galpin
  • 1,088
  • 12
  • 27
23
votes
1 answer

Raw floating point encoding

Update The original question is no longer the appropriate question for this problem, so I'm going to leave this alone to demonstrate what I tried/learned and for the background. It's clear that this is not just a "Base64 variation" and is a bit more…
patmo141
  • 321
  • 1
  • 3
  • 12
23
votes
8 answers

Compile-time string encryption

I don't want reverse-engineers to read the plain-text of hardcoded strings in my application. The trivial solution for this is using a simple XOR-Encryption. The problem is I need a converter and in my application it will look like this: //Before…
Listing
  • 1,171
  • 2
  • 15
  • 31