当前位置:首页 » 编程软件 » 路由固件反编译

路由固件反编译

发布时间: 2022-12-07 16:15:52

⑴ 路由器固件编译中的GPIO应用——控制LED

上一篇初探了路由器上GPIO的应用,当刷好不死breed后,刷入自编译的固件,常常会遇到LED指示灯错误。

例如上一篇在breed中对于引脚的输出

GPIO复用引脚的释放及gpio-leds的注册

OpenWrt wiki-GPIO
路由器选择breed时的GPIO引脚
也许可以试着用通过网络控制路由器来开关灯?

⑵ 怎么反编译D-Link路由器固件程序并发现它的后门

基于上面的字符信息可以看出,这个/bin/webs二进制程序是一个修改版的thttpd,提供路由器管理员界面操作功能。看起来是经过了台湾明泰科技(D-Link的一个子公司)的修改。他们甚至很有心计的将他们很多自定义的函数名都辅以“alpha”前缀:

明泰科技的自定义函数
这个alpha_auth_check函数看起来很有意思!
这个函数被很多地方调用,最明显的一个是来自alpha_httpd_parse_request函数:

调用alpha_auth_check函数
我们可以看到alpha_auth_check函数接收一个参数(是存放在寄存器$s2里);如果alpha_auth_check返回-1(0xFFFFFFFF),程序将会跳到alpha_httpd_parse_request的结尾处,否则,它将继续处理请求。
寄存器$s2在被alpha_auth_check函数使用前的一些操作代码显示,它是一个指向一个数据结构体的指针,里面有一个char*指针,会指向从HTTP请求里接收到的各种数据;比如HTTP头信息和请求地址URL:

$s2是一个指向一个数据结构体的指针
我们现在可以模拟出alpha_auth_check函数和数据结构体的大概样子:
struct http_request_t
{
char unknown[0xB8];
char *url; // At offset 0xB8 into the data structure
};

int alpha_auth_check(struct http_request_t *request);

alpha_auth_check本身是一个非常简单的函数。它会针对http_request_t结构体里的一些指针进行字符串strcmp比较操作,然后调用check_login函数,实际上就是身份验证检查。如果一旦有字符串比较成功或check_login成功,它会返回1;否者,它会重定向浏览器到登录页,返回-1;

alpha_auth_check函数代码片段
这些字符串比较过程看起来非常有趣。它们提取请求的URL地址(在http_request_t数据结构体的偏移量0xB8处),检查它们是否含有字符串“graphic/” 或 “public/”。这些都是位于路由器的Web目录下的公开子目录,如果请求地址包含这样的字符串,这些请求就可以不经身份认证就能执行。
然而,这最后一个strcmp却是相当的吸引眼球:

alpha_auth_check函数中一个非常有趣的字符串比较
这个操作是将http_request_t结构体中偏移量0xD0的字符串指针和字符串“xmlset_roodkcableoj28840ybtide”比较,如果字符匹配,就会跳过check_login函数,alpha_auth_check操作返回1(认证通过)。
我在谷歌上搜索了一下“xmlset_roodkcableoj28840ybtide”字符串,只发现在一个俄罗斯论坛里提到过它,说这是一个在/bin/webs里一个“非常有趣”的一行。我非常同意。
那么,这个神秘的字符串究竟是和什么东西进行比较?如果回顾一下调用路径,我们会发现http_request_t结构体被传进了好几个函数:

事实证明,http_request_t结构体中处在偏移量 0xD0处的指针是由httpd_parse_request函数赋值的:

检查HTTP头信息中的User-Agent值

将http_request_t + 0xD0指针指向头信息User-Agent字符串
这代码实际上就是:
if(strstr(header, "User-Agent:") != NULL)
{
http_request_t->0xD0 = header + strlen("User-Agent:") + strspn(header, " \t");
}

