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
44
votes
12 answers

Reverse engineering war stories

Sometimes you don't have the source code and need to reverse engineer a program or a black box. Any fun war stories? Here's one of mine: Some years ago I needed to rewrite a device driver for which I didn't have source code. The device driver ran…
Kluge
  • 3,567
  • 3
  • 24
  • 21
44
votes
10 answers

How to Generate a Sequence Diagram from Java Source Code

I have a question about generating sequence diagram from Java source code. When I googled I saw someone told to use visual paradigm (VP), but it does not generate sequence diagram for me. Some steps in my VP are different from manual. The manual…
AFF
  • 1,515
  • 4
  • 21
  • 35
39
votes
6 answers

How to decode a PDF stream?

I want to analyze a stream object in a PDF file which is encoded using /FlateDecode. Are there any tools which allow one to decode such encoding (ASCII85decode, LZWDecode, RunlenghtDecode etc.) used in PDFs? The stream content is most likely a PE…
rebel87
  • 533
  • 1
  • 4
  • 9
38
votes
12 answers

How to analyze binary file?

I have a binary file. I don't know how it's formatted, I only know it comes from a delphi code. Does it exist any way to analyze a binary file? Does it exist any "pattern" to analyze and deserialize the binary content of a file with unknown…
Ricibald
  • 9,369
  • 7
  • 47
  • 62
35
votes
9 answers

How to hide strings in a exe or a dll?

I discovered that it is possible to extract the hard-coded strings from a binary. For example the properties view of Process Explorer displays all the string with more than 3 characters. Here is the code of a simple executable that I wrote to simply…
34
votes
10 answers

How do you extract classes' source code from a dll file?

Is there any software to do this? I didn't find any useful information on the internet so I am asking here.
ILoveMusic
  • 501
  • 1
  • 5
  • 10
32
votes
3 answers

Deconstructing Pokémon glitches?

(I apologize if this is the wrong place to ask this. I think it's definitely programming related, though if this belongs on some other site please let me know) I grew up playing Pokémon Red and Blue, games that were great fun but are somewhat…
templatetypedef
  • 362,284
  • 104
  • 897
  • 1,065
32
votes
2 answers

Obfuscate entire React Native app including JavaScript code

How to obfuscate my react-native JS code? I have set the following in my build.gradle file: release { minifyEnabled true proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" } Here is my proguard-rules.pro…
artsnr
  • 952
  • 1
  • 10
  • 27
32
votes
13 answers

Convert ASM to C (not reverse engineer)

I googled and I see a surprising amount of flippant responses basically laughing at the asker for asking such a question. Microchip provides some source code for free (I don't want to post it here in case that's a no-no. Basically, google AN937,…
Steven
  • 576
  • 1
  • 5
  • 12
31
votes
3 answers

Processing ELF relocations - understanding the relocs, symbols, section data, and how they work together

TL;DR I tried to make this a short question but it's a complicated problem so it ended up being long. If you can answer any part of this or give any suggestions or tips or resources or anything at all, it would be extremely helpful (even if you…
thehelix
  • 578
  • 1
  • 6
  • 10
31
votes
5 answers

JNZ & CMP Assembly Instructions

Correct me if I am wrong. This is my understanding of JNZ and CMP. JNZ - The jump WILL take place if the Z Flag is NOT zero (1) CMP - If the two values are equal, the Z Flag is set (1) otherwise it is not set (0) This is a flash tutorial I am…
43.52.4D.
  • 950
  • 6
  • 14
  • 28
31
votes
0 answers

Tool to reverse Javascript minify?

Possible Duplicate: Online Tool to Unminify / Decompress JavaScript Online javascript minify tools basically strip out comments and whitespace. Is there a tool that can reverse this? Taking what is usually a single line of code: function(){var…
Robin Rodricks
  • 110,798
  • 141
  • 398
  • 607
30
votes
6 answers

How do I copy-protect my Java application?

I want to sell my Java application using PayPal. When a payment is received, the customer is mailed a one-time download link to my application. My question is, how do I prevent people from sending the .jar file to their friends/uploading it on the…
cragiz
  • 453
  • 2
  • 5
  • 8
30
votes
4 answers

Is there a program to decompile Delphi?

Someone just sent me a decompile of a program into C. It was a very good decompile, producing nice, mostly readabe C code (if you overlook the fact that none of the variables or functions had a human-readable name) that mostly looked like it would…
Mason Wheeler
  • 82,511
  • 50
  • 270
  • 477
30
votes
8 answers

how are serial generators / cracks developed?

I mean, I always was wondered about how the hell somebody can develop algorithms to break/cheat the constraints of legal use in many shareware programs out there. Just for curiosity.
Alex. S.
  • 143,260
  • 19
  • 55
  • 62