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

固件反编译

发布时间: 2022-01-11 19:31:00

1. 怎样解包安卓的固件bin文件。得到里面的文件

使用UltralISO解包需要提取的固件bin文件并将得到的文件保存在目标文件夹中即可得到里面的文件。

对于文件类资料保存到数据库中,使用分块传输与存储可以有效提高应用效率,另外通过测试关系型数据库和文件型数据库对此类应用的性能,发现文件类数据库的性能优势比较明显。

围绕二进制文件基于数据库存取存在速度慢、占用资源多的问题,通过对BS上传文件原理的分析,通过数据与文件分开存储,文件切割上传的方法实现二进制文件基于数据库的高速存取。


(1)固件反编译扩展阅读:

bin文件的作用:

二进制文件,其用途依系统或应用而定。一种文件格式binary的缩写。一个后缀名为".bin"的文件,只是表明它是binary格式。

比如虚拟光驱文件常用".bin"作为后缀,但并不意味着所有的bin文件都是虚拟光驱文件。它是机器代码,汇编语言编译后的结果,用debug、WINHEX,U_EDIT等软件可以打开。

这类所有的文件,无论后缀名是什么,一律分为两种格式".text" 和".binary"。

2. 安卓APK反编译framework-res可以,回编译出错,求救!

没玩过这个不知道= =

给你推荐两个地方,网络贴吧 android吧和安卓美化吧 去这两个吧问问,在网络知道一般是问不出来的

3. mp3固件升级的软件可否自己编写

你会的话先分析一下原版的固件程序程序,,研究好了也就差不多了

4. 路由器的固件能反编译吗

可以进行反编译。

路由器的固件通常存储在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. 用这些分析工具进行分析,分析出来后,解压对应的数据包,提前对应的关键性数据进行分析。

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

5. 路由器的固件可以自己修改并刷进去么比如只改他管理页面的一个字。

用OpenWRT,代码开源,官网可下载,允许用户自己修改、编译、增减附加功能。

6. 是不是所有手机应用可以反编译吗

固件编译时间当然是比你买到手的时间早
一般看到的编译版本,是定板之前最终的一个版本
编译完之后还要开始测试,量产,发货,销售,这其中需要不少时间
提前几个月是正常的
ps:这个编译版本是统一的,是编译固件的版本,而不是烧录的时间,或者手机出厂时间,不用纠结

7. 自制psp固件如何反编译

一般这种软件,固件,等程序,做好后都会加密,破解后也不过就是一堆乱码,除非作者给你源代码,不然也只能自己凭经验慢慢摸索了,连DA大神都还没破解3000,你还是算了吧,等些时候总会破解的,也不急于一时嘛。

8. 怎么反编译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

9. 如何反编译D-Link路由器固件程序并发现它的后门

本来就有,不是厂商设置,就是有关部们设置的;懂的人不会问,不懂的也教不会;欢迎追问~!

10. bin文件如何反编译

用WinIso试试看

热点内容
虚拟服务器搭建dhcp 发布:2024-11-10 00:53:50 浏览:329
搭建云服务器详细流程 发布:2024-11-10 00:48:17 浏览:976
javasync 发布:2024-11-10 00:30:40 浏览:34
gitlab上传文件 发布:2024-11-10 00:27:30 浏览:368
bully算法 发布:2024-11-10 00:09:44 浏览:301
什么是安卓原生机 发布:2024-11-09 23:58:01 浏览:712
如何清理ipad缓存 发布:2024-11-09 23:57:52 浏览:794
java字节流上传 发布:2024-11-09 23:52:09 浏览:564
php构造参数 发布:2024-11-09 23:42:43 浏览:977
vb5反编译 发布:2024-11-09 23:39:24 浏览:683