该脚本旨在帮助你创建模板,这些模板可与 VirtualBox 配合使用,使虚拟机检测变得更加困难。
我最早在 2012 年发表了关于此主题的文章,之后不定期更新。博客格式可能并不是发布信息的最佳方式,有些人确实基于这些内容制作了简洁且“易于应用”的脚本。
为了更方便地添加新内容,我决定也采用同样的做法。
此脚本的目的是利用现有设置,而不修改 VirtualBox 的底层。确实有人通过修补 Virtualbox 实现了非常巧妙的功能,但这超出了本脚本的范围。我认为这种方法有其优点,因为它(希望)不会随着每个 VirtualBox 新版本的发布而失效。 随着时间的推移,我还加入了一些并非直接与虚拟机相关的内容,而是恶意软件用于指纹识别安装环境的东西,希望你不会介意……
主脚本将创建以下文件:
sudo apt install python3-pip libcdio-utils acpica-tools mesa-utils smartmontoolssudo pip3 install -r requirements.txtwget https://download.sysinternals.com/files/VolumeId.zip https://www.nirsoft.net/utils/devmanview-x64.zip(x64 版本)。hostname > computer.lst,whoami > user.lst。如果要为虚拟机使用不同的机器名和用户名,请修改这些文件(建议在文件中填充一长串用户名和计算机名)。sudo python3 antivmdetect.pysudo chmod a+x xxxxx.sh/bin/bash xxxxx.sh my-virtual-machine-name将批处理脚本(xxxx.ps1)移动到新安装的客户机中。
在客户机内部运行该批处理脚本。请记住,大多数被修改的设置都会在每次重启后恢复。因此,如果需要,请使其在启动时运行。
从版本 0.1.4 开始,某些应用更改需要重启。因此,先运行一次批处理脚本,客户机会重启。然后再次运行脚本以完成设置。
在客户机内应用批处理脚本之前,请先禁用 UAC(需要重启),否则你将无法使用脚本修改注册表。
对于 Windows 10 用户:以管理员身份运行 PS 脚本(右键点击 cmd.exe -> 以管理员身份运行,导航到 PS 脚本并执行)。
如果正确应用,Pafish 运行的结果将如下所示(无需修改 Virtualbox)。
请注意,此脚本还执行了一些 Pafish 未覆盖的操作(例如 W10 工件)。

0.1.9:
兼容 Python3
首次尝试提取正确的磁盘,这一直是困扰很多人的问题(问题 #35 及其他几个旧问题,感谢 @oaustin)
改进了 Shell 脚本中的字符串处理(问题 #35 和 #36 以及 PR #44,感谢 @oaustin、@dashjuvi 和 @corownik)
添加了在线 DSDT 资源的链接(问题 #37,感谢 @MasterCATZ)
更新了 README,使安装说明更清晰,感谢 @jorants(问题 #38)
检查 DSDT 转储是否真的已创建,感谢 @nov3mb3r(问题 #42)
添加了许可证声明,感谢 @obilodeau(问题 #43)
代码清理:由于无法访问服务器硬件,移除了 RAID 磁盘支持……以及许多其他小的改进
0.1.8:
改进了对 Windows 10 的支持
合并了 @bryant1410 的标记修复(PR #14)
解决了使用 macOS + VBox/VMWare Fusion 创建模板的用户遇到的问题。
无论如何,从虚拟机内部创建模板并不是最佳方式……(问题 #12 和可能的 #15)
0.1.7:
现在支持 Windows 10(欢迎反馈)
为 W10 安装“修正”了几个新的工件
新增依赖:mesa-utils
合并了 @Fullmetal5 的 bug 修复(#10)
杂项代码修复
更新了 readme
0.1.6:
在第二次运行后添加了一个弹出窗口,以更清晰地提示你已经准备就绪
添加了一个生成几个记事本实例的功能,该功能将在未来版本中扩展
重写了 RandomDate 函数,感谢 @Antelox 让我意识到旧版本的问题(#8)
旧版本 Ubuntu 附带的 acpidump 不支持“-s”开关。现在会显示错误消息来处理此问题。感谢 @Antelox 报告此问题(#7)
Devmanview.exe 在第二次运行后未被删除,已修复
0.1.5:
添加了对关联和取消关联(默认禁用)文件扩展名的支持。参考:https://www.proofpoint.com/us/threat-insight/post/massive-adgholas-malvertising-campaigns-use-steganography-and-file-whitelisting-to-hide-in-plain-sight
添加了对用户提供的剪贴板缓冲区的支持。如果未提供,将生成一个随机字符串。请将你选择的蜜罐令牌填入文件
移除了 XP 支持
将批处理脚本部分转换为 Powershell。将更多逻辑移至客户机脚本中,简而言之,因为更多项目在客户机上随机化,所以创建/重新生成模板的频率降低了。
添加了随机化桌面背景图像的功能
添加了在客户机上创建“各种”文档的功能
添加了在客户机上创建“各种”文档并将其移至回收站的功能
在两个更多位置随机化 DigitalProductId:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Registration\DigitalProductId
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DefaultProductKey\DigitalProductId
使用半虚拟化接口:无(已在 VBox 5.1.4 上验证)- 检查已更新以反映此更改。我猜 VBox 的这一变化归功于 TiTi87,谢谢!
0.1.4:
修复了使用 python-dmidecode 3.10.13-3 的用户的一个 bug,这完全是我的责任……
添加了随机化 VolumeID 的功能(新增依赖:VolumeID.exe),例如 Rovnix 会收集此类信息
添加了随机化用户名和计算机名/主机名的功能(新增依赖:用户名和计算机名列表)
首次尝试向剪贴板缓冲区添加信息,想法(命令)来自 @shanselman 的一条推文。将在下一版本中改进
更新了 readme:新增依赖项以及需要重启的新功能
0.1.3:
复制并设置 CPU 品牌字符串
检查客户机是否连接了音频设备。参考:http://www.joesecurity.org/reports/report-61f847bcb69d0fe86ad7a4ba3f057be5.html
检查操作系统架构与 DevManView 二进制文件是否匹配
在两个更多位置随机化 ProductId:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Registration\ProductId
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DefaultProductKey\ProductId
从注册表中清除 Windows 产品密钥(以防止他人窃取……)
编辑 DigitalProductId(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId)以匹配新的 ProductId
/Mikael
欢迎反馈!=)
0.1.2:
检查是否正在使用旧版半虚拟化接口(使用旧版接口将减轻“cpuid 特性”检测)
0.1.1:
检查 CPU 数量(少于 2 则报警)
检查内存大小(少于 2GB 则报警)
检查 vboxnet0 是否使用了默认 IP/IP 范围(如果你不使用它,可以忽略该通知)
随机化 ProductId
合并了来自 r-sierra 的 PR #3(感谢你的帮助!)
修复了 AcpiCreatorId 中的一个 bug(感谢 @Nadacsc 向我报告!)
修复了 DmiBIOSReleaseDate 解析中的一个 bug
修复了 DmiBIOSReleaseDate 中的一个 bug,使其同时处理“默认”拼写错误的变体和正确拼写(感谢 @WanpengQian 向我报告!)
DevManView 的包含未能按预期工作,此版本应已修复
也支持 SATA 控制器(之前仅修改了 IDE 设置)
更新了 readme
0.1.0:
解决了由 HT 出名的 WMI 检测问题。将 DevManView.exe(体系结构自选)添加到了依赖项中
< 0.1.0 在此之前的版本历史未保留,总得有个开始吧。