linux嵌入式產品破解終端及telnet密碼

1 提取板載根文件系統

串口

設備串口參數通常是115200 8n1 ,即波特率115200,數據位8位,無檢驗,停止位一位。將設備的串口與PC主機串口相連。使用串口終端工具,如secureCRT,配置好相應參數,連接上相應串口。

查看uboot參數

設備上電,查看uboot的打印信息,可以獲取flash類型、塊大小等參數。在uboot階段stop,進入uboot命令狀態。

#pri

打印出uboot的變量,查看bootargs和bootcmd,分析出文件系統所在flash偏移位置及其大小。
一般bootargs中會攜帶flash分區信息。
如: mtdparts=hi_sfc:1M(boot),2M(uImage),13M(rootfs)
上述分區在flash的情況就是:

boot uImage rootfs
1M 2M 13M



1M(boot),表示分區大小1M,分區名boot。
rootfs字樣通常是根文件系統,由上述分區信息,可以得出文件系統大小13M(0xd00000), 在flash偏移3M(0x300000)處。

通過tftp將根文件系統上傳到服務器

tftp的使用,可參見:http://blog.csdn.net/c20130911/article/details/73469032
以SPI FLASH爲例,此處直接給出命令:
sf probe 0;sf read 0x82000000 0x300000 0xd00000;tftp 0x82000000 rootfs.jffs2 0xd00000
執行成功後,即可在tftp服務器在主目錄下生成rootfs.jffs2文件,大小13M,至此就將flash的文件系統鏡像拷貝出來了。
本文是以設備中根文件系統類型爲jffs2爲例闡述,其他類型大同小異。

2 在PC上掛載編輯根文件系統

環境:在PC上的linux系統下(如ubuntu)
切換到root用戶操作:

1. #modprobe mtdblock   //加載mtdblock內核模塊

2. #modprobe mtdram total_size=13312 erase_size=64   
    //加載mtdram模塊,將設備大小total_size指定爲根文件系統大小
    13M,將塊擦除大小erase_size指定爲flash塊大小64KB(可查看設
    備uboot啓動打印信息獲得);此處這兩個數值單位都是KB

3. #dd if=rootfs.jffs2 of=/dev/mtdblock0     //使用dd命令,將根文件系統複製到/dev/mtdblock0, 生成設備/dev/mtdblock0

4. #mount -t jffs2 /dev/mtdblock0 /mnt/dev_rootfs   
   //將mtdblock0設備mount到目錄dev_rootfs,此時訪問/mnt/dev_rootfs,就是完整的文件系統目錄了

5. 編輯dev_rootfs/etc/passwd文件,將root所在行,root後兩個冒號
   之間的內容(密碼)清空,即去除telnet的密碼

6. 編輯dev_rootfs/etc/inittab文件,
    找到“#::respawn:/sbin/getty -L ttyS000 115200 vt100 -n root -I "Auto login as root ...”類似行,
    將前面的註釋符號#去掉,這樣操作設備起來後就會自動進入串口終端

7. 有時設備應用程序啓動後,會更新密碼,可修改啓動腳本
    etc/init.d/rcS,在最後延時一段時間(等系統完全啓動修改密碼),
    如sleep 10, 加上一行命令再次修改下我們知道的密碼,如:
     echo root:12345 | chpasswd   //修改root的密碼爲12345

8. 如果設備未開啓telnet、ftp等服務,可以修改etc/init.d/rcS腳本,
   增加上去,如telnetd & (&表示在後臺運行)

9.修改完成後,直接使用dd命令,將設備重新拷貝成根文件系統鏡像
   dd if=/dev/mtdblock0 of=rootfs.jffs2
   至此我們就得到修改過後的根文件系統rootfs.jffs2,知道telnet的密碼,支持串口終端 

3 將編輯過的根文件系統鏡像重新燒寫回板載FLASH中

將修改過的根文件系統rootfs.jffs2燒寫回板子的FLASH, 通過uboot下tftp燒寫。
tftp的使用,可參見:http://blog.csdn.net/c20130911/article/details/73469032

此處以SPI FLASH爲例,貼出完整的命令:
mw.b 0x82000000 0xff 0xd00000;tftp 0x82000000 rootfs.jffs2;sf probe 0;sf erase 0x300000 0xd00000;sf write 0x82000000 0x300000 0xd00000;reset

設備重新啓動後,即可使用telnet及串口終端了。

發佈了37 篇原創文章 · 獲贊 13 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章