Courses | Technitics ConsultingCourses | Technitics

Reverse Engineering

Overview

Reverse Code Engineering is a core skill set that has tremendous advantages in almost all fields related to Information Security. The assessment aim is to ensure that the person has thorough understanding of the system & an In-Depth knowledge of its architecture. This area also serves as a foundation for other specialty subjects like Malware Analysis and Exploit writing.

Pre-requisites

Programming experience. Assembly Language knowledge. Understanding of common executable file formats / Debugging Concepts. Expertise in Reverse Code Engineering on either Windows or Linux Architecture. Good knowledge of reversing Packed / Protected applications.

Reverse Engineering Boot-camps

You can attend in-depth penetration testing boot-camps offered by ISAC approved partners.

Program Overview:

At the end of the program, candidate will be able to:

Pre-requisite

Basic knowledge of C, C++ programming - 6 months

Program contents:

Assembly Language Fundamentals

Assembly Language overview
Introduction to Instructions
Data Representation
The Stack segment & Push & pop Instructions

Windows Internals

Stacks, Heaps and Data sections
Kernel vs. User memory
Virtual Memory and Paging

Reversing basics

Foundations of Reversing
Program Structure
Defining the Win32 API
Introduction to tools used
Debugger: Ollydbg - Indepth

Disassembling

Understanding the disassembly
Using a disassembler
Program appearance and settings
Working with dynamic link libraries
Modifying Code, Data and Registers

Debugging

Understanding Breakpoints
Identifying program structures
Introduction to IDA pro
Using OllyDbg

Getting on the battlefield

Sysinternal Tools
Cracking VB Applications
Cracking Delphi Applications
Cracking C/ C++ Applications
Walkthrough of cracking a commercial application
Different Approaches

Dot Net Cracking

Ground Rules
Reversing .NET - Part 1 - Introduction
Reversing .NET - Part 2 - Byte Patching
Reversing .NET - Part 3 - Advanced Patching

Java Reversing

Java based Application architecture
Byte Code
JVM
Concepts of decompiling
Cracking mobile applications

Secure Coding Principles

Development process
Top 10 secure coding practices
Writing secure code

Lab exam blueprint

The Lab Exam's goal is to help us get an In-Depth Analysis of the candidate's understanding of Reverse Code Engineering concepts. A sample Crackme will be provided for both Windows as well as Linux. Your objective will be to write key-generators for both of them.

Hands-on recommended

Expected Solution Format

At the end of the lab exam, the candidate must submit a report that explains how exactly the Reversing Challenge was solved. Its expected to be as technical as possible with every single detail mentioned. Report must include:-
  1. Tools used.
  2. The problems that you faced.
  3. Your approach to solve the problems.
  4. Source-code of the keygen.
You will be given an answer paper on which the above details have to be provided.