知道了http_request_t偏移量0xD0处的指针指向User-Agent头信息,我们可以推测出alpha_auth_check函数的结构:
#define AUTH_OK 1
#define AUTH_FAIL -1

int alpha_auth_check(struct http_request_t *request)
{
if(strstr(request->url, "graphic/") ||
strstr(request->url, "public/") ||
strcmp(request->user_agent, "xmlset_roodkcableoj28840ybtide") == 0)
{
return AUTH_OK;
}
else
{
// These arguments are probably user/pass or session info
if(check_login(request->0xC, request->0xE0) != 0)
{
return AUTH_OK;
}
}

return AUTH_FAIL;
}

换句话说,如果浏览器的User-Agent值是 “xmlset_roodkcableoj28840ybtide”(不带引号),你就可以不经任何认证而能访问web控制界面,能够查看/修改路由器的 设置(下面是D-Link路由器(DI-524UP)的截图,我没有 DIR-100型号的,但DI-524UP型号使用的是相同的固件):

访问型号DI-524UP路由器的主界面
基于HTML页上的源代码信息和Shodan搜索结果,差不多可以得出这样的结论:下面的这些型号的D-Link路由器将会受到影响:
DIR-100
DI-524
DI-524UP
DI-604S
DI-604UP
DI-604+
TM-G5240
除此之外,几款Planex路由器显然也是用的同样的固件程序:
BRL-04UR
BRL-04CW

⑶ 路由器怎么刷固件

现在的路由器都是智能路由器,给我们这些喜欢折腾的,有多了一样可以折腾的东西。给路由器刷第三方固件,可以让路由器的拥有原来没有的功能。

工具/原料more

电脑 路由器 第三方路由固件 Breed Web 助手

破解路由器 刷入Breed引导

1/2分步阅读

在开始前,我们来说一下整个刷入的流程:先通过Breed Web 助手给路由器刷入Breed引导,再通过Breed引导刷入第三方固件。Breed引导是相当于电脑的BIOS,只要给路由器刷入Breed引导后,可以随便刷入第三方固件。在操作前,需要下载好第三方固件(第三方固件有: Padavan,Tomato Phoenix ,PandoraBox,OpenWRT),大家根据自己喜好选择。至于Breed Web 助手大家可以自行搜索,下面开始操作。

2/2

将路由器通过网线连接到电脑,如果此前设置过路由器,请把路由器恢复出厂设置。在恢复出厂设置后,打开浏览器输入路由器默认IP地址(小编这里是:192.168.2.1),看看是否能正常登陆到路由器设置界面,如果能关闭浏览器,进行下一步。找到下载好的Breed Web 助手,右键选择“以管理员身份运行”(如果出现安全软件阻止,请添加为信任,以防操作失败),然后选择刷机方案,大家根据自己路由器的品牌和型号选择(小编选的是:k1,k1s,k2全自动方案),其他保持默认。接着点击“开始刷机”按钮,等待刷入完成。(一般都会一次性成功。如果中途出错,只有重头开始了)。当软件提示“刷机完成”后,等待两分钟断掉路由器的电源。

刷入第三方固件

1/2

刷入固件

1.拔掉路由器电源,按住路由器重置按钮,插上电源,等待10秒钟左右。2.打开浏览器,输入“192.168.1.1"回车,进入了Breed Web 控制台了。3.在界面的左侧点击“恢复出厂设置”,在固件类型选择“Config区(公版)”然后点击“执行”,等待执行完成。

查看剩余1张图

2/2

然后在左侧点击“固件更新”,在右侧常规固件下,勾选固件复选框,点击“选择文件”,添加准备好的固件。接着点击“上传”,确认上传固件信息,点击“更新”,等待完成(在完成之前,不要断开路由器电源,不然路由器有变砖的可能)

查看剩余2张图

路由器 固件

编辑于2018-01-04,内容仅供参考并受版权保护

 赞踩分享

阅读全文

⑷ 都2022年了,再谈路由器刷机“K1/K2/K2P系列刷机图文教程”

