0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

记一次固件解密学习--X软路由

jf_dh5wfJWV 来源:IOTsec Zone 作者:ch0ing 2022-11-12 14:38 次阅读

作者:ch0ing

定位加密

官网直接提供这么多格式的系统下载

ee231610-3b16-11ed-9e49-dac502259ad0.png

直接下载的bin文件binwalk梭哈不开。

下一个ISO回来装成虚拟机,咱还收拾不了你了吗。

用7-zip打开.vmdk文件。

rootfs脱出来解不开。啊这,不按套路出牌啊。

ee4f7aca-3b16-11ed-9e49-dac502259ad0.png

初步怀疑是grub 或者vmlinuz被厂商进行了修改,加入了解密操作。

grub配置关键代码

menuentry "xxxxxi RouterOS" "$ikversion" "$uuid" "$default" {  linux /boot/vmlinuz root=/dev/ram0 crashkernel=128M@64M rootfstype=ext4 rootwait console=tty0 bootguide=hd intel_idle.max_cstate=0 processor.max_cstate=0 ikversion=$2 diskuuid=$3 grub_menu_id=0 grub_default=$4  initrd /boot/rootfs}

从磁盘文件中解出grub和vmlinuz看一下

ee6d6b02-3b16-11ed-9e49-dac502259ad0.png

好吧,看起来就是像大雄同学对内核加了一些逻辑。然后来解密rootfs。

分析加密

分析思路为对着linux的内核代码,看反编译中添加了什么代码逻辑来解密。

常规套路,要想分析,先搞点报错字符串出来。

将vmdk挂载到ubantu,rootfs内容随便改改,然后启动,可以抓到报错关键字.”Invaild rootfs”

有了关键字就好办了。

使用工具:

https://github.com/torvalds/linux/blob/master/scripts/extract-vmlinux

将bzImage提取为vmlinux文件。

然后搜索关键字找到调用点,通过函数中其他得打印字符串定位加密逻辑就在在populate_rootfs函数中

ee7fd170-3b16-11ed-9e49-dac502259ad0.png

通过开源代码还原代码中的变量名,变量类型。

https://github.com/torvalds/linux/blob/v3.18/init/initramfs.c

eebf6e20-3b16-11ed-9e49-dac502259ad0.pngef29edae-3b16-11ed-9e49-dac502259ad0.png

可以看到,在do_while循环中通过16位key_16数组生成1024位key_1024数组。

ef972fd6-3b16-11ed-9e49-dac502259ad0.pngefbd4aae-3b16-11ed-9e49-dac502259ad0.png

然后再for循环中通过key_1024运算解密。

efde38b8-3b16-11ed-9e49-dac502259ad0.png

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11293

    浏览量

    209340
  • 虚拟机
    +关注

    关注

    1

    文章

    914

    浏览量

    28160

原文标题:【技术干货】记一次固件解密学习--X软路由

文章出处:【微信号:IOTsec Zone,微信公众号:IOTsec Zone】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【freeRTOS开发笔记】一次坑爹的freeTOS升级

    【freeRTOS开发笔记】一次坑爹的freeTOS-v9.0.0升级到freeRTOS-v10.4.4
    的头像 发表于 07-11 09:15 4633次阅读
    【freeRTOS开发笔记】<b class='flag-5'>记</b><b class='flag-5'>一次</b>坑爹的freeTOS升级

    68013如何只通过下载一次运行固件

    嗨,大家好。我尝试下载固件到68013在我的应用软件上运行的软件。但我发现我必须下载两。我第一次下载固件68013A不运行。在我再次下载之后,68013运行
    发表于 04-17 09:22

    使用HAProxy软件的一次学习过程介绍

    一次学习过程
    发表于 06-13 10:48

    一次网站设计稿的方法

    一次网站设计稿
    发表于 06-16 09:43

    电池循环充放电一次就是少一次寿命吗?

    电池循环充放电一次就是少一次寿命吗? 循环就是使用,我们是在使用电池,关心的是使用的时间,为了衡量充电电池
    发表于 09-06 11:05 3594次阅读

    怎么样才能选择合适的路由配置

    随着网络的普及,很多用户开始使用路由。所谓的路由就是利用x86架构工控机、电脑,安装类似ROS、爱快、openwrt等
    的头像 发表于 01-24 11:54 2335次阅读

    怎么样才能选择合适的路由配置?

    随着网络的普及,很多用户开始使用路由。所谓的路由就是利用x86架构工控机、电脑,安装类似ROS、爱快、openwrt等
    的头像 发表于 02-05 12:35 2.1w次阅读

    如何选择适合自己的路由配置

    随着网络的普及,很多用户开始使用路由。所谓的路由就是利用x86架构工控机、电脑,安装类似ROS、爱快、openwrt等
    的头像 发表于 02-07 14:21 3w次阅读

    路由和硬路由的区别

    路由的费用较路由大,个300元的路由的功能就可以与万元级别的硬
    发表于 03-26 09:23 1.5w次阅读

    一次使用可调电源修复饿死严重亏电的电动车电瓶

    一次使用可调电源修复饿死严重亏电的电动车电瓶程序模板 V0.0.5.1.20210820前言最少需要哪些工具把梅花的螺丝刀(“+”
    发表于 01-07 14:22 2次下载
    <b class='flag-5'>记</b><b class='flag-5'>一次</b>使用可调电源修复饿死严重亏电的电动车电瓶

    一次CH552不识别无法下载解决办法

    一次CH552不识别解决办法插入链接与图片如何插入段漂亮的代码片生成个适合你的列表创建个表格设定内容居中、居左、居右SmartyPa
    发表于 01-12 19:15 5次下载
    <b class='flag-5'>记</b><b class='flag-5'>一次</b>CH552不识别无法下载解决办法

    学习打卡】一次给OpenHarmony提交代码的过程

    一次给OpenHarmony提交代码的过程 作者:坚果 公众号:"大前端之旅" OpenHarmony布道师,InfoQ签约作者,CSDN博客专家,华为云享专家,阿里云专家博主,51CTO博客首席
    的头像 发表于 07-02 10:31 2741次阅读
    【<b class='flag-5'>学习</b>打卡】<b class='flag-5'>记</b><b class='flag-5'>一次</b>给OpenHarmony提交代码的过程

    路由器多久关机一次最合适

    路由器多久关机一次最合适 路由天关一次好吗
    发表于 09-27 14:23 0次下载

    电气一次识图基础

    电气一次识图基础
    的头像 发表于 11-12 11:24 2117次阅读

    解密路由:打破网络传统,轻松定制你的路由体验,千度迷你电脑入门级路由

    1. 基础概念解释: 路由,听起来高大上,实际上是种让网络变得更灵活的神奇工具。简单来说,路由就是通过
    的头像 发表于 01-09 11:23 1003次阅读
    <b class='flag-5'>解密</b><b class='flag-5'>软</b><b class='flag-5'>路由</b>:打破网络传统,轻松定制你的<b class='flag-5'>路由</b>体验,千度迷你电脑入门级<b class='flag-5'>软</b><b class='flag-5'>路由</b>