Introduction Hi guys, Welcome to the 8th part of the Hypervisor From Scratch. If you reach here, then you probably finished reading the 7th part, and personally, I believe the 7th part was the ...
Hypervisor From Scratch – Part 7: Using EPT & Page-Level Monitoring Features
Introduction This is the 7th part of the tutorial Hypervisor From Scratch, and it’s about using the Extended Page Table (EPT) in an already running system. As you might know, paging is an essent...
Reversing Windows Internals (Part 1) - Digging Into Handles, Callbacks & ObjectTypes
Introduction Welcome to the first part of a series of posts about Exploring & Reversing Windows Concepts and Internals. If you reach here then you’re probably a security researcher or a prog...
Why you should not always trust MSDN: Finding Real Access Rights Needed By Handles
Introduction Hi guys, The title of this topic is somehow weird, if you think everything in MSDN is 100% match with what Microsoft implemented in Windows (like what I used to think), you’re defi...
Hypervisor From Scratch – Part 6: Virtualizing An Already Running System
Introduction Hello and welcome to the 6th part of the tutorial Hypervisor From Scratch. In this part, I try to give you an idea of how to virtualize an already running system using Hypervisor. L...
PacketScript overview: A Lua scripting engine for in-kernel packet processing
As I was surfing the net, trying to find a way to prototype network protocols or features in Linux. I stumbled upon PacketScript. PacketScript is the an implementation of the Lua VM inside Linux...
Call Gates' Ring Transitioning in IA-32 Mode
Have you ever thought how transitions between different rings performed? Well, SYSENTER & SYSCALL used in modern OSs for transitioning between ring 3 to ring 0 but if there are other rings, ...
Hypervisor From Scratch – Part 5: Setting up VMCS & Running Guest Code
Introduction Hello and welcome back to the fifth part of the “Hypervisor From Scratch” tutorial series. Today we will be configuring our previously allocated Virtual Machine Control Structure (V...
VmcsAuditor - A Bochs-Based Hypervisor Layout Checker
Introduction If you’ve ever had experience with developing your own hypervisor from scratch then you definitely faced with the problems of layout checking. What makes it hard to develop a hyperv...
Start linux kernel module development!
Hi everyone! In this post I’m going to introduce you to the world of linux kernel module development. I am a newcomer in this field myself but I decided to document everything in this blog as I ...