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
23
votes
1 answer

How does Discord hook into a specific process's audio?

Going through Google search results, there is no widely known way to capture audio from a specific application on Microsoft Windows, at least without having to resort to workarounds such as sending audio from one process to a separate virtual audio…
Manchineel
  • 329
  • 2
  • 7
23
votes
4 answers

free UML sequence diagram reverse engineering eclipse plugin working out of the box - does such a thing exist?

I tried (though not very comprehensively) numerous solutions including ModelGoon (only class and interaction diagrams available), ObjectAid (class diagram only), eUML free edition (quits with an ominous "license not found" error on first use),…
kostja
  • 60,521
  • 48
  • 179
  • 224
23
votes
8 answers

Hexdump reverse command

The hexdump command converts any file to hex values. But what if I have hex values and I want to reverse the process, is this possible?
maysara
  • 5,873
  • 2
  • 23
  • 34
22
votes
5 answers

Deciphering MMORPG Protocol Encoding

I plan on writing an automated bot for a game. The tricky part is figuring out how they encoded their protocol... To make the bot run around is easy, simply make the character run and record what it does in wireshark. However, interpreting the…
Zombies
  • 25,039
  • 43
  • 140
  • 225
22
votes
10 answers

Is there such a thing as a javascript deminifier (deobfuscator)?

This question is exactly the opposite of Which Javascript minifier (cruncher) does the same things that the one Google uses for its JS APIs? I want to learn how google does it's loading so I can build my own with non-popular JS toolkits.
Jorge Vargas
  • 6,712
  • 7
  • 32
  • 29
22
votes
2 answers

How hard to reverse engineer .pyd files?

After reading How do I protect Python code? , I decided to try a really simple extension module on Windows. I compiled my own extension module on Linux before, but this is the first time I compiled it on Windows. I was expecting to get a .dll file,…
yasar
  • 13,158
  • 28
  • 95
  • 160
21
votes
11 answers

How would I reverse engineer a cryptographic algorithm?

I wrote an application that encrypts text in this way: Get the input text Reverse the text Convert to hexadecimal XOR with a key Base64 encode Now, I didn't do a lot of encryption/encoding myself, so my question might sound stupid, but, say I get…
Alexandru Luchian
  • 2,760
  • 3
  • 29
  • 41
21
votes
6 answers

Edit (patch) a binary file in IDA Pro

i would like to know how to edit a binary file in ida pro (i just need to change one instruction!) (its ARM binary) thanks
lol
  • 3,910
  • 2
  • 37
  • 40
21
votes
2 answers

analysing packed file of unknown format, how to continue?

Im interested in taking a deeper look into the firmware of my Behringer X32 mixing console, so i downloaded the actual file from (http://www.behringerdownload.de/X32/X32_Firmware_2.10.zip) and started IDA pro. The contained .update-file inside…
rhavin
  • 1,512
  • 1
  • 12
  • 33
21
votes
6 answers

Best way to inject functionality into a binary

What would be the best way of inserting functionality into a binary application (3d party, closed source). The target application is on OSX and seems to have been compiled using gcc 3+. I can see the listing of functions implemented in the binary…
Moe
21
votes
2 answers

What exactly does _malloc do in assembly?

public main main proc near push ebp mov ebp, esp and esp, 0FFFFFFF0h sub esp, 30h mov dword ptr [esp], 8 ; size call _malloc mov [esp+2Ch], eax mov dword ptr [esp+4], 4 mov eax, [esp+2Ch] mov [esp], eax call …
user3089458
  • 233
  • 1
  • 2
  • 6
20
votes
1 answer

How to access Chrome's online bookmarks?

Google Chrome allows you to sign in with your Google account to sync bookmarks and settings. Those bookmarks are then stored along with my account on their servers. I want to create another client for the bookmarks. Please note that I am not…
danijar
  • 32,406
  • 45
  • 166
  • 297
19
votes
3 answers

Reverse Engineer a File Format

This is my first attempt at reverse engineering, and really, I don't know how to go about it. I have a procedural kind of mind and no foundation of knowledge on popular encryption methods. But, it seems to me, if I have the very minimum data in the…
Markus
  • 689
  • 1
  • 7
  • 14
19
votes
8 answers

Where is Reverse Engineering used?

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…
n00ki3
  • 14,529
  • 18
  • 56
  • 65
19
votes
1 answer

What's the difference between 'push' and 'pushq' in at&t assembly

I've recently started my quest of obtaining a greater understanding as to how my computer works. My question is in regards to the differences between push and pushq. I'm aware that push writes a value to the stack and my assumption is that pushq…
user6090272