前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于反编译的搜索

如何反编译D-Link路由器固件程序_安全测试_领测软件测试网 领测首页 测试术语 测试技术 测试博客 测试视频 开源资源 资源下载 测试沙龙 测试论坛 国际认证 您的位置:软件测试 > 测试技术 > 安全测试 > 评论 挑错 更多 如何反编译D-Link路由器固件程序 来源:外刊IT评论 作者:不详 发表时间:2013-12-09 点击:次 获取本文网址二维码 路由器软件测试工具游戏测试安全测试本地化测试移动平台测试Web测试其它相关软件测试工程师入门软件测试外包测试模板敏捷测试电信测试金融测试嵌入式测试云测试软件测试工程师职业发展单元测试功能测试测试用例性能测试自动测试测试管理缺陷管理测试认证测试架构 OK,又是周末晚上,没有约会,只有一大瓶Shasta汽水和全是快节奏的音乐…那就研究一下程序吧。   OK,又是周末晚上,没有约会,只有一大瓶Shasta汽水和全是快节奏的音乐…那就研究一下程序吧。   一时兴起,我下载了D-link无线路由器(型号:DIR-100 revA)的固件程序 v1.13。使用工具Binwalk,很快的就从中发现并提取出一个只读SquashFS文件系统,没用多大功夫我就将这个固件程序的web server(/bin/webs)加载到了IDA中:   /bin/webs中的字符信息   基于上面的字符信息可以看出,这个/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) 原文转自:http://www.aqee.net/reverse-engineering-a-d-link-backdoor/ 共2页: 上一页12下一页 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述) 相关与推荐 无线路由器安全功能测试 使用路由器上网的防“毒”措施 斩断黑手 防黑客攻击ADSL路由器 给Apache做压力测试时遇到的问题 恭喜周翔通过测试培训成功就职辛耕普华 可用性测试的权衡之道 谈“测试驱动的开发” WEB性能测试工具推荐 安全测试与渗透测试区别 使用gcov完成代码覆盖率的测试 关注排行榜 周排行 月排行 阿里CEO陆兆禧升迁路线图:从服务生到CEO 阿里CEO陆兆禧升迁路线图:从酒店服务生到CEO 11月18日下午消息,彭博新闻社对阿里巴[详细] 鲍尔默谈退休全过程:微软加快公司转型战略步伐 第45期领测软件测试沙龙12月15日召开 作为软件工程师学英语三部曲 编程应该知道的10个调试技巧 百度 cafe 移动测试框架 让断言不再成为自动化测试的负担 我们的测试为什么不够敏捷 WEB性能测试工具推荐 性能测试流程-各阶段的工作 WEB性能测试工具推荐 WEB性能测试工具主要分为三种,一种是测试页面资源加载速度的,一种是测试页面加载完[详细] JavaScript 测试覆盖率检测工具 恭喜王秀丽通过测试培训成功就职领创先科 安全测试与渗透测试区别 如何反编译D-Link路由器固件程序 可用性测试的权衡之道 性能测试工具sysbench简介 使用gcov完成代码覆盖率的测试 谈“测试驱动的开发” 恭喜宋凤桐通过测试培训成功就职易思博 软件测试专题 LoadRunner脚本录制 LoadRunner脚本实例 LoadRunner脚本录制设置 LoadRunner参数化 LoadRunner脚本录制技巧 LoadRunner专题系列——LoadRunner脚本调试 LoadRunner入门到精通|LoadRunner从零开始|LoadRunner教程 LoadRunner专的Transaction LoadRunner脚本录制方法 LoadRunner脚本录制释疑 软件测试资源下载 模板 教程 环境 性能 功能 管理 Jmeter 2.6 下载 HP QTP 10 中文版官方中文补丁 下载 HP QTP 10 英文版 下载地址 HP ALM 11 官方 中文版下载地址 ALM11 中文资料 下载 Quality Center 9.0中文版 下载地址 HttpWatch Basic Edition Version 7.2.20 下载 WIN2003+ORACLE11G+QC11(ALM11) 安装手册 下载 WIN2003+SQL2005(SP3)+QC11(ALM11) 安装手册 下载 WIN2003+SQL2005+QC9 安装手册 下载 软件测试视频 38期《我们需要什么样的软件测试工 本次软件测试沙龙邀请了国内知名的软件测试领域的活跃分子,为大家介绍一下国内外优秀企业[详细] 39期《基于风险的软件测试实施方法 基于风险的软件测试实施方法是软件测试业内比较重要的一种软件测试实施策略,具体这种方法[详细] 社区精华 栏目导航 软件测试工具游戏测试安全测试本地化测试移动平台测试Web测试其它相关软件测试工程师入门软件测试外包测试模板敏捷测试电信测试金融测试嵌入式测试云测试软件测试工程师职业发展单元测试功能测试测试用例性能测试自动测试测试管理缺陷管理测试认证测试架构 qrcode --> 二维码生成需要几秒~点击左键返回页面~!(什么是二维码?) 关于领测软件测试网 | 诚聘英才 | 广告服务 | 投稿指南 | 联系我们 | 网站地图| 友情链接 版权所有(C) 2003-2013 Ltesting(领测软件测试网)|领测国际科技(北京)有限公司 |软件测试培训网 All Rights Reserved 北京市莲花西里 联华世纪写字楼5层508 京ICP备10010545号-5 | 京公网安备11010602004416号-1 技术支持和业务联系:info@ltesting.com.cn 电话:010-51297073 _× 推荐新闻