Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add initial support for LibVMI #55

Closed
wants to merge 5 commits into from

Conversation

chp-io
Copy link
Contributor

@chp-io chp-io commented Jun 22, 2020

Commit cb72f0c is based on the previous work available from bareflank_libvmi_extension which targeted the base Bareflank hypervisor without Boxy.

This previous work was based on the original license used by Bareflank which was LGPL. For reasons stated in Bareflank/hypervisor#724, Bareflank has switched from LGPL to MIT. @boddumanohar , @tklengyel and @ssentanoe , could you please confirm that you agree with this change by writing it in a comment bellow? Thank you :)

chp-io and others added 3 commits May 18, 2020 15:10
This commit is based on the previous work available from
https://github.com/libvmi/bareflank_libvmi_extension
which targeted the base Bareflank hypervisor without Boxy.

With Boxy we gain guest support which allows us to run LibVMI inside a
tiny Linux VM and by the same token allows us to target a Windows host,
which was otherwise not possible before.

3 hypercalls are currently implemented:

- v2p to translate a GVA to GPA
- map_pa to map a page at GPA using EPT
- get_registers (only implements a subset for now)

It currently only works with Linux as Windows produces BSoD of random
error types and will need to be fixed.

Co-authored-by: Manohar Reddy <manohar@esper.io>
Co-authored-by: Tamas K Lengyel <tamas@tklengyel.com>
Co-authored-by: Stewart Sentanoe <stewart.sentanoe@gmail.com>
@ssentanoe
Copy link

I'm fine with it :)

@boddumanohar
Copy link

I agree with this change.

@tklengyel
Copy link

Good to go!

bfvmm/src/hve/arch/intel_x64/vmi/policy_op.cpp Outdated Show resolved Hide resolved
bfvmm/src/hve/arch/intel_x64/vmi/vmi_op.cpp Outdated Show resolved Hide resolved
bfvmm/src/hve/arch/intel_x64/vmi/vmi_op.cpp Show resolved Hide resolved
bfvmm/src/hve/arch/intel_x64/vmi/vmi_op.cpp Outdated Show resolved Hide resolved
@rianquinn
Copy link
Member

@chp-io If needed BTW, since you have a lot of PRs that are coming, please feel free to address these issues in future PRs. So long as we can agree on the changes... I am fine with merging this now, knowing that they will be addressed in future PRs

@chp-io
Copy link
Contributor Author

chp-io commented Jun 24, 2020

@rianquinn You can merge this, I have noted your comments and with my next PR, I'll add commits to remove commented code and non essential debug messages.
Edit:
I've pushed the changes based on your comments. Let me know if that works. I could squash them onto the previous good commit, if you'd like to keep the commit history clean, let me know.

@chp-io
Copy link
Contributor Author

chp-io commented Aug 4, 2020

This PR is outdated. In a new PR I will include the new MicroV implementation used by LibVMI.

@chp-io chp-io closed this Aug 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants