尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
makin项目维护与扩展:如何为已停止维护的反调试检测工具添加新功能和修复问题
makin项目维护与扩展如何为已停止维护的反调试检测工具添加新功能和修复问题【免费下载链接】makinmakin - reveal anti-debugging and anti-VM tricks [This project is not maintained anymore]项目地址: https://gitcode.com/gh_mirrors/ma/makinmakin是一款专业的反调试与反虚拟机检测工具能够帮助安全研究人员快速识别恶意软件中使用的调试器检测技术。尽管该项目已停止维护但通过学习其工作原理和代码结构我们仍然可以为其添加新功能和修复现有问题。本文将为您提供完整的makin项目维护与扩展指南帮助您掌握为已停止维护项目贡献代码的技巧。 理解makin的核心工作原理makin通过一个巧妙的设计来检测反调试技术它打开目标样本作为调试对象然后注入asho.dll动态链接库。这个DLL会钩住ntdll.dll和kernelbase.dll中的关键函数当检测到参数检查时它会发送相应的消息给调试器makin.exe。主要检测技术覆盖范围makin能够检测多种反调试技术包括但不限于ntdll.dll相关检测NtClose、NtOpenProcess、NtCreateFile等系统调用kernelbase.dll相关检测IsDebuggerPresent、CheckRemoteDebuggerPresent等函数PEB结构检查BeingDebugged标志、NtGlobalFlag标志虚拟机检测通过注册表、文件系统和进程检查VM环境️ 项目结构与关键文件解析要有效维护makin项目首先需要了解其代码结构核心源代码文件makin/makin.cpp - 主调试器实现文件包含调试逻辑和消息处理asho/asho.cpp - 注入DLL的主要实现文件asho/hook.h - 函数钩子定义和声明asho/utils.h - 工具函数和辅助功能配置文件makin/checks.json - 虚拟机检测配置无需修改可执行文件即可扩展检测能力第三方依赖external/zydis/ - Zydis反汇编引擎MIT许可证external/json/ - JSON for Modern C库MIT许可证 如何为makin添加新的反调试检测功能步骤1识别新的反调试技术首先研究最新的反调试技术。可以参考以下资源《The Ultimate Anti-Debugging Reference》文档al-khaser项目中的反调试实现最新的恶意软件分析报告步骤2修改asho.dll的钩子函数在asho/hookFunctions.h中添加新的函数钩子。例如要检测新的API调用// 示例添加对新API的钩子 HOOK_DEFINE(NtNewDebugFunction, NTSTATUS, WINAPI, ( _In_ HANDLE ProcessHandle, _In_ PROCESSINFOCLASS ProcessInformationClass, _Out_writes_bytes_(ProcessInformationLength) PVOID ProcessInformation, _In_ ULONG ProcessInformationLength, _Out_opt_ PULONG ReturnLength )) { // 检测逻辑实现 if (某些反调试条件) { SendDetectionMessage(新的反调试技术检测); } return Original_NtNewDebugFunction(ProcessHandle, ProcessInformationClass, ProcessInformation, ProcessInformationLength, ReturnLength); }步骤3更新makin的消息处理在makin/makin.cpp中找到ProcessOutputString函数添加对新检测消息的处理auto newDetection strstr(pMsg.get(), NEW_DETECTION:); if (newDetection ! nullptr) { printf_s([检测到] 新的反调试技术\n); // 记录到日志或生成报告 }步骤4扩展虚拟机检测配置无需重新编译直接编辑makin/checks.json文件即可添加新的VM检测规则{ Registry: { KeyChecks: { NewVM: [ newvm, customvm ] }, ValueChecks: [ CustomVMIdentifier, HypervisorType ] }, FileSystem: { Files: [ newvmdriver.sys, customvm.sys ] }, Processes: [ newvm_service.exe, customvm_tool.exe ] } 常见问题修复与调试技巧问题1注入失败或DLL加载错误解决方案检查目标进程的架构32位/64位验证DLL依赖项是否完整查看调试器输出中的错误信息问题2函数钩子不生效调试步骤在asho/hook.h中增加调试日志使用Process Monitor监控API调用检查函数签名是否匹配问题3IDAPython脚本生成错误修复方法检查makin/makin.cpp中的脚本生成逻辑确保Python语法正确验证断点地址计算准确性 性能优化建议内存使用优化在makin/makin.cpp中可以优化内存分配// 使用智能指针管理资源 std::unique_ptrCHAR[] pMsg{new CHAR[out_info.nDebugStringLength * sizeof(CHAR)]};多线程支持考虑为大型样本分析添加多线程支持// 示例线程池实现 std::vectorstd::thread analysisThreads; for (auto sample : samples) { analysisThreads.emplace_back([sample]() { AnalyzeSample(sample); }); } 测试新功能的完整流程测试环境搭建准备测试样本收集已知使用反调试技术的恶意软件设置虚拟机环境配置VMware、VirtualBox等不同虚拟机安装调试工具准备WinDbg、x64dbg等调试器测试步骤编译修改后的makin和asho运行makin并加载测试样本观察检测输出是否包含新功能验证IDAPython脚本正确性在不同Windows版本上测试兼容性测试用例设计测试类型测试内容预期结果功能测试新API钩子检测正确识别并报告兼容性测试Windows 7/10/11所有版本正常工作性能测试大型样本分析内存使用稳定回归测试原有功能不受新代码影响 学习资源与社区贡献推荐学习资料Windows内部原理理解PEB、TEB等结构反调试技术文档Pafish、al-khaser等项目调试器开发《Windows via C/C》相关章节贡献代码的最佳实践保持向后兼容新功能不应破坏现有检测添加详细注释说明技术原理和实现方法编写测试用例确保代码质量遵循代码风格保持与现有代码一致 总结让停止维护的项目重获新生维护已停止维护的项目如makin不仅是对个人技术能力的挑战也是对开源社区的宝贵贡献。通过深入理解原有架构- 掌握核心设计思想渐进式添加功能- 从小改动开始逐步扩展全面测试验证- 确保稳定性和兼容性文档化修改- 帮助其他开发者理解变化您可以让这个优秀的反调试检测工具继续发挥作用甚至比原作者维护时更加完善。记住每个停止维护的项目都可能因为您的贡献而焕发新生小贴士开始维护前建议先熟悉项目现有的Issue和Pull Request了解社区已经讨论过的问题和需求。【免费下载链接】makinmakin - reveal anti-debugging and anti-VM tricks [This project is not maintained anymore]项目地址: https://gitcode.com/gh_mirrors/ma/makin创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