本内容来源于@什么值得买APP,观点仅代表作者本人 作者:Stark-C



都2022年,我想该不会还有人不知道路由器还能刷机?

也许可能还真有人不知道,正好前几天有位朋友扔给我一台K2路由器,让我刷机整点其它的东西,所以我就趁此机会,来谈谈路由器的刷机过程与心得吧(此次虽说用的K2做演示,其实K1/K2/K2P刷机的步骤和注意事项几乎都是一样的)!

路由器刷机的好处我想不用我多说吧,懂得都懂,最主要得就是发挥路由器得真正性能,解锁路由器的新功能。

作为一个数码爱好者,刷机是我们的基本技能,更是我们的乐趣。我们坚信:“万物皆可刷”!反正我个人是小到刷手机,大到刷 汽车 隐藏,都是各种折腾。关于路由器刷机,我其实也是很多年前就玩过,我还记得刷的第一台路由器是迅雷路由,然后直接刷成华硕梅林固件,也就是从那个时候,我才知道华硕路由器固件的强大,这也是我从那个时候起,一直选择华硕路由器的首要原因。

估计只有老玩家才知道这款迅雷路由吧~~

其实K2路由器我个人本来都有,包括K2P,只不过我在后来全部在某鱼出掉了而已。说来惭愧,我的那台K2P其实也在最后一个月翻车了~~。得益于当时该品牌的市场占有率(准确的说是保有量)高,网上有非常多的固件和玩法,也直接让该品牌的路由器(特别是K2,K2P)成为当之无愧的路由器“刷机王子”。

某论坛上显示的可以刷机的路由器非常的多,几乎覆盖了目前市面上的主流路由器。

说了这么多,开始今天的主题吧!

首先说明,今天的刷机工具是来自恩山大神“H大”,再此表示感谢!(玩过这个路由器的小伙伴应该还记得,最早刷这款路由器还需要拆机通过TTL刷机的,现在有了大神的刷机工具,不用拆机了,几乎是傻瓜式操作,点点鼠标就搞定了,非常的方便)

原贴地址:https://tbvv.net/posts/0101-breed.html

建议先看看作者的原帖地址,里面有刷机工具,第三方固件,以及部分注意事项。

先来说说路由器的刷机思路吧。其实路由器刷机思路非常简单,就两步:刷入breed,刷第三方固件。

上图就是K2路由器的breed控制台界面。

》》关于breed,简单来说其实就是我们以前玩安卓手机的REC模式,路由器在刷入breed以后,就可以通过breed刷如第三方固件。而且breed又被广大网友戏称“不死固件”,是因为刷入路由器刷入breed以后,之后我们刷的第三方固件全部是在 breed 里面完成,然后我们可以随意折腾也不用担心路由器“变砖”而无法使用,就算你刷错固件路由器没反应,我们也可以重新进入breed刷入一个可以启动的固件就可以了。

然后在看看路由器的几个接口名称:

NO.1 确定自己的路由器版本

首先在刷机之前,需要保证自己的K2路由器是MTK芯片,只有MTK芯片的路由器才可以刷入breed。之前这款路由器还出过博通芯片的设备,而博通芯片的设备目前是无法刷入breed的。

那么怎么确定自己的版本信息呢?有两种方法:

方法一:查看路由器背面标签的ver,A开头的标识就是MTK芯片版,可以刷机,B开头的是博通版,一般是不可以刷breed的。

方法二:登录路由器的管理界面,选择高级设置-设备信息里面的硬件版本也可以查看版本信息。

PS:这里说的A版可以刷,B版不能刷仅针对K2路由器,其实K1/K1S也是有B版本的是可以刷固件的。

NO.2 确定刷入breed工具支持的固件范围

对,没错,breed并不是万能的,也需要路由器原生固件的支持。如果不是支持的固件,是无法刷入或者会直接报错。

上图就是作者列出的支持官方固件支持的列表。

