二进制炸弹--拆弹实验

二进制炸弹–拆弹实验

这是我们学校计算机系统基础课程的大作业实验,以下是我总结的每一关的通关方法。对于汇编语言的了解还不够深入,解释不好的地方还请大家批评指正。

那,我们就出发吧~

大作业要求

该大作业为闯关实验,共需破解7关。下载以自己学号命名的<学号>.tar压缩文件,在Debian系统里进行解压缩(例:$tar -xvf 987654321.tar)后,通过对可执行文件bomb反汇编,分析汇编代码并获取相关线索,从而破解每一关的输入内容,完成闯关。

实验一. 字符串比较
phase_0在这里插入图片描述
使用 objdump 生成 bomb 程序的汇编代码,下图将汇编代码定位在给出了第一关字符串 对比的地方<phase_0>。可以看出在调用<string_not_equal>函数前,现将要参与对比的两个 字符串压入栈中,push $0x804b18c 就是存放内置字符串的首地址,pushl 0x8(%ebp)是用户 输入字符串的首地址。
在这里插入图片描述
gdb 进行调试,断点设置在 b phase_0。这时根据汇编语句中发现的内置字符串首地址 0x804b18c,使用 examine 指令显示这个字符串为:All I/O devices are modeled as files.
在这里插入图片描述

单步或继续执行后续的代码时输入这个字符串,结果显示成功过关。

第零关很easy,细心一点输入正确就好啦hhh

实验二.浮点表示
phase_1
在这里插入图片描述
由 gdb 调试得知,在第二关需要输入的是两个整数。整数0x2e0f52aa使用单精度浮点数格式表达为0x4E383D4B,分别将高低位字节转换为十进制整数后为15691和20024。按照sscanf()指定的格式输入15691 20024后,回车。

### GitHub 国内镜像站点列表 以下是经过整理的 GitHub 国内镜像站点列表,这些站点可以帮助您加快访问速度或绕过网络限制: #### 直接访问类镜像 1. **bgithub.xyz** 提供完整的 GitHub 功能支持,可以直接替代官方域名进行访问[^1]。 2. **kkgithub.com** 支持大部分功能,包括代码查看、Issue 和评论等功能。需要注意的是,该镜像不允许注册新账号或上传文件操作[^4]。 3. **gitclone.com** 这是一个通用型 Git 仓库克隆服务,不仅限于 GitHub,还支持其他平台的项目托管迁移。对于仅需下载项目的场景非常适用[^5]。 4. **hub.nuaa.cf** 南京航空航天大学提供的非官方 GitHub 加速镜像,适用于资源加载缓慢的情况[^5]。 5. **github.ur1.fun** 主要用于解决资产文件(Assets)加载失败的问题,适合用来获取静态资源文件[^2]。 #### 文件加速类镜像 6. **gh.api.99988866.xyz/** 针对大文件传输进行了优化处理,能够有效缓解因跨国带宽不足而导致的速度瓶颈问题。 7. **ghproxy.com/** 常见开源代理方案之一,广泛应用于各类第三方应用当中作为默认配置选项存在[^2]。 8. **moeyy.cn/gh-proxy/** 特定用途下的高效解决方案,尤其当遇到某些特定类型的二进制包难以正常拉取时可以试用此路径[^2]。 9. **ghp.ci/** 类似于前两者但可能拥有不同维护团队背景,具体表现取决于实际测试效果如何. 10. **ghproxy.net/** 属于较为稳定的公共 CDN 节点之一,在多个地区均有良好反馈记录显示其可靠性较高. --- ### 注意事项 尽管以上列举了一些常用的备选地址,但在使用过程中仍需留意以下几点: - 并非所有镜像都完全兼容原始站点的所有特性; - 不建议在非信任环境下输入个人敏感信息如密码等资料; - 如果发现某一站点失效,请及时切换至另一候选对象继续尝试直至成功为止; 此外值得注意的是,随着时间和政策环境变化,部分曾经有效的链接可能会逐渐失去作用甚至彻底关闭服务——因此定期查阅最新推荐清单显得尤为重要。 ```python import requests def fetch_github_content(url): try: response = requests.get(url, timeout=10) if response.status_code == 200: return response.text else: raise Exception(f"Failed to load {url}, status code: {response.status_code}") except Exception as e: print(e) if __name__ == "__main__": urls_to_test = [ "https://bgithub.xyz", "https://kkgithub.com", "https://gitclone.com" ] results = {} for url in urls_to_test: result = fetch_github_content(url) results[url] = bool(result) print(results) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值