隐藏阶段,phase_4 之后附加特定字符串后出现

怎么找出隐藏关的就不赘述了。直接进入正题:
先查secret_phase:

 1869:   56                      push   %esi #我们输入的数186a:    8d 83 24 05 00 00       lea    0x524(%ebx),%eax #查看0x524(%ebx)中内容为0x241870: 50                      push   %eax1871:    e8 6d ff ff ff          call   17e3 <fun7>

这段代码告诉我们调用fun7函数时传入了两个参数,一个是0x24,一个是我们输入的数。继续往下看:

 1871:   e8 6d ff ff ff          call   17e3 <fun7>1876:   83 c4 10                add    $0x10,%esp1879:  85 c0                   test   %eax,%eax    #判断eax是否为0或正负数187b: 75 25                   jne    18a2 <secret_phase+0x6d>  #ZF=0,即eax不为0,爆炸

这段代码说明调用fun7之后,eax的值必须为0。
现在查看fun7的代码:

    17ea:    8b 55 08                mov    0x8(%ebp),%edx   #0x2417ed:  8b 4d 0c                mov    0xc(%ebp),%ecx   #我们输入的数17f0:    85 d2                   test   %edx,%edx 17f2:  74 3a                   je     182e <fun7+0x4b>  #如果edx为0,爆炸17f4: 8b 1a                   mov    (%edx),%ebx17f6: 39 cb                   cmp    %ecx,%ebx    17f8:   7f 0c                   jg     1806 <fun7+0x23>  #如果ebx(即edx)大于ecx,跳至180617fa:   b8 00 00 00 00          mov    $0x0,%eax    #0传给eax,这正是我们需要的17ff:    75 18                   jne    1819 <fun7+0x36>  #如果ebx小于ecx,跳至18191801: 8b 5d fc                mov    -0x4(%ebp),%ebx1804: c9                      leave  1805:    c3                      ret

通过上面的代码,我们可以知道,当ecx和edx相等时,eax会被置0,这正是我们希望的。至于大于和小于时有什么操作,对这个炸弹而言不重要了,只要输入的数是36(由0x24换算而来),就能返回0。现在来验证猜测:
很幸运,通关了!

拆弹实验-phase_7(隐藏关)相关推荐

  1. 啪嗒砰2 全隐藏关 隐藏BOSS

    1 开启蜘蛛亚种"恐怖的串刺x怪兽xxx"关卡的地图在"岩山xx魔性之霜"起雾的时候有一个和别的不一样颜色的蝙蝠身上. 2 开启巨像兵亚种"自然力的巨 ...

  2. 笑谈ArcToolbox (4) ArcToolbox的隐藏关

    笑谈ArcToolbox (4) ArcToolbox的隐藏关 by 李远祥 很多人在使用arcgis工具的时候,基本是"双击--调用"这种模式.这本来就是符合一般人的使用习惯.如 ...

  3. 实验七 隐藏节点和暴露节点仿真实验

    无线网络技术教程第四版实验七 隐藏节点和暴露节点仿真实验 目录 无线网络技术教程第四版实验七 隐藏节点和暴露节点仿真实验 1 实验目的和要求 2 实验原理和背景 2.1 隐藏节点问题 2.2 暴露节点 ...

  4. 计算机系统基础实验:二进制拆弹实验

    一.实验目的: 学习并熟练使用 gdb 调试器和 objdump 理解汇编语言代码的行为或作用 提高阅读和理解汇编代码的能力 二.实验要求 实验共包括七个阶段,每个阶段考察机器级语言程序的不同方面,难 ...

  5. 头歌平台数据结构与算法 单链表实验 第1关:倒置链表

    任务描述 相关知识 实验目的 实验任务 实验说明 编程要求 测试说明 任务描述 本关任务:请在右侧编辑器的注释行填入适当内容来完成算法,以实现指定的功能,并通过运行来验证. 相关知识 实验目的 理解线 ...

  6. 二进制拆弹实验详解linux,拆解二进制炸弹

    拆解二进制炸弹 一.实验目的 1.理解C语言程序的机器级表示. 2.初步掌握GDB调试器的用法. 3.阅读C编译器生成的x86-64机器代码,理解不同控制结构生成的基本指令模式,过程的实现. 二. 实 ...

  7. 二进制拆弹实验详解_Population Count算法-求二进制数中1的个数

    所谓Population Count算法,即是指计算一个二进制数中1的个数的算法.具体来说,就是任意给定一个无符号整数N,求N的二进制表示中1的个数,比如N = 5(0101)时,返回2:N = 15 ...

  8. 华中科技大学数电实验--第6关:16进制可逆计数器设计

    写在前面:做了这个实验部分关卡之后,只想说"设计关卡的人水平真次-(此处省略若干文明用语)",所以决定和大家分享一下自己觉得苦难的关卡的思路,(本人也是水平有限,以下仅)供困惑时参 ...

  9. 计组头哥实验 第2关 原码一位乘法器设计

  10. 华科计算机组成原理 头歌Educoder Logisim 计算机数据表示实验(HUST) 1~9关满分通关

    目录 第1关:汉字国标码转区位码实验 第2关:汉字机内码获取实验 第3关:偶校验编码设计 第4关:偶校验解码电路设计 ​第5关:16位海明编码电路设计 第6关:16位海明解码电路设计 第7关:海明编码 ...

最新文章

  1. PropertiesFactoryBean PropertyPlaceholderConfigurer 区别
  2. 隐私数据在隐私AI框架中的安全流动
  3. js判断是由含有a节点_如何在 JS 中判断数组是否包含指定的元素(多种方法)
  4. 词频统计 求最大k个数
  5. PHP开发调试环境配置(基于wampserver+Eclipse for PHP Developers )
  6. 找找Amazon的A9算法更新和变化的蛛丝马迹!
  7. 骑手困在系统里,网友困在回应里,而王兴正在刷饭否
  8. 记一次特别的往事 while 循环
  9. CCNP中单区域OSPF详解(第一部分)
  10. 培训学习笔记 - 人们不买钻头,他们买孔洞
  11. python61到08使用说明书_python 08 文件操作
  12. 全面认识Eclipse中JVM内存设置(转)
  13. JAVA项目中找不到tomcat_Tomcat启动过程中找不到JAVA_HOME解决方法
  14. zabbix监控tomcat服务
  15. ORACLE 中IN和EXISTS比较
  16. 在html中添加class,在HTML标识符的Class中加入Styles
  17. 台式计算机如何自动开关机,联想电脑怎么设置定时开机|联想台式机自动开机设置方法...
  18. 统一诊断服务(UDS)- 安全等级是怎么回事儿
  19. 计算机一级wps必背知识点,计算机一级WPSoffice考前复习题
  20. BUUCTF-pwn(15)

热门文章

  1. 电影《战狼》评论词云分析
  2. 那一年我是如何从功能测试跨入自动化测试的,绝对让你不虚此行!
  3. 农夫山泉病毒性营销方案策划
  4. 分发自动化_使用bitrise自动化应用分发
  5. 飞书深诺在港上市招股书再失效:毛利率较高,遭完美世界提前减持
  6. ReDet A Rotation-equivariant Detector for Aerial Object Detection 论文学习
  7. Android-video rotation详解
  8. Limelight完成了对雅虎Edgecast的收购,合并后的公司更名为Edgio,成为全球边缘解决方案的领导者
  9. Java Springboot 使用 OpenOffice 实现Excel转PDF
  10. Adaptive AUTOSAR 简介 (2021版)