IntelLabs / IntelLabs/kAFL

kAFL nested setup

Open
#142 1 comment 0 reactions 0 assignees View on GitHub
enhancement help wanted
Dominant language
Makefile
Stars
814
Forks
109
PR merge metrics
No merged PRs in 30d

Description

Supporting kAFL setup in a VM would be helpful for getting started and using remote / shared compute. It seems some processors starting with IceLake server support using PT tracing in the guest:

```
35.5.2.4
Virtualization of Guest Output Packet Streams
Each Intel PT aware guest OS can produce one or more output packet streams to destination addresses specified
as guest physical address using by context-switching IA32_RTIT_OUTPUT_BASE within the guest. The processor
generates trace packets to the physical address specified in IA32_RTIT_OUTPUT_BASE, and those specified in the
ToPA tables. Thus, a VMM that supports Intel PT aware guest OS may wish to virtualize the output configurations
of IA32_RTIT_OUTPUT_BASE and ToPA for each trace configuration state of all the guests.
```

It looks like we have to `modprobe kvm_intel pt_mode=1 nested=1`. CPU support can be identified via MSR:
https://www.spinics.net/lists/kvm/msg236786.html
https://lore.kernel.org/lkml/1540368316-12998-7-git-send-email-luwei.kang@intel.com/

Qemu may also require a change to enable the feature for the guest (`-cpu host,+intel-pt`?)
https://lore.kernel.org/qemu-devel/82D7661F83C1A047AF7DC287873BF1E167EF4877@SHSMSX101.ccr.corp.intel.com/t/

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.