逆向工程系列第三篇:二进制分析与破解实战

逆向工程系列(三)

第一部分
第二部分

这是逆向工程系列教程,我们将共同学习RE技术。欢迎提出建议。文末提供二进制文件。

工具清单

  • file
  • ltrace
  • strings
  • gdb
  • ida64
  • Ghidra
  • readelf

二进制分析

输入输出分析

通过fileltrace命令进行基础分析

字符串分析

使用strings命令三次扫描提取关键字符串

readelf分析

通过readelf发现二进制使用了以下函数:

  • printf
  • fdopen
  • fclose
  • memset
  • exit
  • fgetc

IDA Pro & Ghidra分析

现在我们将使用IDA Pro和Ghidra进行深入分析。

汇编代码摘要:

  1. 打印"?"提示符
  2. 创建stdin流并传递给sub_4006c0函数
  3. 如果sub_4006c0使rdx归零,则进入下一代码块
  4. 重复步骤1两次
  5. 将sub_4006c0调用结果存入dword变量
  6. 若fun_checker返回0给rax,即可获得flag

fun_checker函数验证以下方程:

我们需要解这个线性方程组来获取a,b,c的值

sub_4006c0函数应输出-8, -3, 13。由于逻辑较复杂,我们借助Ghidra分析发现该函数实际检查输入的十六进制值。

破解二进制

将-8, -3, 13转换为十六进制:

  • -8 → FFFFFFF8
  • -3 → FFFFFFFD
  • 13 → D

如果觉得有用请点赞,关注我获取更多黑客知识。

使用以下命令重建文件:

base64 -d x3.base64 > viewuser

更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
公众号二维码
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

内容概要:本文详细解析了2014年全国大学生电子设计竞赛C题——智能小车设计的全过程。文章首先介绍了该竞赛的背景及其重要意义,指出其不仅是对学生电子设计能力的考验,还对学生的学术成长和职业发展有深远影响。随后,文章深入剖析了C题的具体要求,包括小车的起跑、行驶、超车等复杂动作,强调了硬件(如控制模块、电源模块、车体、电机模块)和软件(如信号检测控制、两车通信、节能技术、程序设计)方面的关键技术和实现方法。最后,文章分享了测试优化的经验,并总结了团队合作、知识储备和实践能力的重要性,展望了电子设计领域的发展趋势。 适合人群:电子信息类专业学生、电子设计爱好者及希望深入了解智能小车设计的技术人员。 使用场景及目标:①了解全国大学生电子设计竞赛的背景和重要性;②掌握智能小车设计的硬件选型和软件编程技巧;③学习信号检测控制、两车通信、节能技术等关键技术;④借鉴测试优化的经验,提升实际动手能力和解决问题的能力。 阅读建议:本文内容详实,涵盖了从理论到实践的各个方面。建议读者在阅读过程中结合实际操作,逐步理解和掌握智能小车设计的各项技术和原理,特别是对硬件电路设计和软件编程部分,可以通过搭建实验平台进行实践,加深理解。同时,关注文中提到的测试优化策略,有助于提高实际项目的成功率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值