如果路由器不在上述列表的范围内,需要先升级。不巧的是我这台K2路由器就不在列表中,所以我又在网上自己找的对应的固件手动升级的。因为此品牌的路由器保有量很大,所以随便就能找到它对应的官方固件。

找到固件以后,也是登录路由器的管理界面,选择高级设置—系统设置—手动升级,选择你下载下来的对应的固件,点击“升级”按钮就可以直接升级了。

NO.3 浏览器的使用技巧

在用刷入breed的时候,为了提高成功率,建议使用无痕模式。因为如果按照我们平时使用浏览器的习惯,浏览器的缓存有可能导致在访问breed控制台页面时出错。并且很多新手小白其实明明已经刷成功了,但是看到路由器无法获取IP地址就以为固件有问题乱刷,最后可能真会把路由器刷成“砖”了。

Windows电脑的Edge浏览器打开无痕模式的方法,其它浏览器请自行搜索。

NO.4 禁用多余网络

因为刷机存在风险与不确定性,为了防止出错率建议单独使用网线将电脑与路由器连接,WAN口不接线。LAN口连接电脑,电脑需要设置为自动获取IP,并禁用多余的网络连接比如无线网络连接和虚拟网卡等等。

Windows电脑可以在控制面板—网络和Internet—网络连接中,只留网线连接的那条线,其它的暂时禁用,完成刷机以后在打开也无妨。

当你到这步的时候,请确保你已经下载好了我上面那个连接中,原作者给出的刷入breed的工具。然后直接将电脑与路由器的LAN口使用网线单独连接后就可以刷机了。

直接双击刷入breed的工具中的“刷机.bat”脚本程序。

然后出现上图所示。按照程序提示输入路由器IP地址。

怎么知道我们当前路由器的IP地址?很简单,还是登录路由器的管理界面,选择高级设置—系统状态,LAN口状态下面的IP地址就是你当前的路由器IP地址。

然后在输入路由器的登录密码(也就是你路由器的管理页面登录密码)。如果你的K2路由器是没有设置的,直接回车输入Y即可,程序会自动配置管理页面,这个时候管理密码会被配置为:tbvv.net。

剩下的就交给程序自动完成,当出现上图中的界面,就说明breed基本上算是刷入完成了,就是这么简单!

看到这里,请先保证你已经下载好了第三方固件。

其实我上面给出的原作者帖子里面就有很多第三方的固件下载连接,需要的直接过去下载好了。根据我个人的经验,如果求稳定,华硕padavan固件和高恪固件非常不错!

前面说过,我们给路由器刷入第三方固件全部都是在breed模式下刷入的,所以我们首先要进入breed模式。

作者在文中说了,breed模式进入方法有两种:

第一种方法是使用breed原作者的BreedEnter中断工具进入breed模式,这种方式需要下载和安装环境和程序,启动BreedEnter程序后直接点击启动按钮,然后在路由器的管理界面直接点击重启或者直接断电重启等待BreedEnter工具提示已进入breed,使用浏览器访问:192.168.1.1即可。

我个人是更偏向于对我们小白比较友好的第二种方法。那就是将路由器断开电源后,按住路由器后面的复位键按钮不松开手,这个时候给路由器通电后等待3-5秒左右松开手,然后直接通过浏览器访问breed控制台的地址:192.168.1.1即可。

上图就是K2的breed控制台界面。

当我们首次打开breed控制台的时候,强烈建议备份编译器固件和EEPROM,这个是以防万一,以后这个可是路由器“救砖”的重要数据。

然后在选择“恢复出厂设置”。这步的目的是清除路由器的原设置与数据,可以解决刷固件后出现的各种问题。

最后我们就可以放心大胆的上传第三方固件了。

固件: 直接选择下载好的第三方固件

闪存布局: 刷入第三方选择默认的公版即可,如果是官方固件或者官改固件,选择斐讯原厂。

