Reverse engineering

Reversing Switch Statements

Introduction In this article we'll take a look at all the optimizations the compilers use to assembly the high-level switch statements into their assembly re

Introduction to SoftICE

It's often the case that we need to debug a kernel application, like device driverS, system calls, interrupt routines, or some other kernel application. In t

Cracking the Defender: The Deobfuscated Code

Introduction So far we've taken a look at the obfuscation routine and how it deobfuscates the instructions in the loc_4033D1. At the beginning point, the ove

Reversing Loops

Introduction Every program nowdays contains branch statements where the decision making happens and loops where we're repeating some piece of code. Obviously

IDA program patching

It's not a rare occurrence when we want to load a binary executable in a debugger, change some bytes and then save the changed binary to a hard drive, making

Linear sweep vs recursive disassembling algorithm

We know that there are two ways of disassembling a binary executable into its assembler instructions. The first technique is linear sweep algorithm and the s

Anti-debugging: Detecting system debugger

In the previous tutorial, we've talked about techniques that harden the reverse engineering of the executable and then we looked at anti-debugging techniques

Unpacking, reversing, patching

This article is an introduction of packing, how to unpack, to reverse an exe and finally patching it. I have chosen to show reversing of a sample exe file an

IDA Pro Configuration Options

Configuration Files We know that some of the Ida's settings are saved in the .idb archive database files, but are not actually persisted across global Ida se

IDA Pro: IDC, SDK and Remote Debugging Overview

In this article, we won't be going too deep into Ida scripting. Instead, we'll present what an IDC is and how it can be used to enhance the capabilities of I