欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

buuctf firmware(binwalk和firmware-mod-kit的使用)

发布时间:2025/3/21 编程问答 29 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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

    把文件放在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的使用)的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。