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:
- Understand different aspects of application security
- Learn different approaches for Reverse Engineering and Application
- Learn anti-cracking techniques
- Get a strong foundation in dealing with new Malwares and gain expertise to analyze it
- Create secure code for internal use that cannot be easily hacked.
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
- Hex-Editors
- PEiD
- ImpRec
- LordPE
- OllyDbg / IDA Pro / Immunity Debugger or any other debugger of your choice along with the necessary plugins.
- Decompilers like .NET Reflector & its plugins / JAD & so on.
- gdb along with any other tools you might require for Linux RCE.
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:-
- Tools used.
- The problems that you faced.
- Your approach to solve the problems.
- Source-code of the keygen.
You will be given an answer paper on which the above details have to be provided.