999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VxWorks系統的路由器固件研究

2016-11-10 10:39:30叢培欣
電子測試 2016年19期
關鍵詞:嵌入式分析信息

叢培欣

(黑龍江省牡丹江市第一中學,157021)

基于VxWorks系統的路由器固件研究

叢培欣

(黑龍江省牡丹江市第一中學,157021)

本文通過kali linux系統的binwalk軟件工具及自行編寫程序,識別并分析了基于VxWorks的MemFS文件系統的路由器固件的文件特征,同時提取了相應路由器的固件文件。為后續路由器固件重寫提供思路及技術支持。

路由器固件,VxWorks,MemFS,kali linux 2.0

圖1 binwalk的識別結果截圖

0 引言

路由器(Router)是互聯網的主要結點設備,起到網絡互聯、路由選擇和擁塞控制等的作用。同時,在辦公、家庭等環境中得到廣泛的應用,是連接互聯網的必不可少的設備之一。隨著網絡應用的日益豐富,數據轉發量越來越大,對路由器的功能和性能要求也越來越高。路由器的功能和性能在硬件參數一致情況下,主要取決于路由器的固件,即路由器的操作系統。Wind River System公司的VxWorks嵌入式實時操作系統由于具有微內核、可裁剪、支持協議廣泛等特性,通常被路由器廠商作為路由器的操作系統,而VxWorks的文件系統MemFS以其獨特的文件壓縮與索引方式在路由器文件系統中占領了一席之地。

1 VxWorks操作系統簡介

VxWorks是美國Wind River System公司開發的具有工業領導地位的高性能嵌入式實時操作系統。VxWorks具有專門為實時嵌入式系統設計開發的操作系統內核,其基于操作系統的應用程序具有跨平臺的可移植性。系統只占用很小的存儲空間、可高度裁減,保證了系統的高效率運行。VxWorks以其微內核、強實時性、可裁剪性和高效等特性,使其在工業控制、通信、航空、航天等領域得到了廣泛應用。VxWorks由進程管理、存儲管理、設備管理、文件系統管理、網絡協議及系統應用等幾個部分構成。

2 VxWorks的文件系統MemFS簡介

在MemFS中,開發者不需要考慮相關的目錄結構,在此目錄結構下的固件只需要將文件打包做成一個集合,并將集合投放到c代碼中進行編譯,同時又因為沒有目錄結構以及文件索引,搭載著該文件系統的硬件相比之下會更大的發揮自身的硬件優勢并最大化的節約時間成本與空間成本。與SquashFS文件系統相比具有文件體積小,安全性高的特點,因而得到廣泛的應用。

3 Kali Linux簡介

Kali Linux是一個基于Debian的高級滲透測試和安全審計Linux發行版。它集成了精心挑選的滲透測試和安全審計的工具,供滲透測試和安全審計人員使用。其預裝了許多滲透測試軟件,包括如Nmap(端口掃描器)、Wireshark(數據包分析器)、John theRipper (密碼破解器),以及Aircrack-ng(一套用于對無線局域網進行滲透測試的軟件)和binwalk等工具。

本文在kali linux 2.0系統環境下進行MemFS文件系統的分析工作,使用該系統下binwalk工具以及linux工具集,分析路由器固件的文件結構。通過對binwalk識別結果分析可以獲取出固件內文件的相關信息,并進行文件提取。

圖2 文件頭相關信息截圖

圖3 各文件相關信息截圖

4 MemFS文件系統分析及文件提取

4.1整體思路

本文以一個搭載MemFS文件系統的tplink路由器固件為例,利用kali linux系統的binwalk工具進行固件文件系統的識別,通過對識別結果的觀察、分析確定文件系統的結構及特征,識別出各文件的名稱、位置及大小。然后,通過C語言自行編寫程序,按上述相關特征、規律進行文件提取,解壓縮。為后續根據個性需要,為路由器固件重寫提供支持。

4.2binwalk對固件文件識別與分析

首先,使用binwalk識別固件文件系統版本情況并分析文件的存在情況。binwalk的識別結果如圖1。

