20 lines
732 B
Rust
20 lines
732 B
Rust
mod kvm;
|
|
mod mem;
|
|
mod qemu;
|
|
|
|
fn main() {
|
|
let vm = qemu::find_windows_vm().expect("no quickemu Windows VM found");
|
|
println!("[+] pid={} vm_fd={} vcpu_fds={:?}", vm.pid, vm.vm_fd, vm.vcpu_fds);
|
|
|
|
let sregs = kvm::get_sregs(vm.vcpu_fds[0]).expect("KVM_GET_SREGS failed");
|
|
println!("[+] vcpu0 CR3={:#018x}", sregs.cr3);
|
|
|
|
let regs = kvm::get_regs(vm.vcpu_fds[0]).expect("KVM_GET_REGS failed");
|
|
println!("[+] vcpu0 RIP={:#018x} RSP={:#018x}", regs.rip, regs.rsp);
|
|
|
|
let guest = mem::GuestMem::attach(vm.pid).expect("failed to map guest RAM");
|
|
for r in &guest.regions {
|
|
println!("[+] mem region GPA {:#010x}..{:#010x} (HVA {:#010x})",
|
|
r.gpa_base, r.gpa_base + r.size, r.hva_base);
|
|
}
|
|
}
|