Introducing Windows Drivers By Writing a Rootkit

I wanted to write an article on kernel mode development but nothing seemed like an interesting idea. That’s when I remembered rootkits exist. Now, we won’t really write anything malicious, but I think it makes for a fun introduction to driver development.

Deserialization Vulnerabilities

C# BinaryFormatter BinaryFormatter is a class available in .NET to serialize an object, or a graph of them, into a binary format. We will create a class that will be serialized and then read back, and another class that won’t be serialized.

Function Hooking (JMP overwrite with trampoline)

This is a continuation of my previous post on DLL injection. Now that we can run code on our process, we might want to change the behavior of some of the software’s functions. To do this, we will do something called function hooking.

Dll injection (CreateRemoteThread technique)

What is DLL injection DLL injection is a way of inserting a dynamic link library into some software whose source code you have no access to, so you can run custom code. Writing an injector Let’s begin with with importing some necessary libraries: