Getting Started

Install IRPT

Installation requires multiple components, some of which can depend on Internet connectivity and defaults of your distribution or version. It is recommended to install step by step.

1git clone irpt
2cd ~/irpt
3./install.sh deps     # check platform and install dependencies
4./install.sh perms    # allow current user to control KVM (/dev/kvm)
5./install.sh qemu     # git clone qemu-pt and build Qemu
6./install.sh linux    # git clone kvm-pt and build Linux

It is safe to re-execute any of these commands after failure, for example if not all dependencies could have been downloaded.

1./install.sh note

The final step does not automatically install the new Linux kernel but only gives some default instructions. Install according to your preference/distribution defaults, or simply follow the suggested steps above.

1$ sudo reboot
2$ dmesg|grep VMX
3[VMX-PT] Info:   CPU is supported!

After reboot, make sure the new kernel is booted and PT support is detected by KVM. You must set the correct path to the Qemu binary in kAFL-Fuzzer/irpt.ini.

1python irpt.py

Launch irpt.py to get a help message with the detailed list of parameters

Setting QEMU

Before you launch irpt.py, you should be take a snapshot of QEMU with loader.exe. It is a file to load a target driver and agent.exe.

1~/irpt/targets/compile_loader.sh

If you prepare the binary in targets/bin/loader.exe, you can launch vm.py to take a snapshot of Qemu.

1python vm.py

Launch vm.py to get a help message with the detailed list of parameters:

Caution!
Snapshot mode is not available to access internet. You can launch vm.py with boot mode and download the binary inside the Qemu first.