上传之后选择“更新”按钮。

然后到这里,基本上就说明你已经完成了整个刷机过程了。

我这个是刷入openwrt的固件界面。

其实路由器刷机并不难,基本上可以说只要刷好了breed控制台,就可以随意折腾了,哪怕是刷错了固件也不要紧,大不了重新找个对的刷。

好了,以上就是今天给大家分享的内容,我是爱分享的Stark-C,如果今天的内容对你有帮助请记得收藏,顺便点点关注,我会经常给大家分享各类有意思的软件和免费干货!谢谢大家~~

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论



⑸ 怎么将路由器官方下载的固件变成编辑器固件

以Newifi新路由为例,固件升级方法如下,供你参考
方法/步骤
1.首先打开IE浏览器,输入Newifi新路由的路由器地址,初始地址为:192.168.99.1,出现Newifi新路由登录界面。
2.输入Newifi新路由的密码之后可以进入路由管理界面,密码为你设置的WIFI密码。然后点击路由设置。
3.点击路由系统升级。可以看你的Newifi新路由当前路由系统版本,与最新版本号。
4.点击升级后,会提示警告信息,点击确定升级。
5.进入路由器新版本固件ROM下载。
6.Newifi新路由固件下载完成后,会自动进入升级。
7.升级完成后Newifi新路由会自己重启,进入升级界面,可以看新版本号。若需要尝试测试版本,或其它兼容的路由器固件ROM,可以选择本地进行刷路由系统。

⑹ 路由器固件如何打开源码

有时因为某种原因可能要把路由器恢复出厂设置,但忘了密码,路由器里面显示的是*号,当然我们可以把ADSL帐号记下来,然后打96861查,电信是要求提供一些申请资料的,但是有时宽带也许并不是你申请的,问来问去很麻烦,有可能还问不明白,还不如自己动手破解。
原理:宽带设备信息存储在路由器的固件里,用查看源代码的方法可以得到我们想要的密码。
步骤:1、备份备份系统设置信息,这个一般在路由器的管理工具里。
D-Link的DI-504的为pro
file.bin (工具 → 系统设定 → 备份目前设定值),SMC的为SMCrouter_backup.bin(TOOLS → Configuration Tools → Backup to SMCrouter_backup.bin),TP-Link的一般为xxx.cfg(系统工具 → 备份和载入配置 → 备份配置文件) !当然有的不一定是这个步骤,但都差不多,意思就是把路由器里的设置都备份出来!(有的是config.bin的)
2、用Word打开备份的文件(当然你也可以用记事本打开,但会看似乱码,不过也没关系,下面操作一样,就是不太好看)
你可以在Word中查找你的用户名(用户名在设置用WAN口中就有)找到用户名后在用户名后面的就是密码了!也可以按Ctrl+F搜索PASS来到POE_PASS=xxxxxxxx这里,附近还有个POE_USER=adxxxxxxxx
这两个就是密码和用户名了,你把它们记下来就可以了。
用户名:adxxxxxxxx
SMC的直接就可以看到密码和用户名,一般在一个£符号后面

⑺ 解锁uboot分区路由器固件怎么编

1、首先到路由器的官网下载最新固件。
2、登陆路由器,选择系统工具-软件升级。
3、点击浏览,找到下载的路由器固件。
4、等待升级完成,路由器会自动重启就完成升级了。

⑻ 如何更改中兴智能路由器固件呢

