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
1
vote
0 answers

Frida hooking into custom constructor encountering errors (Expected a Pointer) [Android]

I am trying to hook into a constructor that initialises a couple of interfaces, along with other objects. My Frida script is as such: Java.perform(function(){ Java.scheduleOnMainThread(function(){ var Vid =…
vificatem
  • 11
  • 2
1
vote
1 answer

receive discord messages in pure, browser-based javascript?

(NOTE: this first section kinda just gives context, not too relevant to the message-receive thing, but again, it sets up some context that might help) So, I know i need to use a WebSocket to connect to it somehow. After a little bit of reverse…
1
vote
1 answer

Reverse engineer of APC UPS serial protocol

I have a APC SMC1000-2UC UPS device that has a serial port to connection. The serial port protocol seems that is based on microlink protocol which has not documented. I monitored the communication of the UPC and PC witch UPS deriver has been…
Ho3in
  • 11
  • 2
1
vote
0 answers

Binary Bomb Lab Phase 6 Wrong Node Order

So in this stage of the binary bomb lab, I have figured out that the input must take 6 non repeating integers . 0x56557a7c <+0>: endbr32 0x56557a80 <+4>: push %ebp 0x56557a81 <+5>: push %edi 0x56557a82 <+6>: push %esi …
Gope S.
  • 11
  • 3
1
vote
1 answer

Question marks in ghidra DAT_*

I disassembled a jni .so file(the native part of an android application) and I decompiled one of its function in ghidra. I saw a DAT_* in a part of decompiled code and when I double clicked on that ghidra show me only question marks. What should I…
mahdi bigdely
  • 23
  • 1
  • 3
1
vote
1 answer

What does __isoc99_sscanf() do?

Here's the lines of code in C: void func_g(undefined4 pmt1) { int amt, elmt1; uint elmt3[3]; amt = __isoc99_sscanf(pmt1, "%d %d", elmt1, &elmt3); return; } What __isoc99_sscanf trying to do?
adlofMerlin
  • 79
  • 10
1
vote
1 answer

What File Format Has This Magic Header?

I've got a bunch of files that from metadata I can tell are supposed to be PDFs. Some of them are indeed complete PDFs. Some of them appear to be the first part of a PDF file, though they lack the %%EOF and other footer values. Others appear to be…
Hammer Bro.
  • 965
  • 1
  • 10
  • 23
1
vote
1 answer

DBI Frida Stalker is not tracing instructions

Let me start by saying that I'm new to Frida, so I might be doing a noobish mistake. I'm trying to "stalk" a simple while loop and print the instructions using a transformer. My target.c file looks like below // target.c #include void…
Eddie Staniloiu
  • 163
  • 1
  • 7
1
vote
0 answers

Build ER-diagram from an existing database

How can I build the ER-Diagram from a database. I am using PostgreSQL and pgAdmin3 on Linux.
Mahesh
  • 6,378
  • 2
  • 26
  • 35
1
vote
0 answers

how to apply constraints to heap side effects in angr

I'm trying to use angr to verify a function's behavior by deriving the correct input for a given result. The function modifies a buffer, in this case it simply copies the input to it, so I set up symbolic variables on the heap that I apply an…
ragingSloth
  • 1,094
  • 8
  • 22
1
vote
2 answers

Can Ghidra re-compile and run a short function?

I've picked out a short and "self-contained" function from the Ghidra decompiler. Can Ghidra itself compile the function again so I can try to run it for a couple different values, or would I need to compile it myself with e.g. gcc? Attaching the…
Anna
  • 2,645
  • 5
  • 25
  • 34
1
vote
1 answer

Setting a member in current class using Frida

I am hooking a certain function in Frida which uses the code: this.carrier.getId() However, at this point in time this.carrier has not been set yet, which causes the app to crash. So I am thinking of manually setting this member in the current…
toothpick
  • 113
  • 18
1
vote
0 answers

how can i find the source code of a chip/piece of hardware?

I was wondering: how can i analize the source code of a chip or any programmed piece of hardware? for example people who managed to find a 0day in the old version of nintendo switch; how did they find the code to analyze and find the bug? i would…
jakydibe e
  • 11
  • 1
1
vote
1 answer

Function is unhookable by Frida

I have the following Java code and I'm trying to hook the getTimeZone function: package com.myapp.models; public class User { private String timeZone; public void setTimeZone(String str) { this.timeZone = str; } public…
toothpick
  • 113
  • 18
1
vote
0 answers

Android Application Reverse Engineering BLE ScanSettings/AdvertiseSettings

I have been working on a reverse engineering project for a particular android application and I have come across some interesting methods which I can not find any documentation for. This application uses the Android Bluetooth Low Energy API which…
Brum
  • 19
  • 4