文章目录

  • 题目介绍
  • 环境搭配以及文件提取
  • firmware-mod-kit工具:[https://blog.csdn.net/ldwj2016/article/details/80712566](https://blog.csdn.net/ldwj2016/article/details/80712566)
  • 然后查壳
  • 脱壳
  • 拖进ida

题目介绍


环境搭配以及文件提取

bin文件,首先用binwalk来提取文件

  1. 先安装bin
sudo apt install binwalk
  1. 提取文件
 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

把文件放在firmware-mod-kit目录下进行解压

extract-firmware.sh 解包固件build-firmware.sh 重新封包check_for_upgrade.sh 检查更新

进行如下解压。

 ./unsquashfs_all.sh  fireware/120200.squashfs

然后得到目录


根据题目,他需要找后门软件,直接find即可

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的使用)相关推荐

  1. BUUCTF firmware

    新题型,记录 拿到手的是bin文件,也就是二进制文件,其用途依系统或应用而定.一种文件格式binary的缩写.一个后缀名为".bin"的文件,只是表明它是binary格式. 一安装 ...

  2. linux移植wifi sd8688.bin 最新固件,[ZZ]浅析firmware完整生存和使用流程

    /class/firmware error = kobject_add(&dev->kobj, dev->kobj.parent, "%s", dev-> ...

  3. 【19】简单、通用、详细---PCIEAER的蒙代尔不可能三角,怎么禁止AER的firmware first mode

    pcie aer howto https://github.com/torvalds/linux/blob/master/Documentation/PCI/pcieaer-howto.txt   p ...

  4. 英特尔网卡更新firmware方法

    英特尔网卡更新firmware方法 更新firmware可解决的问题为,以太网控制器的 PCIe 链路间歇性无法建立. #第一步,进入intel官网下载firmware升级包,网址为 https:// ...

  5. Android linux firmware下载——续request_firmware之fw_path_para方式

    安卓10固件下载--续 正文开始 之前有写过一篇blog来分析安卓代码里固件下载部分的实现,链接:android8 linux内核下载固件函数request_firmware流程分析 但是最近在工作中 ...

  6. Binwalk固件分析利器

    Binwalk介绍 Binwalk是一个固件的分析工具,旨在协助研究人员对固件非分析,提取及逆向工程用处.简单易用,完全自动化脚本,并通过自定义签名,提取规则和插件模块,还重要一点的是可以轻松地扩展. ...

  7. 自动提取文件系统---binwalk(一)

    Binwalk是路由器固件分析的必备工具,该工具最大的优点就是可以自动完成指定文件的扫描,智能发掘潜藏在文件中所有可疑的文件类型及文件系统. 1.Binwalk和libmagic Binwalk的扫描 ...

  8. BinWalk安装和命令参数详解

    前言 本周一安恒萌新粉丝群:928102972分享的工具为binwalk. Binwalk是一款快速.易用,用于分析,逆向工程和提取固件映像的工具.简单易用,完全自动化脚本,并通过自定义签名,提取规则 ...

  9. binwalk使用整理

    入门指南 文章目录 常用参数 签名扫描 文件提取`-e` 提取特定的类型 熵分析 文件比较 常用参数 binwalk --help 显示binwalk帮助 签名扫描 Binwalk可以扫描固件映像以查 ...

最新文章

  1. HTTP协议---HTTP请求中的常用请求字段和HTTP的响应状态码及响应头
  2. I/O流(三)—对象的序列化和反序列化
  3. TIMEOUT will also publish one order event
  4. Spring Boot 与消息 (JMS、AMQP、RabbitMQ)
  5. 不看绝对血亏!java字符串转json
  6. [IIS6.0]Silverlight网站配置
  7. linux bash函数里面调用命令行,Linux-在gnome-terminal -x中运行bash函数
  8. linux mysql 5.6.14_CentOS 6.4下编译安装MySQL 5.6.14
  9. 2022考研英语二大纲
  10. python常用内置方法_Python3 常用的几个内置方法
  11. iPhone 9上架了?5月1日发货?
  12. 剑指offer python版 剪绳子
  13. 虚拟机VMware安装学习过程中遇到的几个问题
  14. 分享几款流程图软件,帮助你熟悉工作流程
  15. 库存盘点后的盘点差异解决方法
  16. Educational Codeforces Round 95 (Rated for Div. 2)C. Mortal Kombat Tower(状态机dp)
  17. Java计算两个时间的月份差值
  18. oracle索引一般叫什么意思,什么是oracle索引?
  19. java让线程空转_详解Java编程中对线程的中断处理
  20. 深入了解区块链的漏洞之1:介绍篇

热门文章

  1. 高中生学python培养思维能力_基于培养思维能力的Python语言程序设计教学
  2. java csrf_java使用jsp servlet来防止csrf 攻击的实现方法
  3. DL之AlexNet:AlexNet算法的架构详解、损失函数、网络训练和学习之详细攻略
  4. ML之回归预测:利用九大类机器学习算法对无人驾驶汽车系统参数(2018年的data,18+2)进行回归预测值VS真实值
  5. AI与医学:AI预测结合医学案例应用——当基因编辑转角遇到AI
  6. Crawler:基于BeautifulSoup库+requests库+伪装浏览器的方式实现爬取14年所有的福彩网页的福彩3D相关信息,并将其保存到Excel表格中
  7. TF之LiR:基于tensorflow实现机器学习之线性回归算法
  8. 4.1 Tensorflow:卷积函数
  9. PIL图像处理开发极简教程
  10. ubuntu QT Creater 安装