中兴智能路由器ZXHN Z503改固件路由器修改流程:首先:需要确定路由器的固件版本,只有确定路由器的固件版本,才能查找是否有升级版的固件。如果你不知道路由器的固件版本,可以进入路由器的管理界面,路由器型号如下图所示,如果你一直到路由器的固件版本,可以直接跳过此步。 其次:确定路由器的固件版本之后,进入路由器的官网网站,小编的路由器为TP-link,所以需要进入TP-LInk官网,此处请根据路由器的品牌而定。网络搜索“TP-link”,进入官网。 第三步:进入路由器官网之后,根据路由器型号搜索相应的固件,然后根据固件的版本号,对比第一步查找到的固件版本号,确定是否有固件更新。如果固件有更新,然后下来,如果为更新,那就无需更新了
电脑网卡连接路由器的LAN口,打开浏览器,输入192.168.1.1,出现路由器的web配置登陆窗口,填写自己的用户名和密码按“确定”进行登陆。 刷新固件之前,应对路由器的配置进行一个备份,因为刷新固件完成之后路由器的配置也会被清空,有了备份就可以快速恢复。点击右边选项栏的“路由器设定值”。 在右边的窗口中点击“Backup”,之后选择备份文件的保存位置,这样就完成了路由器当前配置的备份工作。 点击右边选项栏的“固件升级”。 在上传固件的页面中,点击“浏览”找到要升级的固件文件,之后点击“升级”。 升级完成之后,需要恢复备份的配置,看到步骤2,3的页面,点击“浏览”选择备份出来的配置文件,点击“Restore”即可完成对路由器的恢复。

⑼ 路由器的固件能反编译吗

可以进行反编译。

路由器的固件通常存储在FLASH中,通常都是以xxx.bin格式的文件形式保存的。bin格式是一种二进制文件,存储的是路由器的机器码,通过反编译,可以将其还原为汇编码,以便进行分析。获取、反编译及分析固件通常按下列步骤:

获取路由器固件需要的环境

  1. 常见路由器的SPI FLASH编程器;

  2. 最好是用Winows 笔记本来登陆到ubuntu系统的台式机上的方式 ;

  3. Windows 下的Putty、winhex、WinSCP软件工具;

  4. TTL线、网线、万用表及烙铁,热风枪等工具和线材;

分析步骤

  1. 拆开对应的路由器设备的外壳;

  2. 查看路由器内部的的接口标识;

  3. 用万用表找到对应的地线GND标号;

  4. 通常为了调试或升级的方便,都会保留TTL引脚;

  5. 查看是否存在有TTL线的引脚或触点;

  6. 用准备好的TTL线连接路由器的TTL引脚或触点;

  7. windows下用putty中的串口项打开对应的TTL线连接的串口;

  8. 查看是否有路由器启动的日志信息,如果有,请仔细分析;

  9. 等路由信息启动完毕后,看看是否有终端跳出来,是否有登陆窗口跳出;

  10. 如果有登陆窗口,但是无法输入,或者无法猜测出对应的用户名密码;

  11. 用热风枪或烙铁取下路由器上的存储FLASH芯片;

  12. 在Windows下用编程器提前存储在FLASH芯片的全部固件;

  13. 用WinSCP工具将提取出的固件上传到ubuntu系统中;

  14. 在ubuntu系统中安装对应的固件分析工具(firmware-mod-kit、binwalk、lzma、squashfs-tools等);

  15. 用这些分析工具进行分析,分析出来后,解压对应的数据包,提前对应的关键性数据进行分析。

按以上步骤可以实现对路由器的分析。

热点内容
浏览器打不开服务器通信怎么办 发布:2024-05-18 21:32:22 浏览:961
创建存储空间 发布:2024-05-18 21:20:57 浏览:122
sql日期和时间 发布:2024-05-18 21:16:19 浏览:143
安卓网页怎么截取 发布:2024-05-18 20:53:56 浏览:972
在配置更新的时候没电关机怎么办 发布:2024-05-18 20:36:10 浏览:928
win7访问win2000 发布:2024-05-18 20:27:41 浏览:389
青岛人社局密码多少 发布:2024-05-18 20:19:10 浏览:735
无法存储呼叫转移 发布:2024-05-18 20:18:30 浏览:128
数据库的调优 发布:2024-05-18 20:18:29 浏览:347
sqlserver注册表清理 发布:2024-05-18 20:13:14 浏览:993