作者: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
+關注
關注
87文章
11373瀏覽量
211248 -
虛擬機
+關注
關注
1文章
954瀏覽量
28618
原文標題:【技術干貨】記一次固件解密學習--X軟路由
文章出處:【微信號:IOTsec Zone,微信公眾號:IOTsec Zone】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
68013如何只通過下載一次運行固件
怎么樣才能選擇合適的軟路由配置
怎么樣才能選擇合適的軟路由配置?
記一次使用可調電源修復餓死嚴重虧電的電動車電瓶

記一次CH552不識別無法下載解決辦法

【學習打卡】記一次給OpenHarmony提交代碼的過程

評論