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
89
votes
5 answers

What's a good C decompiler?

I am searching for a decompiler for a C program. The binary is a 32-bit x86 Linux executable. Objdump works fine, so basically I am searching for something which attempts to reconstruct the C source from the asm source.
Sec
  • 7,059
  • 6
  • 31
  • 58
85
votes
5 answers

Stopping at the first machine code instruction in GDB

After loading an executable into gdb, how do I break at the entry point, before the first instruction is executed? The executable I'm analyzing is a piece of malware that's encrypted so break main does absolutely nothing.
rickythefox
  • 6,601
  • 6
  • 40
  • 62
84
votes
9 answers

Tools to help reverse engineer binary file formats

What tools are available to aid in decoding unknown binary data formats? I know Hex Workshop and 010 Editor both support structures. These are okay to a limited extent for a known fixed format but get difficult to use with anything more complicated,…
Mat
  • 82,161
  • 34
  • 89
  • 109
82
votes
4 answers

Sniffing/logging your own Android Bluetooth traffic

I recently bought chinesse device that connects via bluetooth with android phone / tablet. Since there is no application availible for windows / linux I want to create one for personal usage. Usually phone connects to the device and exchanges some…
peku33
  • 3,628
  • 3
  • 26
  • 44
64
votes
10 answers

Is it really impossible to protect Android apps from reverse engineering?

As we know, Android apps are written in Java. In Java, no matter what you do, it is impossible to protect compiled code from decompilation or reverse-engineering, as the Stack Overflow question How to lock compiled Java classes to prevent…
Android Eve
  • 14,864
  • 26
  • 71
  • 96
63
votes
3 answers

How to unzip, edit and zip an android apk

I have an android apk and I deleted my source code and dont have the project again, I want to change the version code of the old apk. my question is how do I unzip and repack the apk so I can use the. am using a mac system. I saw so many things for…
user1662302
62
votes
4 answers

Generate ER Diagram from existing MySQL database, created for CakePHP

For CakePHP application, I created MySQL database. Which tool to be used to create ER Diagram of database? Fields and relations between tables are created in a way cakePHP likes. thank you in advance!
user198003
  • 11,029
  • 28
  • 94
  • 152
55
votes
2 answers

Disassembling A Flat Binary File Using objdump

Can I disassemble a flat binary file using objdump? I'm familiar with disassembling a structured binary executable such as an ELF file using: objdump -d file.elf But if I have a flat binary file that I know is supposed to be loaded at, e.g.,…
Multimedia Mike
  • 12,660
  • 5
  • 46
  • 62
54
votes
7 answers

Compare compiled .NET assemblies?

Are there any good programs out there to compare to compile .NET assemblies? For example I have HelloWorld.dll (1.0.0.0) and HelloWorld.dll (2.0.0.0), and I want to compare differences how can I do this? I know I can use .NET Reflector and use the…
Danny G
  • 3,660
  • 4
  • 38
  • 50
54
votes
2 answers

Why some iphone apps won't finish ssl handshake with Charles Proxy?

I am using Charles Proxy to see all of the traffic that is coming out of my iphone. I have the ssl certificate/profile installed on my iphone and I can see a lot of the traffic that is ssl encrypted. However, some applications seem to not finish the…
Grant Brown
  • 613
  • 1
  • 8
  • 11
53
votes
3 answers

Annotating YouTube videos programmatically

I want to be able to display a normal YouTube video with overlaid annotations, consisting of coloured rectangles for each frame. The only requirement is that this should be done programmatically. YouTube has annotations now, but require you to use…
Louis Brandy
  • 19,028
  • 3
  • 38
  • 29
50
votes
4 answers

What's a good, free serial port monitor for reverse-engineering?

I'm reverse-engineering a serial protocol and getting frustrated by bad tools. Does anyone know of a good, free tool for logging data to/from serial ports on Windows? Requirements: Must be free Must not take control of the port (i.e. must hook the…
Serafina Brocious
  • 30,433
  • 12
  • 89
  • 114
49
votes
7 answers

How to get method signatures from a jar file?

I have a third-party jar file that comes with the javadocs for only part of the API. Is there a way to reverse engineer the jar file to obtain a complete listing of classes and methods?
MCS
  • 22,113
  • 20
  • 62
  • 76
47
votes
6 answers

Entity Framework Core creating model from existing database

With Entity Framework Core, how do you generate the EF model and the entities? According to ASP.NET Core - Existing Database Microsoft article you need to run a command like this one in the Package Manager Console: Scaffold-DbContext…
Dean Kuga
  • 11,878
  • 8
  • 54
  • 108
45
votes
1 answer

"xor eax, ebp" being used in C++ compiler output

I just tried compiling a couple of C++ snippets on VS2010 and analyzed the executables on IDA Pro. Something I noticed is that there most of them have something like the following at the start(shortly after a call to __security_check_cookie) xor…