作者:ch0ing
定位加密
官网直接提供这么多格式的系统下载

直接下载的bin文件binwalk梭哈不开。
下一个ISO回来装成虚拟机,咱还收拾不了你了吗。
用7-zip打开.vmdk文件。
rootfs脱出来解不开。啊这,不按套路出牌啊。

初步怀疑是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看一下

好吧,看起来就是像大雄同学对内核加了一些逻辑。然后来解密rootfs。
分析加密
分析思路为对着linux的内核代码,看反编译中添加了什么代码逻辑来解密。
常规套路,要想分析,先搞点报错字符串出来。
将vmdk挂载到ubantu,rootfs内容随便改改,然后启动,可以抓到报错关键字.”Invaild rootfs”
有了关键字就好办了。
使用工具:
https://github.com/torvalds/linux/blob/master/scripts/extract-vmlinux
将bzImage提取为vmlinux文件。
然后搜索关键字找到调用点,通过函数中其他得打印字符串定位加密逻辑就在在populate_rootfs函数中

通过开源代码还原代码中的变量名,变量类型。
https://github.com/torvalds/linux/blob/v3.18/init/initramfs.c


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


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

审核编辑:汤梓红
-
Linux
+关注
关注
88文章
11631浏览量
218032 -
虚拟机
+关注
关注
1文章
968浏览量
30189
原文标题:【技术干货】记一次固件解密学习--X软路由
文章出处:【微信号:IOTsec Zone,微信公众号:IOTsec Zone】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
68013如何只通过下载一次运行固件
怎么样才能选择合适的软路由配置
怎么样才能选择合适的软路由配置?
如何选择适合自己的软路由配置
记一次使用可调电源修复饿死严重亏电的电动车电瓶
【学习打卡】记一次给OpenHarmony提交代码的过程

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