Home
Rayanfam Blog
Cancel

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 ...

Hypervisor From Scratch – Part 4: Address Translation Using Extended Page Table (EPT)

Introduction Welcome to the 4th part of the “Hypervisor From Scratch”. This part primarily involves translating guest addresses through Extended Page Table (EPT) and its implementation. We also ...

Hypervisor From Scratch – Part 3: Setting up Our First Virtual Machine

Introduction This is the third part of the tutorial “Hypervisor From Scratch”. In this part, we’ll continue our journey toward learning hypervisors and how to start creating our custom VMM. In t...

Using Intel's Streaming SIMD Extensions 3 (MONITOR MWAIT) As A Kernel Debugging Trick

Introduction MONITOR and MWAIT are using when the CPU needs to be stopped executing the instruction and enter an implementation-dependent optimized state until some special event happens. MONIT...

Hypervisor From Scratch – Part 2: Entering VMX Operation

Introduction It’s the second part of a multiple series of a tutorial called “Hypervisor From Scratch”. First, please consider reading the first part (Basic Concepts & Configure Testing Envir...

A Tour of Mount in Linux

I had windows 10 installed on my laptop because of serious incompatibility of ROG laptops with Linux and my desire to play some games after years of living in bash! This continued for a year and ...

Hypervisor From Scratch - Part 1: Basic Concepts & Configure Testing Environment

Notice: The Hypervisor From Scratch tutorial is completely revised in August 2022. Codes from all parts are updated, unnecessary details are removed, and new explanations and materials are added ...

x64 Inline Assembly in Windows Driver Kit

As my testing always interferes with running assembly directly in kernel-level and unfortunately Microsoft no longer supports x64 inline assembly through their compilers and as I always have stru...

Inside Windows Page Frame Number (PFN) – Part 2

Hey there, In the previous part, I’d explained about Page Frame Number and its importance in the OSs architecture. In this part, I’ll trace PFN more practically. I strongly recommend to read the...