眾所周知,被某種算法壓縮的文件都有其特定的文件頭,通過識別文件頭即可識別出對應的壓縮算法。由圖1可知,MemFS存儲的文件均被lzma算法所壓縮,同時可知相關字節大小等信息。通過對lzma分析與字符串出現頻率分析可得被壓縮文件的文件頭為5A000080,如圖2中紅色標注。

繼續對binwalk識別結果進行分析,可得固件內各文件的文件名及文件的相關信息。結果如圖3所示。

由圖3 數據特征可知,各文件名及相關文件信息共占48個字節的數據塊,同時推測數據塊中前40個字節為文件名和“00”占位符,后8個字節為該文件大小與位置信息。通過上述識別出來的文件名、文件位置、文件大小、文件格式等信息,可通過自行編程對固件文件進行讀取。

最后,通過程序提取出的文件并沒有被解壓,這里可以通過P7zip軟件對這些文件進行批量解壓。文件提取并解壓縮后,發現8個字節中前4個字節是文件大小,后4個字節是文件位置,都是以十六進制的形態出現的,對前面所述推測加以驗證。但是,解壓后并沒有發現固件的內核文件,因此又重新觀察binwalk識別結果,發現還有一個文件沒有提取出,于是定位該文件,確定該文件大小并將其提取并解壓,發現這個文件并不是可執行文件,該問題有待進一步研究。

4.3固件文件提取

本文使用C語言自行編寫了提取固件文件的程序,包括主函數int main(int argc, char *argv[]),讀文件函數char *file_read(char *file, size_t *fsize), 寫文件函數int file_write(char *file, char *data, size_t size),固件提取函數int unowfs(char *data, size_t size)。通過主函數調用相關函數實現循環讀取固件文件。

4.3.1文件提取函數unowfs(char *data, size_t size)流程圖

4.3.2文件提取函數unowfs(char *data, size_t size)源碼

int unowfs(char *data, size_t size)

/* 變量定義及初始化*/

int count = 0, i = 0, offset = 0;

struct owfs_header *header = NULL;

struct owfs_entry * entry = NULL;

char file_name[FILE_PATH_SIZE] = { 0 };

/* 檢驗文件是否有效 */

if(size < sizeof(struct owfs_header))

fprintf(stderr, "Invalid image: size too small ");

goto end;

header = (struct owfs_header *) data;

if(memcmp(header->magic, MAGIC, MAGIC_SIZE) != 0)

fprintf(stderr, "Invalid image: bad magic signature ");

goto end;

/* Values are in big endian format */

header->version = htonl(header->version);

header->num_entries = htonl(header->num_ entries);

fprintf(stderr, "Extracting %d files from OWFS version %d image... ", header->num_entries, header->version);

/* 遍歷所有文件*/

for(i=0,offset=sizeof(struct owfs_header);(i < header->num_entries && offset < size);i++,offset+=sizeof(struct owfs_entry))

entry = (struct owfs_entry *) (data + offset);

entry->size = htonl(entry->size);

entry->offset = htonl(entry->offset);

/* Make sure specially crafted file names don't write outside of the destination directory */

if(strstr(entry->name, DIRECTORY_ TRAVERSAL))

fprintf(stderr, "Refusing to extract potentially malicious file: %s ", entry->name);

continue;

memset((char *) &file_name, 0, FILE_PATH_ SIZE);

strncpy((char *) &file_name, FILE_PREFIX,FILE_PREFIX_SIZE);

strncat((char *) &file_name, entry->name,(FILE_PATH_SIZE - FILE_PREFIX_SIZE));

fprintf(stderr, "%s [%d] ", entry->name,entry->size);

/* 將數據寫入磁盤 */

if(file_write((char *) &file_name, (data + entry->offset), entry->size))

count++;

else

fprintf(stderr, "Failed to write data to disk for file %s ", entry->name);

end:

return count;

5 總結

本文主要通過使用kali linux系統binwalk工具,識別了MemFS文件系統的結構,通過編寫程序使得固件文件得以提取。為路由器固件定制、重寫提供的思路。基于固件的內核如何提取并復現是未來的研究工作。

