Developing a Windows exploit
Attackers must have a fair understanding of the assembly language to develop custom exploits. In this section, we will cover some basics that are required to develop a Windows exploit by building ourselves a vulnerable application.
From the exploit development perspective, the following is a list of basic terms that penetration testers must understand in developing an exploit:
- Registers: All the processes execute via registers, it is used to store the information.
- x86: This includes 32-bit systems mostly Intel-based; 64-bit systems are represented as x64.
- Assembly language: This includes a low-level programming language.
- Buffer: This is a static memory holder in a program that stores data on top of the stack or heap.
- Debugger: Debuggers are the programs that can be utilized to see the run-time of a program while executing and also to look at the state of registry and memory. Some of the tools that we will be using are immunity debuggers, GDB, and ollydbg.
- ShellCode...