ncmdumpGUI完全指南:3步轻松解密网易云音乐NCM文件,实现跨平台播放自由

ncmdumpGUI完全指南:3步轻松解密网易云音乐NCM文件,实现跨平台播放自由

ncmdumpGUI完全指南:3步轻松解密网易云音乐NCM文件,实现跨平台播放自由 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易…

📅 2026/9/12 5:30:31
在Windows电脑上直接安装APK文件的完整指南:告别模拟器,体验全新跨平台方案

在Windows电脑上直接安装APK文件的完整指南:告别模拟器,体验全新跨平台方案

在Windows电脑上直接安装APK文件的完整指南:告别模拟器,体验全新跨平台方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经希望在Wi…

📅 2026/10/8 1:24:26
LingBot-Vision:10亿参数视觉基础模型在密集空间感知任务中的应用

LingBot-Vision:10亿参数视觉基础模型在密集空间感知任务中的应用

如果你正在开发需要深度理解图像内容的AI应用,比如自动驾驶的环境感知、医疗影像分析或者机器人视觉导航,那么今天要介绍的这个开源模型可能正是你需要的解决方案。 蚂蚁集团旗下的Robbyant最近开源了LingBot-Vision,这是一个拥有10亿参数的…

📅 2026/10/16 3:56:43
MORE NEWS

更多资讯

📰

基于YOLOv8的垃圾回收分类识别检测系统:从数据标注到Web部署全流程

1. 项目概述:从数据集到Web界面的完整检测链路做目标检测项目最容易遇到的情况是什么?模型精度够了,但数据整理一塌糊涂;或者训练调参跑通了,最后部署时又卡在前后端对接上。这套垃圾回收级别分类识别检测系统&#xf…

📰

YOLOv5+TensorRT+C++高并发推理服务部署实战

从 PyTorch 里的 demo 到线上高并发服务,中间隔着一整条“性能鸿沟”。如果你也遇到过 GPU 利用率不到 30%、请求一多就超时、服务进程动不动内存翻倍的问题,这篇基于 YOLOv5 TensorRT C HTTP 的部署实践应该能帮上忙。文章会把一条完整的高性能推理服…

📰

YOLOv8水面垃圾检测系统:从数据标注到Web部署全流程解析

做水面垃圾检测这个方向也有一段时间了,陆续看到不少同学拿着类似的思路来找我聊:手上已经有标注好的数据集,想用 YOLOv8 跑一个水面湖面垃圾分类检测系统,但又担心只是“换个数据集跑个模型”,看不出深度,…

📰

从模糊标题到可运行原型:以rea为例的逆向拆解与工程实践

1. 当标题只剩下三个字母:一次“信息真空”下的逆向拆解拿到“rea”这个标题的时候,我第一反应是愣了一下。没有项目正文,没有关键词,没有摘要描述,连热搜词和网络热词都是空的。换句话说,除了这三个字母&a…

📰

光纤聚焦镜在高温检测中的光路调度原理与实操指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

华为交换机GVRP实验:动态VLAN注册、Trunk配置与避坑指南

简介:面向网络工程师、高校学生及备考华为认证的实践者,这份华为GVRP实验配置文档以四台交换机S1至S4互联为拓扑,演示GVRP动态注册与注销VLAN的全过程。文档先厘清Normal、Fixed、Forbidden三种注册模式的含义:Normal允许多VLAN动…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