Claude Opus 4 对《利用Claude3.7逆向二进制程序》中程序的再测试

admin 2025年5月27日14:25:16评论3 views字数 2100阅读7分0秒阅读模式
Claude Opus 4 对<利用Claude3.7逆向二进制程序>中程序的再测试》,这个标题有点别扭。这次我们用Claude Opus 4 测试相同的二进制程序,看有什么样的惊喜。
测试分两部分:一是对程序的功能性分析,二是反汇编成汇编代码;
当我测试完时,不由地长叹一声,逆天了!Claude Opus 4 就像一位经验丰富的逆向工程师,程序分析,思路清晰,重点明确,结论正确;反编译伪C或反汇编asm,同IDA一模一样。人类的逆向工程师离“下岗”不远了。
第一部分  程序的功能性分析
一、分析报告

## 程序概述- **程序名称**: FaNt0m's CrackMe #3 -- CD Check- **文件大小**: 7,168 字节 (0x1C00)- **MD5**: 8f39929e8df4c4515b19b668f7834f4e- **程序类型**: Windows GUI 应用程序## 功能分析### 1. 程序结构程序是一个标准的 Windows GUI 应用程序,包含:- 主窗口 (带菜单)- About 对话框- CD-ROM 检查功能### 2. 菜单项- **Exit** (ID: 0x9C41 / 40001) - 退出程序- **CD Check** (ID: 0x9C42 / 40002) - 执行 CD-ROM 检查- **About** (ID: 0x9C43 / 40003) - 显示关于对话框### 3. 核心功能:CD-ROM 检查程序的核心功能在 `CheckCDROM` 函数 (0x4011F7):int __stdcall CheckCDROM(int a1){if(GetDriveTypeA(NULL)==5)// 5 = DRIVE_CDROMreturnMessageBoxA(0, "Found a CDROM!Good job!", "FaNt0m's CrackMe #3--CDCheck",0);elsereturnMessageBoxA(0, "Error finding CDROM", "FaNt0m's CrackMe #3--CDCheck",0x30);}### 4. 破解方法这个 CrackMe 的"密码"实际上是检查当前驱动器是否为 CD-ROM 驱动器。**解决方案**:1. **方法一**:从 CD-ROM 驱动器运行程序   - 将程序复制到 CD 或 DVD   - 从光驱运行程序   - 点击 "CD Check" 菜单项2. **方法二**:修改程序(打补丁)   - 将 `cmp eax,5` (地址 0x401201) 的比较值改为其他值   - 或者修改跳转指令 `jz` 为 `jnz`3. **方法三**:使用虚拟光驱   - 创建虚拟光驱   - 将程序放在虚拟光驱中运行### 5. 技术细节`GetDriveTypeA(NULL)` 返回值说明:- 0 = DRIVE_UNKNOWN- 1 = DRIVE_NO_ROOT_DIR- 2 = DRIVE_REMOVABLE- 3 = DRIVE_FIXED- 4 = DRIVE_REMOTE- **5 = DRIVE_CDROM** (程序检查的值)- 6 = DRIVE_RAMDISK当传入 NULL 参数时,`GetDriveTypeA` 检查当前工作目录所在的驱动器类型。二、重要突破

关于这个程序的IDA手工分析,上篇文章中已经给出了,不再赘述,可以对照。

这里,Claude Opus 4 给出了关键段的反编译伪C代码,这个可读性太牛了。在这里,MCP还是那个MCP,没有任何升级等不同操作,它通过MCP实现了重要段落从汇编代码到反编译伪C的进化,在这点上做到和IDA同样功能。这点上太逆天了,只能说4.0确实比3.7强大多了。截图如下,

Claude Opus 4 对《利用Claude3.7逆向二进制程序》中程序的再测试

比对下IDA的伪C,

Claude Opus 4 对《利用Claude3.7逆向二进制程序》中程序的再测试

是不是非常OK,而且变量名称、字符串一应俱全适配好。并给出破解方案,

Claude Opus 4 对《利用Claude3.7逆向二进制程序》中程序的再测试

三、思考过程

采用同样的分析词,感觉Claude Opus 4 没有按我给出的提示词进行,而是按它自己的来,感觉更像一个“人”在逆向程序。

Claude Opus 4 对《利用Claude3.7逆向二进制程序》中程序的再测试
Claude Opus 4 思考过程、操作步骤 如下,
Claude Opus 4 对《利用Claude3.7逆向二进制程序》中程序的再测试
Claude Opus 4 对《利用Claude3.7逆向二进制程序》中程序的再测试
Claude Opus 4 对《利用Claude3.7逆向二进制程序》中程序的再测试
Claude Opus 4 对《利用Claude3.7逆向二进制程序》中程序的再测试
Claude Opus 4 对《利用Claude3.7逆向二进制程序》中程序的再测试

第二部分  汇编代码

给 Claude Opus 4 下达指令:能否将程序反汇编成汇编语言?

回答是:可以。

结果是:一模一样。

Claude Opus 4 对《利用Claude3.7逆向二进制程序》中程序的再测试

截几张和IDA一起图比较下,

Claude Opus 4 对《利用Claude3.7逆向二进制程序》中程序的再测试
Claude Opus 4 对《利用Claude3.7逆向二进制程序》中程序的再测试

思考过程:

Claude Opus 4 对《利用Claude3.7逆向二进制程序》中程序的再测试

对照上面的函数,我们来看下IDA MCP的函数,Claude Opus 4 通过 MCP 驱动 IDA 对二进制程序进行了分析。

Claude Opus 4 对《利用Claude3.7逆向二进制程序》中程序的再测试

对比3.7,可以说 4.0对MCP的掌控能力强了很多。

四、感受

在二进制程序的逆向方面,Claude Opus 4 进步了很多,对汇编语言的理解能力加强了很多,并且能够将二进制代码反编译成伪C代码了(第一部分),以及将二进制程序反汇编成汇编代码,和IDA的一模一样,真是逆天了。虽然这个只是简单的二进制程序逆向,但 Opus 4 展现出象人类一样的思考过程、推理过程、步进过程,可以想象逆向工程师离“失业”的日子不远了。

我将测试程序crackme.exe、生成报告md、汇编asm放在网盘中,

链接: https://pan.baidu.com/s/1Mc3MKzbTrG70pUMAy3ANeA 

提取码: 39f5 

原文始发于微信公众号(MicroPest):Claude Opus 4 对《利用Claude3.7逆向二进制程序》中程序的再测试

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

发表评论

匿名网友 填写信息