Repo ini menyertakan kode untuk proyek VeriSMo.
tools/ : termasuk alat dan skrip pemverifikasi dan kompiler.
deps/ : termasuk paket hacl
sumber/ : kode verismo
sumber/verismo : kode terverifikasi untuk verismo
source/verismo_main : bin utama yang dapat dieksekusi, yang hanya mendefinisikan penangan panik Rust yang belum terverifikasi.
sumber/verismo/src/arch : model
source/verismo/src/entry.s : kode perakitan kecil dan belum terverifikasi.
source/target.json : konfigurasi target
Pertama, Pasang rantai alat karat;
tools/install.sh
Kemudian, buat alat dan dependensi verus, verus-rustc (menggantikan rustic) dan igvm.
tools/activate.sh
Sekarang, jalankan pemeriksaan verifikasi dan buat binernya.
? Langkah ini memakan waktu beberapa menit.
Berlari
make verify
atau
cd source/verismo_main; cargo verify --release;
cd source/verismo; verismo_VERUS_ARGS="--verify-module security::monitor" cargo verify --release;
Hasil yang terverifikasi sepenuhnya seharusnya memiliki "verifikasi": 2138, "kesalahan": 0,
Jika tidak ada perubahan yang dilakukan pada source/verismo
, kami menyarankan untuk membangun tanpa verifikasi untuk mempercepat proses pembangunan.
make debugbuild
atau
cd source/verismo_main; cargo build --feature noverify --release;
make
atau make verify
) Unduh submodul linux: git submodule update --init richos/snplinux
Bangun OS dan driver tamu: make fs -f Makefile.default
Jalankan sh source/target/target/release/verismo/igvm.sh
untuk menghasilkan verismo dalam format IGVM untuk Hyper-V: source/target/target/release/verismo/verismo-rust.bin
Jalankan make fs
untuk menghasilkan file vhdx sebagai sistem file untuk VM: richos/test-fs/verismo.vhdx
Perangkat keras: Mesin AMD SEV-SNP.
OS: Windows dengan Hypervisor dirilis setelah 20230909. Rilis sebelumnya mungkin tidak mendukung interupsi terbatas di kedua VMPL sehingga tidak akan berfungsi.
Opsional: Mesin Debug dengan OS windows.
Pindahkan file berikut ke mesin AMD SEV-SNP Anda.
source/target/target/release/verismo/verismo-rust.bin
richos/test-fs/verismo.vhdx
tools/vm/*
build-vm.ps1 verismo verismo-rust.bin None verismo.vhdx
start-vm verismo
Akses GUI tidak didukung dan Anda perlu menggunakan ssh untuk masuk ke OS tamu.
Verismo.vhdx menyertakan proses init yang akan membuka layanan sshd tanpa kata sandi.
Tunggu sebentar sebelum menghubungkan.
ssh [email protected]
Setelah tamu di-boot, ia telah berbicara dengan VeriSMo untuk mengaktifkan AP dan memperbarui izin halaman selama booting.
Di dalam guest, kami juga menyediakan driver verismo dan beberapa tes, untuk berbicara langsung dengan VeriSMo jika Anda mau.
verismo.ko: pengemudi
decode_report: menampilkan laporan biner ke format yang dapat dibaca.
test.sh: skrip pengujian
cd verismo insmod verismo.ko sh test.sh
Lihat debug jarak jauh windows untuk mengaktifkan debug host dan hypervisor. Log boot VeriSMo tidak dapat diakses dari OS tamu.
Di source/.cargo/config.toml, kami mengganti rusticc dengan verus-rustc. verus-rustc akan memanggil verus
untuk mengkompilasi vstd
(perpustakaan verus), paket verismo
dan verismo-main
, dan memanggil rustc
untuk mengkompilasi semua paket lainnya (hacl, core, dll.).
Lihat source/verismo/build.rs
noverify: membangun sumber tanpa verifikasi
verifikasimodule: jika ${VERUS_MODULE} tidak kosong, verifikasi modul yang ditentukan saja.
Tergantung pada cfg(debug_assertations) Mode debug mencetak pesan tambahan untuk tujuan debug melalui leak_debug; Mode rilis menghapus semua informasi leak_debug atau debug;
Proyek ini menyambut baik kontribusi dan saran. Sebagian besar kontribusi mengharuskan Anda menyetujui Perjanjian Lisensi Kontributor (CLA) yang menyatakan bahwa Anda berhak, dan memang benar, memberi kami hak untuk menggunakan kontribusi Anda. Untuk detailnya, kunjungi https://cla.opensource.microsoft.com.
Saat Anda mengirimkan permintaan tarik, bot CLA akan secara otomatis menentukan apakah Anda perlu memberikan CLA dan menghiasi PR dengan tepat (misalnya, pemeriksaan status, komentar). Cukup ikuti instruksi yang diberikan oleh bot. Anda hanya perlu melakukan ini sekali di seluruh repo menggunakan CLA kami.
Proyek ini telah mengadopsi Kode Etik Sumber Terbuka Microsoft. Untuk informasi lebih lanjut lihat FAQ Pedoman Perilaku atau hubungi [email protected] jika ada pertanyaan atau komentar tambahan.
Proyek ini mungkin berisi merek dagang atau logo untuk proyek, produk, atau layanan. Penggunaan resmi atas merek dagang atau logo Microsoft tunduk dan harus mengikuti Pedoman Merek Dagang & Merek Microsoft. Penggunaan merek dagang atau logo Microsoft dalam versi modifikasi proyek ini tidak boleh menimbulkan kebingungan atau menyiratkan sponsor Microsoft. Segala penggunaan merek dagang atau logo pihak ketiga tunduk pada kebijakan pihak ketiga tersebut.