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.
3405 questions
808
votes
33 answers

How to avoid reverse engineering of an APK file?

I am developing a payment processing app for Android, and I want to prevent a hacker from accessing any resources, assets or source code from the APK file. If someone changes the .apk extension to .zip then they can unzip it and easily access all…
sachin003
  • 8,573
  • 4
  • 19
  • 23
736
votes
17 answers

decompiling DEX into Java sourcecode

How can one decompile Android DEX (VM bytecode) files into corresponding Java sourcecode?
Will
  • 68,898
  • 35
  • 156
  • 231
502
votes
37 answers

Protect .NET code from reverse engineering?

Obfuscation is one way, but it can't protect from breaking the piracy protection security of the application. How do I make sure that the application is not tampered with, and how do I make sure that the registration mechanism can't be reverse…
Priyank Bolia
  • 12,942
  • 13
  • 57
  • 81
441
votes
16 answers

How to generate UML diagrams (especially sequence diagrams) from Java code?

How can I generate UML diagrams (especially sequence diagrams) from existing Java code?
Jonathan
  • 7,221
  • 5
  • 26
  • 35
414
votes
14 answers

Best practice for storing and protecting private API keys in applications

Most app developers will integrate some third party libraries into their apps. If it's to access a service, such as Dropbox or YouTube, or for logging crashes. The number of third party libraries and services is staggering. Most of those libraries…
Basic Coder
  • 9,053
  • 5
  • 39
  • 71
367
votes
29 answers

List of all index & index columns in SQL Server DB

How do I get a list of all index & index columns in SQL Server 2005+? The closest I could get is: select s.name, t.name, i.name, c.name from sys.tables t inner join sys.schemas s on t.schema_id = s.schema_id inner join sys.indexes i on i.object_id =…
Anton Gogolev
  • 107,051
  • 37
  • 191
  • 278
267
votes
8 answers

How do I decompile a .NET EXE into readable C# source code?

I wrote a C# application for a client a couple of years ago, but I no longer have the source code. All I have is the EXE that I deployed on the client's PC. Is there a way I can generate C# source code from the EXE?
MusiGenesis
  • 71,592
  • 38
  • 183
  • 324
205
votes
4 answers

Generate UML Class Diagram from Java Project

Is there a good tool that can help to reverse engineer Java classes to UML that will show an overview of how my classes are related to each other? It doesn't need to decompile from JAR file because I have the sources. I know there are quite a few…
Carven
  • 12,832
  • 24
  • 97
  • 139
157
votes
18 answers

How do you determine what technology a website is built on?

Quite often I come across a nice looking or functional website, and wonder what technology was used to create it. What techniques are available to figure out what a particular website was built with? Few frameworks seem to include any kind of…
Mat
  • 67,636
  • 33
  • 83
  • 106
152
votes
6 answers

What is the iBeacon Bluetooth Profile

I'd like to create my own iBeacon with some Bluetooth Low Energy dev kits. Apple has yet to release a specification for iBeacons, however, a few hardware developers have reverse Engineered the iBeacon from the AirLocate Sample code and started…
PaulWoodIII
  • 2,542
  • 6
  • 28
  • 33
124
votes
5 answers

Is there a C++ decompiler?

I have a program in which I've lost the C++ source code. Are there any good C++ decompilers out there? I've already ran across Boomerang.
Bryan Denny
  • 26,451
  • 32
  • 103
  • 124
97
votes
1 answer

What's the purpose of this [1] at the end of struct declaration?

I was snooping through my MSP430 microcontroller's header files, and I ran into this in : /* r3 does not have to be saved */ typedef struct { uint32_t __j_pc; /* return address */ uint32_t __j_sp; /* r1 stack pointer */ …
Alexander
  • 48,074
  • 8
  • 78
  • 121
94
votes
10 answers

How can I find the data structure that represents mine layout of Minesweeper in memory?

I'm trying to learn about reverse engineering, using Minesweeper as a sample application. I've found this MSDN article on a simple WinDbg command that reveals all the mines but it is old, is not explained in any detail and really isn't what I'm…
KingNestor
  • 59,315
  • 50
  • 115
  • 149
90
votes
11 answers

Google's Imageless Buttons

There have been a few articles recently about Google's new imageless…
MikeN
  • 39,649
  • 47
  • 142
  • 222
87
votes
6 answers

How can I protect MySQL username and password from decompiling?

Java .class files can be decompiled fairly easily. How can I protect my database if I have to use the login data in the code?
Jakob Cosoroaba
  • 1,638
  • 3
  • 23
  • 32
1
2 3
99 100