[GUIDE] Reverse Engineering - Very Brief Overview

thebotmaker

Supreme Member
Jr. VIP
Joined
Oct 11, 2018
Messages
1,231
Reaction score
1,045
This is a helpful overview I received while looking into the subject.

As I explore the field more, this will be updated and I'll show you how to reverse engineer websites and possibly apps as well.

Reverse Engineering is actually a broad subject. Here are a few relevant subcategories I can think of.

Web-based reverse engineering:
Typical for figuring out most modern antibots. Generally involves deobfuscating JavaScript, understanding API calls (both web and library based), and identifying web frameworks used by a site (helpful for identifying common vulnerabilities).

Binary reverse engineering:
More of my specialty. Reverse engineering binary executables and shared objects / dynamically linked libraries, disassembling the object code and either instrumenting them, modifying them, or just understanding how parts of the code works, (perhaps a crypto routine or something proprietary). At this level you can also find vulnerabilities in code implementations. This is pretty powerful because most of these vulnerabilities are in the zero-day category since they are difficult to find.

Mobile Reverse Engineering:
Focusing on code written for mobile platforms, generally iOS and Android. Android apps are distributed via APK and take the form of Java/Smali code (pretty easy to reverse). iOS apps tend to be written in something proprietary such as Objective-C or Swift. They aren't necessarily more difficult, but the Apple ecosystem is unique and you'll need to understand it before jumping into iOS reversing. APK/Android reversing is pretty straightforward in my opinion.

Digital Forensics:
Admittedly it's own category distinct from traditional reverse engineering, but these techniques are commonly used by reverse engineers: Network traffic analysis, Memory analysis, File analysis (secondary storage mediums). Analyzing the network traffic of an application can provide key insights into the control flow of the app, as well as how remote services it uses are defined. Dumping memory of a live process can give insights into decrypted data, crypto keys, or anything interesting that is only available during runtime. File analysis can get into binary reverse engineering, but in general it's the practice of decrypting, decompressing, or decoding binary data to extract something useful (such as raw data or an executable).

Cryptography:
Another subject worthy of its own category, but understanding modern crypto systems is extremely useful when reverse engineering an app that uses cryptography to hide data you are interested in. I've needed to reverse engineer proprietary crypto routines written by antibot vendors so I can send my own crafted payloads using their crypto scheme, so this is very relevant to reverse engineering in general.

The list goes on but I'd consider some of the more specific applications of reverse engineering that you'd like to start with, then research that. I can give you a few places to start if interested. If you are entirely unsure, just start with the web stuff and see if you can make sense of a simple antibot.

Upcoming Guides​


Reverse engineering websites - I'll start with a simple example
 
Great thread, looking forward for the guide
 
I want to post. Since I am "so interested". Thanks for the share @thebotmaker . I hit the like button as well. Reverse engineering seems like something cool to learn. Eager to see what your upcoming guides have to say..
 
Thank you for the intro, waiting for Web-based reverse engineering as I have a lot of js files that I need to read
 
I really need to remove ssl pinning for the craigslist app...if you could help me with that, I'd be more than appreciative..I wanna see the requests being sent
 
Mobile reverse engeneering being my field, looking forward to expanding what I know..never hurts to add more know
 
Back
Top