年關將近,最近繼續在整理舊書,偶然間翻到了一本放了很久的舊書 OrangeOS's 一個作業系統的實現。
在Windows 10 系統中,想試試它的範例,發現 a.img 檔案複製不過來,覺得十分奇怪。
出現的路徑剛好是範例1的Hello World boot.asm 所對應的檔案 a.img
程式碼
/Dev/orangeos/chapter1/a$ make qemu-img create -f raw a.img 1440k Formatting 'a.img', fmt=raw size=1474560 mkfs.msdos -s 1 a.img mkfs.fat 3.0.28 (2015-05-16) nasm boot.asm -f bin -o boot.bin dd if=boot.bin of=./a.img bs=512 count=1 1+0 records in 1+0 records out 512 bytes copied, 0.000185582 s, 2.8 MB/s |
被偵測到有問題的boot.asm 範例
org 07c00h mov ax, cs mov ds, ax mov es, ax call DispStr jmp $ DispStr: mov ax, BootMessage mov bp, ax mov cx, 16 mov ax, 01301h mov bx, 000ch mov dl, 0 int 10h ret BootMessage: db "Hello, OS world!" times 510-($-$$) db 0 dw 0xaa55 |
通Defender 偵測的 boot.asm 範例
測試 ghaiklor 的 Simple boot sector with Hello World 範例編譯沒有問題source: https://gist.github.com/ghaiklor/89e243a3463569480d01188c9e55e077
執行編譯OK的Hello World
Windows 10 pro with qemu / make tools installed by choco
小結
比較程式的差異,通Defender 偵測的 boot.asm 範例,是比較好的寫法,有做處理停止中斷及結束。
看到偵測有病毒檔案訊息,先不用緊張,確認問題點,調整一下寫法,就可避開 Defender 誤偵測,繼續快樂的作業系統程式開發與研究囉!
看到偵測有病毒檔案訊息,先不用緊張,確認問題點,調整一下寫法,就可避開 Defender 誤偵測,繼續快樂的作業系統程式開發與研究囉!
延伸閱讀:
- Chocolatey是一個Windows下類似OSX brew 的軟體套件管理工具
- NASM - The Netwide Assembler 英文使用手冊
- 在Mac OS X上編繹BenOS並使用Qemu執行
- 讀"Orange's 一個作業系統的實現"的心得
沒有留言:
張貼留言