[1]王金輝.VxWorks嵌入式實時操作系統的原理和實現[J]. Radio Engineering,2007,(37):62-64.

[2]張軍.基于Vxworks實時操作系統的串口通信程序設計與實現[J].微計算機信息,2006,(22),2-2:98-99.

[3]翁羽翔.基于VxWorks嵌入式系統的應用研究[D].同濟大學.2007.

Study of router firmware based on VxWorks system

Cong Peixin
(The first high school of Mudanjiang, Heilongjiang Province,157021)

This paper analyzed the characteristics of MemFS file system based on VxWorks system of router firmware,by using binwalk software tools of Kali Linux system and procedures written by myself,and the corresponding router firmware files are extracted.Provide ideas and technical support for the subsequent router firmware rewriting.

router firmware;VxWorks;MemFS;kali linux 2.0

猜你喜歡
嵌入式分析信息
隱蔽失效適航要求符合性驗證分析
電力系統不平衡分析
電子制作(2018年18期)2018-11-14 01:48:24
搭建基于Qt的嵌入式開發平臺
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
電力系統及其自動化發展趨勢分析
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
Altera加入嵌入式視覺聯盟
倍福 CX8091嵌入式控制器
自動化博覽(2014年4期)2014-02-28 22:31:15
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 亚洲色图欧美| 99成人在线观看| 国产在线高清一级毛片| 国产视频 第一页| 精品1区2区3区| 国产成人综合亚洲欧洲色就色| 在线精品视频成人网| 原味小视频在线www国产| 午夜福利视频一区| 99久久性生片| 国产成人艳妇AA视频在线| 久久青草精品一区二区三区| 国产日本欧美在线观看| 久久动漫精品| 毛片久久网站小视频| 69综合网| 国产人成在线观看| 91黄色在线观看| 国产内射一区亚洲| 亚洲第一视频免费在线| 亚洲无线国产观看| 粉嫩国产白浆在线观看| 无码国内精品人妻少妇蜜桃视频 | 国产精品美女自慰喷水| 99爱视频精品免视看| 日韩中文精品亚洲第三区| 怡红院美国分院一区二区| 日本一本在线视频| 少妇精品在线| 欧美中文字幕第一页线路一| 亚洲日韩久久综合中文字幕| 欧美精品成人| 国产精品xxx| 国产成人精品2021欧美日韩 | 在线播放真实国产乱子伦| 亚洲欧美日韩视频一区| 国产日产欧美精品| 日韩精品免费在线视频| 中国丰满人妻无码束缚啪啪| 亚洲色中色| 麻豆精品在线视频| 亚洲欧美综合在线观看| a免费毛片在线播放| 精品国产一二三区| 国产成人精品综合| 狠狠色噜噜狠狠狠狠奇米777 | 永久成人无码激情视频免费| 国产毛片久久国产| 国产污视频在线观看| 91最新精品视频发布页| 天堂岛国av无码免费无禁网站 | 亚洲精品动漫在线观看| 国产网站免费观看| 日本五区在线不卡精品| 老色鬼久久亚洲AV综合| 亚洲一区二区在线无码| 天堂av高清一区二区三区| 色综合天天娱乐综合网| 永久免费av网站可以直接看的| 波多野结衣久久高清免费| 国产日本一线在线观看免费| 欧美a在线| 欧美综合中文字幕久久| 美女无遮挡免费视频网站| 久久久精品无码一二三区| 女人一级毛片| 国产亚洲视频在线观看| 国产中文在线亚洲精品官网| 天天色天天综合网| 日韩成人免费网站| 亚洲国内精品自在自线官| 午夜福利亚洲精品| 欧美精品导航| 欧美国产综合色视频| 香蕉综合在线视频91| 国产福利影院在线观看| 91小视频在线观看免费版高清| 国产成人精品视频一区视频二区| 日本在线欧美在线| 无码人妻免费| 国产区在线看| 强奷白丝美女在线观看 |