bbox.exe WriteUp

news/2025/3/6 23:03:45/文章来源:https://www.cnblogs.com/Binary-0/p/18752963

WriteUp

题目信息

名称:bbox.exe
分类:Reverse
描述:找到程序的flag

题目链接: https://pan.baidu.com/s/1u8bGbKcUF6_gLaw63L3jyA?pwd=h8r5 提取码: h8r5

解题思路

首先用DIE分析文件的结构,发现这是一个无壳的32位程序。

于是直接用32位IDA打开该文件进行反汇编,得到如下情况:

为方便阅读代码,将v13改为input,首先发现input需要满足63位长度,然后查看sub_401120函数,并将其初始化内容改为16进制,发现这是md5的标准幻数。

从而观察sub_401150, sub_401200函数,发现这分别是md5 update和final过程,最后将md5加密字符串和unk_403010内的字符串进行比对。于是,考虑将unk_403010对应数据提取出来,其数据为:

提取出来以后,将其进行md5解密,但是查询不到该解密结果。

于是考虑换一种思路,继续分析代码,发现flag的结果依赖于byte_403024,其数据为:

而该变量各位都对v3异或,并且v3是char类型,所以我们可以直接写脚本进行爆破。

首先可以利用LazyIDA插件提取出byte_403024的数据,得到如下结果:

[0x64, 0x00, 0x47, 0x47, 0x43, 0x04, 0x46, 0x50, 0x6B, 0x05, 0x47, 0x6B, 0x40, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x6B, 0x58, 0x04, 0x04, 0x53, 0x15]

然后编写如下脚本

爆破后发现如下字符串:

P4ssw0rd_1s_t00000000000000000000000000000000000000000000_l00g!

最后运行bbox.exe,得到最终flag

使用工具

工具链接: https://pan.baidu.com/s/1dzK8gcFjYEvnj_aA0UjBeQ?pwd=ry2d 提取码: ry2d

Flag

flag{P4ssw0rd_1s_t00000000000000000000000000000000000000000000_l00g!}

总结

通过本次题目学习到:
md5算法回顾
爆破思想
LazyIDA的使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/894061.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Deepseek-R1模型部署

一、每个客户端需要单独配置API版 前置条件: 1、英伟达的显卡 2、安装Ollama工具 3、Deepseek模型 4、Chatbox 部署Deepseek模型后使用Chatbox设置模型API即可使用缺点:需要在每台客户端都需要输入API,需要安装Chatbox软件 二、一次性配置API版本 前置条件: 1、英伟达的显卡…

学习理论:单阶段代理损失的(H, R) - 一致界证明

我们在上一篇博客中介绍了弃权学习的基本概念和方法,其中包括了针对多分类问题的单阶段预测器-拒绝器弃权损失L_{abst}。设l为在标签Y上定义的0-1多分类损失的代理损失,则我们可以在此基础上进一步定义弃权代理损失L。在上一篇博客中,我们还提到了单阶段代理损失满足的(H, R…

element组件学习

vite.config.js点击查看代码 import { fileURLToPath, URL } from node:urlimport { defineConfig } from vite import vue from @vitejs/plugin-vue import vueDevTools from vite-plugin-vue-devtools import AutoImport from unplugin-auto-import/vite import Components f…

SpringCloud学习-熟悉docker

前言:本人练习使用的是阿里云服务器,配置为:一:配置docker镜像加速 由于docker自带的镜像仓库地址速度很慢,甚至国内访问不了,所以需要做下镜像加速设置: # 创建目录 mkdir -p /etc/docker# 复制内容 tee /etc/docker/daemon.json <<-EOF {"registry-mirrors…

IntelliJ IDEA 激活码,免费不收费

IntelliJ IDEA 2020、2021、2022、2023、2024 通用激活,免费激活码,激活码实时更新IntelliJ IDEA 2020、2021、2022、2023、2024通用激活,激活码实时更新 激活码获取方式:扫描关注公众号,回复:激活码 【激活码会即时更新,过期后请重新获取】分享不易,赠人玫瑰,手有余香…

c语言实验1

一、实验目的会使用C语言程序开发环境(vs2010/devc++等),能熟练、正确使用它们编写、编译、运行、调试C程序 知道C程序结构和编码规范,能正确使用 能正确、熟练使用C语言输入输出函数: scanf() , printf() , getchar() , putchar() 能灵活、组合使用基本数据类型、运算符和…

双列集合

介绍双列集合中,每次添加元素添加一对(2个)数值 每对元素之间是一一对应的 最顶层为Map,有三个实现类,如下图双列集合特点 双列集合一次需要存一对数据,分别为键和值 键不能重复,值可以重复 键和值是一一对应的,每一个键只能找到自己对应的值 键+值这个整体 我们称之为…

单列集合

介绍 集合分为两种,一种是单列集合,一种是双列集合单列集合中 List系列集合添加元素是有序,可重复,有索引的 set系列集合添加元素是无序,不可重复,无索引的Collection是单列集合的祖宗接口,所以全部的单列集合都可以使用它的方法Collection基本方法 add方法,添加元素 …

黄河流域水土保持生态效应AI一体化评价平台

黄河流域作为我国北方重要的生态屏障,其生态保护和高质量发展一直是国家战略的重点。随着人工智能技术的飞速发展,黄河流域水土保持生态效应AI一体化评价平台的建设,标志着生态保护工作进入了一个新的阶段。本文将对这一平台的建设内容进行深度分析。1. 平台建设背景与意义黄…

使用PHP+HTML集成DeepSeek API,实现一个简单的聊天对话项目

项目效果预览1. 准备工作PHP环境:确保你的开发环境中安装了PHP。 DeepSeek API密钥:注册并获取DeepSeek API的访问密钥。2. 创建PHP文件,编写API调用脚本 创建一个PHP脚本(api.php),用于调用DeepSeek API。假设API密钥为YOUR_API_KEY。 <?php header(Content-Type: a…

(15)事件处理,表单绑定

可以参考官网https://cn.vuejs.org/guide/essentials/event-handling.html来学习 添加事件,处理事件,传递参数 监听事件​ 我们可以使用 v-on 指令 (简写为 @) 来监听 DOM 事件,并在事件触发时执行对应的 JavaScript。 用法:v-on:click="handler" 或 @click=&quo…

nginx + lua + kafka实现日志监控

nginx + lua + kafka实现日志监控 前言 1)架构图:2)方案:1:线上请求打向nginx后,使用lua完成日志整理:如统一日志格式,过滤无效请求,分组等。 2:根据不同业务的nginx日志,划分不同的topic。 3:lua实现producter异步发送到kafka集群。 4:对不同日志感兴趣的业务组实时消费…