makin项目编译与部署指南:从源码到可执行文件的完整构建流程

makin项目编译与部署指南:从源码到可执行文件的完整构建流程

【免费下载链接】makinmakin - reveal anti-debugging and anti-VM tricks [This project is not maintained anymore]项目地址: https://gitcode.com/gh_mirrors/ma/makin

makin是一个强大的反调试和反虚拟机检测工具,专门设计用于揭示恶意软件样本中使用的各种调试器检测技术。🔍 这个开源项目通过注入自定义DLL并钩住关键系统API,能够有效识别样本中的反调试和反虚拟机技术。对于安全研究人员和恶意软件分析师来说,掌握makin的编译与部署流程是进行有效分析的第一步。

📋 前置环境准备

在开始编译makin之前,您需要准备以下开发环境:

系统要求

  • 操作系统: Windows 10或更高版本(推荐Windows 10 1809以上)
  • 开发工具: Visual Studio 2017或更高版本(支持v141工具集)
  • Windows SDK: 10.0.17763.0或更高版本
  • 硬件要求: x86或x64架构处理器,至少4GB内存

依赖库准备

makin项目依赖于两个重要的第三方库:

  1. Zydis反汇编引擎- 用于指令解码和分析
  2. JSON for Modern C++- 用于配置文件解析

这些依赖已经包含在项目中的external/目录下,无需额外下载。

🔧 源码获取与项目结构

首先,您需要获取makin项目的源码:

git clone https://gitcode.com/gh_mirrors/ma/makin cd makin

项目的主要目录结构如下:

makin/ ├── makin.sln # Visual Studio解决方案文件 ├── makin/ # 主程序源码 │ ├── makin.cpp # 主程序入口点 │ ├── makin.vcxproj # 项目配置文件 │ └── checks.json # 虚拟机检测配置 ├── asho/ # 注入DLL源码 │ ├── asho.cpp # DLL主模块 │ ├── hook.h # 钩子函数声明 │ └── utils.cpp # 工具函数 └── external/ # 第三方依赖 ├── json/ # JSON库 └── zydis/ # 反汇编引擎

🛠️ Visual Studio编译步骤

步骤1:打开解决方案文件

使用Visual Studio 2017或更高版本打开makin.sln解决方案文件。这个解决方案包含两个项目:

  • makin: 主调试器程序
  • asho: 注入的DLL模块

步骤2:配置编译平台

根据您的目标系统选择相应的平台配置:

配置类型平台用途
Debugx8632位调试版本
Debugx6464位调试版本
Releasex8632位发布版本
Releasex6464位发布版本

💡 专业建议: 对于大多数现代Windows系统,建议使用x64 Release配置以获得最佳性能。

步骤3:设置编译选项

在项目属性中,确保以下设置正确:

  1. 平台工具集: v141 (Visual Studio 2017)
  2. Windows SDK版本: 10.0.17763.0
  3. 字符集: Unicode
  4. 包含目录: 自动包含external目录中的依赖

步骤4:编译项目

按F7或点击"生成解决方案"开始编译过程。编译完成后,您将在以下目录找到生成的可执行文件:

makin\x64\Release\makin.exe # 64位主程序 asho\x64\Release\asho.dll # 64位注入DLL makin\Win32\Release\makin.exe # 32位主程序 asho\Win32\Release\asho.dll # 32位注入DLL

🚀 命令行编译方法

如果您更喜欢使用命令行工具,可以使用MSBuild进行编译:

# 编译64位Release版本 msbuild makin.sln /p:Configuration=Release /p:Platform=x64 # 编译32位Release版本 msbuild makin.sln /p:Configuration=Release /p:Platform=Win32 # 编译64位Debug版本 msbuild makin.sln /p:Configuration=Debug /p:Platform=x64

📦 部署与配置

文件部署结构

成功编译后,您需要将以下文件部署到同一目录:

工作目录/ ├── makin.exe # 主程序 ├── asho.dll # 注入模块 └── checks.json # 检测配置文件(可选)

配置文件说明

checks.json文件包含了虚拟机检测的配置规则,您可以根据需要自定义检测项:

{ "title": "VM checks", "Registry": { "KeyChecks": { "VMware": ["vmware"], "VirtualBox": ["virtualbox", "vbox"] } }, "FileSystem": { "Files": ["virtualbox", "vmware", "vmmouse.sys"] } }

