发明内容
基于此,有必要提供一种能够快速修复路由器固件漏洞的方法。
一种修复路由器固件漏洞的方法,包括如下步骤:
获取路由器固件的源代码;
在预存在数据库中的路由器固件源代码库中查找与所述路由器固件的文件系统类型对应的预存源代码,并将所述路由器固件的源代码替换为所查找到的预存源代码;
将所述路由器固件写入路由器中;
其中,所述路由器固件源代码库中包括一种以上的所述预存源代码,每种所述预存源代码与一种路由器固件的文件系统类型相对应,且所述预存源代码为无漏洞的源代码。
在其中一个实施例中,所述修复路由器固件漏洞的方法还包括:按照预设频率更新所述路由器固件源代码库中的预存源代码。
在其中一个实施例中,所述数据库中还预存有固件解析方法库;所述获取路由器固件的源代码步骤包括:
提取路由器固件;
在所述固件解析方法库中选择与所述路由器固件的文件系统类型对应的固件解析方法对所述路由器固件进行解析,获取所述路由器固件的源代码;
其中,所述固件解析方法库中包括一种以上的所述固件解析方法,每种所述固件解析方法对应一种文件系统类型。
在其中一个实施例中,通过无漏洞的路由器获取所述预存源代码,或
通过官方网站获取所述预存源代码,或
通过路由器管理终端生成所述预存源代码。
在其中一个实施例中,通过路由器的TTL接口将所述路由器固件写入路由器中。
本发明还提出一种修复路由器固件漏洞的系统,包括源代码获取模块、数据库、源代码处理模块和写入模块;
所述源代码获取模块,被配置以获取路由器固件的源代码;
所述数据库,被配置以存储路由器固件源代码库;
所述源代码处理模块,被配置以与所述数据库连接并获取所述路由器固件源代码库,以及在所述路由器固件源代码库中查找与所述路由器固件的文件系统类型对应的预存源代码,并将所述路由器固件的源代码替换为所查找到的预存源代码;
所述写入模块,被配置以将所述路由器固件写入路由器中;
其中,所述路由器固件源代码库中包括一种以上的所述预存源代码,每种所述预存源代码与一种路由器固件的文件系统类型相对应,且所述预存源代码为无漏洞的源代码。
在其中一个实施例中,所述修复路由器固件漏洞的系统还包括更新模块;所述更新模块,被配置以按照预设频率更新所述路由器固件源代码库中的预存源代码。
在其中一个实施例中,所述数据库还被配置以预存固件解析方法库;所述源代码获取模块包括路由器固件提取单元和路由器固件解析单元;
所述路由器固件提取单元,被配置以提取路由器固件;
所述路由器固件解析单元,被配置以与所述数据库连接并获取所述固件解析方法库,以及在所述固件解析方法库中选择与所述路由器固件的文件系统类型对应的固件解析方法对所述路由器固件进行解析,获取所述路由器固件的源代码;
其中,所述固件解析方法库中包括一种以上的所述固件解析方法,每种所述固件解析方法对应一种文件系统类型。
在其中一个实施例中,通过无漏洞的路由器获取所述预存源代码,或
通过官方网站获取所述预存源代码,或
通过路由器管理终端生成所述预存源代码。
在其中一个实施例中,所述写入模块通过路由器的TTL接口将所述路由器固件写入路由器中。
上述修复路由器固件漏洞的方法和系统,获取到路由器固件的源代码后,在路由器固件源代码库中查找与路由器固件的文件系统类型对应的预存源代码,并将路由器固件的源代码替换为所查找到的预存源代码,能够较为快速且彻底的修复路由器固件的漏洞。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明修复路由器固件漏洞的方法和系统的具体实施方式进行说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图1,一个实施例中,本发明修复路由器固件的方法包括以下流程:
S100,获取路由器固件的源代码。
参见图2,一个优选的实施例中,步骤100可以包括以下步骤:
S110,提取路由器固件。
其中,可以通过路由器的TTL接口提取路由器固件。连接路由器的TTL接口和用于提取路由器固件的终端后,启动路由器,可以在终端上显示路由器启动过程中的各种信息,如:RAM(Random Access Memory,随机存储记忆体)大小、路由器型号、闪存大小等信息。然后通过相关命令将路由器固件进行备份,从而提取到路由器固件。
可以理解的,还可以通过编程器读取路由器闪存数据的方式来提取路由器固件。在路由器中设置有闪存芯片,闪存芯片中存储有路由器固件。路由器在启动过程中就是从闪存芯片中读取路由器固件并解析,然后执行,从而让整个系统正常运行。因此,可以将路由器的闪存芯片取出,然后用编程器读取闪存芯片中存储的路由器固件。
S120,在固件解析方法库中选择与路由器固件的文件系统类型对应的固件解析方法对路由器固件进行解析,获取路由器固件的源代码。
其中,数据库中预存有固件解析方法库。固件解析方法库包括一种以上的固件解析方法。每种固件解析方法对应一种文件系统类型。本实施例中所述的文件系统类型为路由器固件的文件系统类型。每种文件系统类型对应一种数据访问方式、一种数据存放格式和一种数据类型。一般的,路由器固件的文件特性包括数据访问方式、数据存放格式和数据类型中的一种以上的信息。因此,可以通过将路由器固件的文件特性与固件解析方法对应的文件系统类型匹配的方式,选择出可以解析路由器固件的固件解析方法,对路由器固件进行解析,并获取路由器固件的源代码。
一个优选的实施例中,步骤120可以包括以下流程:
首先,获取路由器固件的文件特性信息。
其中,文件特性信息包括数据访问方式、数据存放格式和数据类型中的一种以上的信息。数据访问方式、数据存放格式和数据类型均可以为一种以上,因此不同文件系统类型的路由器固件的文件特性信息不同。而获取路由器固件的文件特性信息的方法为现有技术,故在此不再赘述。
在一个优选的实施例中,文件特性信息包括数据访问方式、数据存放格式和数据类型三种信息。这样,可以使得在步骤S122中获得更为精确的匹配结果。
但本发明并不限于此,文件特性信息还可以只包括数据访问方式、数据存放格式和数据类型中的一种信息或两种信息;文件特性信息还可以包括数据访问方式、数据存放格式和数据类型以外的其他信息。当然,文件特性信息应与本实施例中的文件系统类型相对应。即,若文件特性信息中只包括数据访问方式、数据存放格式和数据类型以外的其他信息,则本实施例中的文件系统类型中也应包括该信息。文件系统类型和文件特性信息的具体情况可根据用户的具体需要而设定。
其次,将文件特性信息与固件解析方法库中的每种固件解析方法对应的文件系统类型进行匹配。
可以理解的,获取到路由器固件的文件特性信息以后,将该文件特性信息与固件解析方法库中的每种固件解析方法对应的文件系统类型进行匹配,从而搜索出与该文件特性信息匹配的文件系统类型。
本实施例中,每种固件解析方法对应的文件系统类型包括一种数据访问方式、一种数据存放格式和一种数据类型,文件特性信息也包括一种数据访问方式、一种数据存放格式和一种数据类型。因此,可以通过逐一匹配的方式,将文件特性信息与每种固件解析方法对应的文件系统类型进行匹配。
具体的,可以分别将文件特性信息中的数据访问方式与文件系统类型中的数据访问方式匹配,将文件特性信息中的数据存放格式与文件系统类型中的数据存放格式匹配,将文件特性信息中的数据类型与文件系统类型中的数据类型匹配,从而搜索出与文件特性信息相匹配的文件系统类型。搜索出的与文件特性信息相匹配的文件系统类型对应的固件解析方法即为解析该路由器固件的固件解析方法。
在其他实施例中,文件特性信息还可以包括数据访问方式、数据存放格式和数据类型中的一种或两种。对于只包括数据访问方式、数据存放格式和数据类型中的一种或两种的文件特性信息,只需将文件特性信息与文件系统类型进行对应的匹配即可。若文件特性信息中只包括数据访问方式和数据存放格式,则将文件特性信息中的数据访问方式与文件系统类型的数据访问方式相匹配,将文件特性信息中的数据存放格式与文件系统类型中的数据存放格式相匹配。
当然,还可以通过排除法,将文件特性信息与每种固件解析方法对应的文件系统类型进行匹配。例如,若其中一种固件解析方法对应的文件系统类型中的数据访问方式与文件特性信息中的数据访问方式不匹配,则不需再进行数据存放格式和数据类型的匹配,直接将下一种固件解析方法对应的文件系统类型与文件特性信息进行匹配。
最后,采用固件解析方法库中与文件特性信息相匹配的文件系统类型所对应的固件解析方法对路由器固件进行解析,获取路由器固件的源代码。
匹配出与文件特性信息相匹配的文件系统类型后,采用与该文件系统类型对应的固件解析方法对该路由器固件进行解析,获取到该路由器固件的源代码。
S200,在预存在数据库中的路由器固件源代码库中查找与路由器固件的文件系统类型对应的预存源代码,并将路由器固件的源代码替换为所查找到的预存源代码。
其中,数据库中预存有路由器固件源代码库。路由器固件源代码库中包括一种以上的预存源代码,且预存源代码为无漏洞的源代码。每种预存源代码与一种路由器固件的文件系统类型相对应。因此,每种预存源代码对应一种数据访问方式、一种数据存放格式和一种数据类型。因此可以将路由器固件的文件系统类型与每种预存源代码匹配,搜索与路由器固件的文件系统类型对应的预存源代码。
具体的,可以将预存源代码对应的数据访问方式、数据存放格式和数据类型分别与路由器固件的文件系统类型中的数据访问方式、数据存放格式和数据类型进行对应的匹配,搜索与路由器固件的文件系统类型对应的预存源代码。例如,将预存源代码对应的数据访问方式与文件系统类型中的数据访问方式进行匹配,将预存源代码对应的数据存放格式与文件系统类型中的数据存放格式进行匹配,将预存源代码对应的数据类型与文件系统类型中的数据访问类型进行匹配,从而搜索出与路由器固件的文件系统类型相匹配的预存源代码。
当然,还可以通过排除法,将预存源代码对应的数据访问方式、数据存放格式和数据类型分别与路由器固件的文件系统类型中的数据访问方式、数据存放格式和数据类型进行对应的匹配。例如,若其中一种预存源代码对应的数据访问方式与文件特性信息中的数据访问方式不匹配,则不需再进行数据存放格式和数据类型的匹配,直接进行下一种预存源代码与路由器固件的文件系统类型的匹配。
本发明中,可以通过无漏洞的路由器获得预存源代码,也可以通过路由器的官方网站获得预存源代码,还可以通过路由器管理终端生成预存源代码。
S300,将路由器固件写入路由器中。
其中,可以通过路由器的TTL接口将路由器固件写入路由器中。
另外,本发明修复路由器固件漏洞的方法还可以包括:按照预设频率更新路由器固件源代码库中的预存源代码。对路由器固件源代码库中的预存源代码进行更新,以适应路由器固件的不断更新。
上述修复路由器固件漏洞的方法,获取到路由器固件的源代码后,在路由器固件源代码库中查找与路由器固件的文件系统类型对应的预存源代码,并将路由器固件的源代码替换为所查找到的预存源代码,能够较为快速且彻底的修复路由器固件的漏洞。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
基于同一发明构思,本发明实施例提供一种修复路由器固件漏洞的系统,由于此系统解决问题的原理与前述一种解析路由器固件的方法相似,因此,该系统的实施可以按照前述方法的具体步骤实现,重复之处不再赘述。
参见图3,一个实施例中,本发明修复路由器固件的系统包括数据库100、源代码获取模块200、源代码处理模块300和写入模块400。
数据库100,被配置以存储路由器固件源代码库。
源代码获取模块200,被配置以获取路由器固件的源代码。
参见图4,一个实施例中,源代码获取模块200可以包括路由器固件提取单元210和路由器固件解析单元220。
路由器固件提取单元210,被配置以提取路由器固件。
其中,路由器固件提取单元210可以被配置以连接路由器的TTL接口并提取路由器固件。将路由器固件提取单元210与路由器的TTL接口连接后,启动路由器,可以在相关显示终端上显示路由器启动过程中的各种信息,如:RAM(Random Access Memory,随机存储记忆体)大小、路由器型号、闪存大小等信息。然后通过相关命令将路由器固件进行备份,从而提取到路由器固件。
路由器固件提取单元210还可以被配置以读取路由器闪存数据并提取路由器固件。在路由器中设置有闪存芯片,闪存芯片中存储有路由器固件。路由器在启动过程中就是从闪存芯片中读取路由器固件并解析,然后执行,从而让整个系统正常运行。因此,可以将路由器的闪存芯片取出,然后用路由器固件提取单元210从闪存芯片中读取路由器固件。路由器固件提取单元210为能够读取闪存芯片数据的装置,例如可以为编程器。
路由器固件解析单元220,被配置以与数据库连接并获取固件解析方法库,以及在固件解析方法库中选择与路由器固件的文件系统类型对应的固件解析方法对路由器固件进行解析,获取路由器固件的源代码。
其中,数据库100还被配置以预存固件解析方法库。固件解析方法库包括一种以上的固件解析方法。每种固件解析方法对应一种文件系统类型。本实施例中所述的文件系统类型为路由器固件的文件系统类型。每种文件系统类型对应一种数据访问方式、一种数据存放格式和一种数据类型。一般的,路由器固件的文件特性包括数据访问方式、数据存放格式和数据类型中的一种以上的信息。因此,可以通过将路由器固件的文件特性与固件解析方法对应的文件系统类型匹配的方式,选择出可以解析路由器固件的固件解析方法,对路由器固件进行解析,并获取路由器固件的源代码。
一个实施例中,路由器固件解析单元220可以包括文件特征获取子单元、文件特征匹配子单元和固件解析子单元。
文件特征获取子单元,被配置以获取路由器固件的文件特性信息。
其中,文件特性信息包括数据访问方式、数据存放格式和数据类型中的一种以上的信息。数据访问方式、数据存放格式和数据类型均可以为一种以上,因此不同文件系统类型的路由器固件的文件特性信息不同。而获取路由器固件的文件特性信息的方法为现有技术,故在此不再赘述。
优选的,文件特性信息包括数据访问方式、数据存放格式和数据类型三种信息。这样,可以使得文件特征匹配子单元获得更为精确的匹配结果。
但本发明并不限于此,文件特性信息还可以只包括数据访问方式、数据存放格式和数据类型中的一种信息或两种信息;文件特性信息还可以包括数据访问方式、数据存放格式和数据类型以外的其他信息。当然,文件特性信息应与本实施例中的文件系统类型相对应。即,若文件特性信息中只包括数据访问方式、数据存放格式和数据类型以外的其他信息,则本实施例中的文件系统类型中也应包括该信息。文件系统类型和文件特性信息的具体情况可根据用户的具体需要而设定。
文件特征匹配子单元,被配置以将文件特性信息与固件解析方法库中的每种固件解析方法对应的文件系统类型进行匹配。
可以理解的,获取到路由器固件的文件特性信息以后,将该文件特性信息与固件解析方法库中的每种固件解析方法对应的文件系统类型进行匹配,从而搜索出与该文件特性信息匹配的文件系统类型。
本实施例中,每种固件解析方法对应的文件系统类型包括一种数据访问方式、一种数据存放格式和一种数据类型,文件特性信息也包括一种数据访问方式、一种数据存放格式和一种数据类型。因此,可以通过逐一匹配的方式,将文件特性信息与每种固件解析方法对应的文件系统类型进行匹配。
具体的,可以分别将文件特性信息中的数据访问方式与文件系统类型中的数据访问方式匹配,将文件特性信息中的数据存放格式与文件系统类型中的数据存放格式匹配,将文件特性信息中的数据类型与文件系统类型中的数据类型匹配,从而搜索出与文件特性信息相匹配的文件系统类型。搜索出的与文件特性信息相匹配的文件系统类型对应的固件解析方法即为解析该路由器固件的固件解析方法。
另外,文件特性信息还可以包括数据访问方式、数据存放格式和数据类型中的一种或两种。对于只包括数据访问方式、数据存放格式和数据类型中的一种或两种的文件特性信息,只需将文件特性信息与文件系统类型进行对应的匹配即可。若文件特性信息中只包括数据访问方式和数据存放格式,则将文件特性信息中的数据访问方式与文件系统类型的数据访问方式相匹配,将文件特性信息中的数据存放格式与文件系统类型中的数据存放格式相匹配。
当然,还可以通过排除法,将文件特性信息与每种固件解析方法对应的文件系统类型进行匹配。例如,若其中一种固件解析方法对应的文件系统类型中的数据访问方式与文件特性信息中的数据访问方式不匹配,则不需再进行数据存放格式和数据类型的匹配,直接将下一种固件解析方法对应的文件系统类型与文件特性信息进行匹配。
固件解析子单元,被配置以采用固件解析方法库中与文件特性信息相匹配的文件系统类型所对应的固件解析方法对路由器固件进行解析,获取路由器固件的源代码。
匹配出与文件特性信息相匹配的文件系统类型后,采用与该文件系统类型对应的固件解析方法对该路由器固件进行解析,获取到该路由器固件的源代码。
源代码处理模块300,被配置以与数据库100连接并获取路由器固件源代码库,以及在路由器固件源代码库中查找与路由器固件的文件系统类型对应的预存源代码,并将路由器固件的源代码替换为所查找到的预存源代码。
其中,数据库中预存有路由器固件源代码库。路由器固件源代码库中包括一种以上的预存源代码,且预存源代码为无漏洞的源代码。每种预存源代码与一种路由器固件的文件系统类型相对应。因此,每种预存源代码对应一种数据访问方式、一种数据存放格式和一种数据类型。因此可以将路由器固件的文件系统类型与每种预存源代码匹配,搜索与路由器固件的文件系统类型对应的预存源代码。
具体的,可以将预存源代码对应的数据访问方式、数据存放格式和数据类型分别与路由器固件的文件系统类型中的数据访问方式、数据存放格式和数据类型进行对应的匹配,查找与路由器固件的文件系统类型对应的预存源代码。例如,将预存源代码对应的数据访问方式与文件系统类型中的数据访问方式进行匹配,将预存源代码对应的数据存放格式与文件系统类型中的数据存放格式进行匹配,将预存源代码对应的数据类型与文件系统类型中的数据访问类型进行匹配,从而查找出与路由器固件的文件系统类型相匹配的预存源代码。
当然,还可以通过排除法,将预存源代码对应的数据访问方式、数据存放格式和数据类型分别与路由器固件的文件系统类型中的数据访问方式、数据存放格式和数据类型进行对应的匹配。例如,若其中一种预存源代码对应的数据访问方式与文件特性信息中的数据访问方式不匹配,则不需再进行数据存放格式和数据类型的匹配,直接进行下一种预存源代码与路由器固件的文件系统类型的匹配。
本发明中,可以通过无漏洞的路由器获得预存源代码,也可以通过路由器的官方网站获得预存源代码,还可以通过路由器管理终端生成预存源代码。
写入模块400,被配置以将路由器固件写入路由器中。
其中,可以通过路由器的TTL接口将路由器固件写入路由器中。将路由器固件写入路由器中的方法为现有技术,故在此不再赘述。
另外,本发明修复路由器固件漏洞的系统还可以包括更新模块500。更新模块500被配置以按照预设频率更新路由器固件源代码库中的预存源代码。对路由器固件源代码库中的预存源代码进行更新,以适应路由器固件的不断更新。
上述修复路由器固件的系统,获取到路由器固件的源代码后,在路由器固件源代码库中查找与路由器固件的文件系统类型对应的预存源代码,并将路由器固件的源代码替换为所查找到的预存源代码,能够较为快速且彻底的修复路由器固件的漏洞。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。