buuctf firmware(binwalk和firmware-mod-kit的使用)
文章目录
- 题目介绍
- 环境搭配以及文件提取
- firmware-mod-kit工具:[https://blog.csdn.net/ldwj2016/article/details/80712566](https://blog.csdn.net/ldwj2016/article/details/80712566)
- 然后查壳
- 脱壳
- 拖进ida
题目介绍
环境搭配以及文件提取
bin文件,首先用binwalk来提取文件
- 先安装bin
sudo apt install binwalk
- 提取文件
binwalk -e firmware.bin
120200.squashfs
这是一个linux的压缩文件
我们需要firmware-mod-kit
工具来进行解压。
firmware-mod-kit工具:https://blog.csdn.net/ldwj2016/article/details/80712566
# For Ubuntu 需要安装的依赖库文件
$ sudo apt-get install git build-essential zlib1g-dev liblzma-dev python-magic
git clone https://github.com/mirror/firmware-mod-kit.git # 进入源码目录
cd firmware-mod-kit/src # 执行configure文件生成Makefile文件然后make编译生成可执行文件
./configure && make
extract-firmware.sh 解包固件build-firmware.sh 重新封包check_for_upgrade.sh 检查更新
./unsquashfs_all.sh fireware/120200.squashfs
find -name "*backdoor*"
然后查壳
脱壳
拖进ida
题目所要flag为:md5(网址:端口)
搜索字符串:
网址的话也就只有这个。网址:echo.byethost51.com
在主函数中关于连接的代码的话,也就这里 :
initConnection()
函数
58转化为字符后是":"
进入 initConnection()函数后看到的是端口号为36667,查看一下这个函数,
char *strchr(const char *str, int c)
参数str
– 要被检索的 C 字符串。
c – 在 str
中要搜索的字符。
33a422c45d551ac6e4756f59812a954b
if ( strchr(&s, ':') ){v0 = strchr(&s, ':');v3 = atoi(v0 + 1);*strchr(&s, 58) = 0;}
这个函数的意思我觉得是,检查一下这个网址后面有没有自带端口,有的话呢,就把端口值取出来赋给v3,也就是原来我们自己赋的端口值,然后把:
这个位置改为0(为什么要把区分网址和端口的位置改为0,我也很好奇);没有的话呢,就直接跳过
刚才错了,转换为字符一看后,就知道了,
它是\0,也就是字符结束标志喽,然后呢,这个字符串就去掉了端口号,它就会自行去拼接
buuctf firmware(binwalk和firmware-mod-kit的使用)相关推荐
- BUUCTF firmware
新题型,记录 拿到手的是bin文件,也就是二进制文件,其用途依系统或应用而定.一种文件格式binary的缩写.一个后缀名为".bin"的文件,只是表明它是binary格式. 一安装 ...
- linux移植wifi sd8688.bin 最新固件,[ZZ]浅析firmware完整生存和使用流程
/class/firmware error = kobject_add(&dev->kobj, dev->kobj.parent, "%s", dev-> ...
- 【19】简单、通用、详细---PCIEAER的蒙代尔不可能三角,怎么禁止AER的firmware first mode
pcie aer howto https://github.com/torvalds/linux/blob/master/Documentation/PCI/pcieaer-howto.txt p ...
- 英特尔网卡更新firmware方法
英特尔网卡更新firmware方法 更新firmware可解决的问题为,以太网控制器的 PCIe 链路间歇性无法建立. #第一步,进入intel官网下载firmware升级包,网址为 https:// ...
- Android linux firmware下载——续request_firmware之fw_path_para方式
安卓10固件下载--续 正文开始 之前有写过一篇blog来分析安卓代码里固件下载部分的实现,链接:android8 linux内核下载固件函数request_firmware流程分析 但是最近在工作中 ...
- Binwalk固件分析利器
Binwalk介绍 Binwalk是一个固件的分析工具,旨在协助研究人员对固件非分析,提取及逆向工程用处.简单易用,完全自动化脚本,并通过自定义签名,提取规则和插件模块,还重要一点的是可以轻松地扩展. ...
- 自动提取文件系统---binwalk(一)
Binwalk是路由器固件分析的必备工具,该工具最大的优点就是可以自动完成指定文件的扫描,智能发掘潜藏在文件中所有可疑的文件类型及文件系统. 1.Binwalk和libmagic Binwalk的扫描 ...
- BinWalk安装和命令参数详解
前言 本周一安恒萌新粉丝群:928102972分享的工具为binwalk. Binwalk是一款快速.易用,用于分析,逆向工程和提取固件映像的工具.简单易用,完全自动化脚本,并通过自定义签名,提取规则 ...
- binwalk使用整理
入门指南 文章目录 常用参数 签名扫描 文件提取`-e` 提取特定的类型 熵分析 文件比较 常用参数 binwalk --help 显示binwalk帮助 签名扫描 Binwalk可以扫描固件映像以查 ...
最新文章
- HTTP协议---HTTP请求中的常用请求字段和HTTP的响应状态码及响应头
- I/O流(三)—对象的序列化和反序列化
- TIMEOUT will also publish one order event
- Spring Boot 与消息 (JMS、AMQP、RabbitMQ)
- 不看绝对血亏!java字符串转json
- [IIS6.0]Silverlight网站配置
- linux bash函数里面调用命令行,Linux-在gnome-terminal -x中运行bash函数
- linux mysql 5.6.14_CentOS 6.4下编译安装MySQL 5.6.14
- 2022考研英语二大纲
- python常用内置方法_Python3 常用的几个内置方法
- iPhone 9上架了?5月1日发货?
- 剑指offer python版 剪绳子
- 虚拟机VMware安装学习过程中遇到的几个问题
- 分享几款流程图软件,帮助你熟悉工作流程
- 库存盘点后的盘点差异解决方法
- Educational Codeforces Round 95 (Rated for Div. 2)C. Mortal Kombat Tower(状态机dp)
- Java计算两个时间的月份差值
- oracle索引一般叫什么意思,什么是oracle索引?
- java让线程空转_详解Java编程中对线程的中断处理
- 深入了解区块链的漏洞之1:介绍篇
热门文章
- 高中生学python培养思维能力_基于培养思维能力的Python语言程序设计教学
- java csrf_java使用jsp servlet来防止csrf 攻击的实现方法
- DL之AlexNet:AlexNet算法的架构详解、损失函数、网络训练和学习之详细攻略
- ML之回归预测:利用九大类机器学习算法对无人驾驶汽车系统参数(2018年的data,18+2)进行回归预测值VS真实值
- AI与医学:AI预测结合医学案例应用——当基因编辑转角遇到AI
- Crawler:基于BeautifulSoup库+requests库+伪装浏览器的方式实现爬取14年所有的福彩网页的福彩3D相关信息,并将其保存到Excel表格中
- TF之LiR:基于tensorflow实现机器学习之线性回归算法
- 4.1 Tensorflow:卷积函数
- PIL图像处理开发极简教程
- ubuntu QT Creater 安装