✨ 小贴士: 您可以编辑checks.json文件来添加或修改虚拟机检测规则,无需重新编译程序!

🧪 测试与验证

基本功能测试

编译完成后,您可以运行以下命令测试makin的基本功能:

# 查看帮助信息 makin.exe --help # 分析一个样本 makin.exe sample.exe

验证编译结果

确保编译成功的几个关键检查点:

  1. 文件大小检查:

    • makin.exe: 约200-300KB(Release版本)
    • asho.dll: 约100-200KB(Release版本)
  2. 依赖检查: 使用Dependency Walker或类似工具检查是否有缺失的DLL依赖

  3. 功能测试: 运行makin分析一个简单的测试程序,验证是否能正确检测调试器

🔍 常见编译问题解决

问题1:找不到Windows SDK

症状: 编译错误提示"Windows SDK版本10.0.17763.0未找到"解决方案:

  • 安装Windows 10 SDK (10.0.17763.0)
  • 或修改项目属性中的Windows SDK版本为您已安装的版本

问题2:平台工具集不匹配

症状: 错误提示"未找到v141工具集"解决方案:

  • 安装Visual Studio 2017
  • 或升级到Visual Studio 2019/2022,并修改平台工具集为相应版本

问题3:外部依赖路径错误

症状: 编译时找不到zydis或json头文件解决方案: 检查makin.vcxproj文件中的包含路径设置,确保正确指向external/目录

🎯 高级编译选项

自定义编译标志

您可以在项目属性中调整以下编译选项:

选项推荐设置说明
优化/O2最大优化速度
调试信息/Zi生成PDB文件
安全检查/GS启用缓冲区安全检查
数据执行保护/NXCOMPAT启用DEP保护

静态链接选项

为了简化部署,您可以考虑静态链接运行时库:

  1. 打开项目属性 → C/C++ → 代码生成
  2. 将"运行时库"设置为"多线程(/MT)"(Release)或"多线程调试(/MTd)"(Debug)

📊 性能优化建议

编译优化

  • 使用Release配置进行最终构建
  • 启用全程序优化(/GL)和链接时代码生成(/LTCG)
  • 针对特定CPU架构优化(/arch:AVX2)

部署优化

  • 将makin.exe和asho.dll放在同一目录
  • 确保目标系统已安装必要的Visual C++运行时
  • 对于批量分析,考虑编写脚本自动化流程

🔧 自定义开发与扩展

添加新的检测规则

makin的架构支持轻松扩展新的检测规则:

  1. 修改asho.dll: 在asho/hook.hasho/hookFunctions.h中添加新的钩子函数
  2. 更新消息处理: 在makin/makin.cpp中处理新的检测消息
  3. 重新编译: 只需重新编译asho项目即可

集成到现有工作流

makin可以与其他安全工具集成:

  • 与IDA Pro配合使用自动生成的脚本
  • 与自动化沙箱系统集成
  • 作为恶意软件分析流水线的一部分

🚨 安全注意事项

使用环境

  • 在隔离的虚拟机环境中运行makin
  • 避免在生产系统上分析未知样本
  • 使用专用的恶意软件分析工作站

权限要求

  • 以管理员权限运行以获得最佳检测效果
  • 确保有足够的系统权限进行进程注入

📈 总结与最佳实践

通过本文的完整指南,您应该已经掌握了makin项目的编译与部署全流程。记住以下关键点:

  1. 环境准备是关键- 确保Visual Studio和Windows SDK正确安装
  2. 平台选择要匹配- 根据目标系统选择x86或x64架构
  3. 配置文件可定制- 利用checks.json灵活调整检测规则
  4. 测试验证不可少- 编译后务必进行功能测试

makin作为一个专业的反调试检测工具,为安全研究人员提供了强大的分析能力。掌握其编译部署流程,您就能更好地利用这个工具进行恶意软件分析和安全研究。🔒

💪 现在就开始您的makin编译之旅吧!如果在编译过程中遇到任何问题,欢迎参考项目文档或社区讨论。祝您编译顺利,分析成功!

【免费下载链接】makinmakin - reveal anti-debugging and anti-VM tricks [This project is not maintained anymore]项目地址: https://gitcode.com/gh_mirrors/ma/makin

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考