Go Defender
GoDefender
这个Go包提供了检测和防御各种调试工具和虚拟化环境的功能。
顺便说一下,快速设置可以运行install.bat
。
反虚拟化
- Triage检测:检测系统是否在分类或分析环境中运行。
- 监控指标:监控系统指标以识别指示虚拟化的异常行为。
- VirtualBox检测:检测Oracle VirtualBox的存在。
- VMware检测:检测VMware虚拟化软件的存在。
- KVM检查:检查基于内核的虚拟机(KVM)虚拟机监控程序。
- 用户名检查:验证当前用户是否为默认虚拟化用户。
- 最近用户活动:检查用户活动;如果文件少于20个,则退出。
- USB挂载:检查之前是否有USB插入电脑。
- VM痕迹:识别虚拟机(VM)留下的痕迹,这可能表明存在VM环境。
- Parallels检查:检测Parallels Desktop,一款流行的macOS虚拟化软件,用于运行Windows和其他客户操作系统。
- QEMU检测:识别QEMU的存在,这是一个开源的机器模拟器和虚拟器,可能表明存在虚拟机检测。
反调试
此模块包含检测和防止正在运行的进程被调试和分析的功能。
- IsDebuggerPresent:检查当前是否有调试器附加到进程。
- 远程调试器:检测是否有远程调试器连接到进程。
- PC运行时间:监控系统运行时间以检测基于系统重启的调试尝试。
- 检查黑名单窗口名称:验证进程名称是否与调试器常用的任何黑名单名称匹配。
- 运行中的进程:获取运行中的进程列表并识别潜在的恶意进程。
- 父进程反调试:检测父进程是否试图调试当前进程。
- 检查恶意进程:如果在系统上检测到,根据您的选项(布尔值)执行相应操作。
- 检测用户模式反反调试器:检测用户模式反反调试器,如ScyllaHide(基本/VMP插件)。
- 互联网连接检查:检查是否存在互联网连接。
进程工具
您的应用可能需要的进程工具
- 关键进程:实现管理系统操作必需的关键进程的功能。
- 设置运行时:将应用运行时设置为指定的:
MacOS,Linux,Windows
- 启用所有令牌:为当前进程启用所有Windows权限令牌
- IsAdmin - 请求管理员:为当前进程请求管理员权限,并检查当前进程是否为管理员
反DLL注入
- 修补DLL:利用二进制镜像签名缓解策略来防止注入非微软二进制文件。
快速概述
- 通过检查函数地址上的错误指令来检测大多数反反调试挂钩方法(在x64上最有效)。它还可以检测用户模式反反调试器(如ScyllaHide),并可以检测一些使用挂钩来监控应用行为/活动的沙盒(如Tria.ge)。
致谢
- https://github.com/AdvDebug:启发我开始制作这个包。没有他,这个包就不会存在。查看他的GitHub。
- https://github.com/MmCopyMemory:提供了想法和更多。查看他的GitHub。
- https://github.com/bytepulze:帮助解决错误/修复,查看他的GitHub。
- 我制作这个是因为我注意到有人试图破解或分析我的其他Go程序。之前,我有很多行反调试代码(我编码很懒,把所有内容都放在一起),所以我想创建一些快速可靠的东西,让逆向工程师的生活更困难。因此,我制作了GoDefender。