若想防止特定 EXE 程式讀取電腦底層資料(如磁碟序號、BIOS 序號、MAC 地址、硬碟磁道等),**最簡單且徹底的方法是使用虛擬機(VMware Workstation、VirtualBox、Hyper-V)運行該程式**。
| 方案 | 缺點 |
|---|---|
| 只允許載入 DLL、封鎖 EXE | Windows 核心機制不支援「只載入 DLL 不執行 EXE」;系統本身靠 EXE 運行,強行封鎖會導致系統無法運作。 |
| API Hook / 用戶態攔截 | 僅能攔截已知 API(如 GetVolumeInformation、GetAdaptersInfo),無法涵蓋所有取得硬體資訊的途徑(WMI、SMBIOS 直接讀取、驅動通訊等),且易被繞過。 |
| 核心驅動過濾 | 開發難度極高,需簽名驅動,風險大,不建議一般用戶嘗試。 |
| 沙箱工具 | 如 Sandboxie、Firejail,隔離層級低於虛擬機,部分硬體資訊仍可讀取。 |
虛擬機雖佔用較多資源,但以「零代碼修改、完全隔離、通用性強」三大優勢,成為阻止 EXE 獲取真實底層資料的最佳實踐。