利用Claude3.7逆向二进制程序

admin 2025年4月8日20:15:00评论9 views字数 1507阅读5分1秒阅读模式
部署好IDA和Claude3.7 sonnet联动,输入提示词,开始对一个CTF的Crackme.exe进行自动化逆向,结论是:完全正确,完美!这给了我一个惊喜,我们先来看下它生成的报告:

一、Crackme分析报告

(一)程序概述

这是一个名为"FaNt0m's CrackMe #3 -- CD Check"的简单Windows GUI程序,其主要功能是检查系统是否存在CD-ROM驱动器。

(二)程序流程

  1. 程序入口点(start)初始化应用程序环境:
    • 获取当前模块句柄
    • 获取命令行参数
    • 调用主应用程序初始化函数
    • 退出进程
  2. 应用程序初始化函数(InitializeApplication):
    • 注册窗口类
    • 创建主窗口
    • 进入消息循环
  3. 窗口过程函数(WindowProc)处理窗口消息:
    • 命令ID 0x9C41: 退出程序
    • 命令ID 0x9C42: 检查CD-ROM
    • 命令ID 0x9C43: 显示关于对话框
    • 处理WM_DESTROY消息(退出应用程序)
    • 处理WM_COMMAND消息(菜单命令):
  4. CD-ROM检查函数(CheckCDROM):
    • 调用GetDriveTypeA(NULL)检查默认驱动器类型
    • 如果返回值为DRIVE_CDROM(5),则显示成功消息
    • 否则显示错误消息

(三)破解方法

这个crackme的目标是让程序显示"Found a CDROM! Good job!"消息。程序通过调用GetDriveTypeA(NULL)来检查默认驱动器类型是否为CD-ROM(类型值5)。

要破解这个程序,有几种可能的方法:

  1. 物理解决方案
    • 确保系统中有CD-ROM驱动器,并且它是默认驱动器
  2. 虚拟解决方案
    • 使用虚拟CD-ROM驱动器软件创建一个虚拟CD-ROM设备
  3. Hook解决方案
    • 使用API钩子技术拦截GetDriveTypeA函数调用,并强制其返回值为5
  4. 调试解决方案
    • 使用调试器在比较语句处(地址0x401201)修改EAX寄存器的值为5

(四)总结

这是一个相对简单的crackme,主要检查系统环境而不是密码或算法。成功的关键是使GetDriveTypeA函数返回值为5,表示检测到CD-ROM驱动器。

二、手工逆向验证
1、二进制程序的提示,界面如下,
利用Claude3.7逆向二进制程序
当点击“CD Check”时,弹出提示框“Error finding CDROM”。
2、Claude的判断点:“成功的关键是使GetDriveTypeA函数返回值为5,表示检测到CD-ROM驱动器”。
3、我们来IDA看下这里,
利用Claude3.7逆向二进制程序
果然,在CheckCDROM的代码里就是用cmp eax,5来判断“对错”!而且位置就是在0x401201处。说明Claude3.7 sonnet分析得完全正确!!!
4、交叉溯源一下,如下
利用Claude3.7逆向二进制程序
再往前,
利用Claude3.7逆向二进制程序
原来是WindowsProc。WindowProc是你给自己的窗口定义的窗口处理函数,而DefWindowProc是windows平台提供的默认窗口处理函数。如果某些消息你不需要做特别的处理,调用DefWindowProc进行处理就可以了,不需要你自己再去些那些windows的"标准动作",这是两者的区别。
再往前,
利用Claude3.7逆向二进制程序
再往前,
利用Claude3.7逆向二进制程序
来到了程序的入口。
三、感受
虽然Crackme.exe的流程很简单,但作为人工智能在不需要人干涉的情况下,全程快速地完成了分析,并得出了正确的答案,确实令人惊叹!
反观Claude 3.7 sonnet,其推理能力令人印象深刻,尤其是它宣称的“混合推理(Hybrid Reasoning)”能力,即一个 AI 模型能够在两种推理模式之间灵活切换:快速推理逐步推理。这两种模式分别针对不同的任务需求,结合在一起形成了一种更全面、更灵活的智能表现。

原文始发于微信公众号(MicroPest):利用Claude3.7逆向二进制程序

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月8日20:15:00
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   利用Claude3.7逆向二进制程序https://cn-sec.com/archives/3930606.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息