
固件安全
文章平均质量分 78
不愿透露姓名的菜鸟
积跬步,致千里!
展开
-
Qemu用户态模拟仿真并运行程序
使用Qemu可以运行不同指令集架构下环境的二进制程序,解决了我们在X64指令集架构下能够运行ARM、MIPS、PowerPC等其他指令集架构下的二进制程序。安装Qemu,其中包括系统态和用户态两种。两种安装是分开的,需要单独安装。 sudo apt-get install qemu (系统态) sudo apt-get install qemu-user-static (用户态) ...原创 2019-12-17 09:54:14 · 4157 阅读 · 0 评论 -
subprocess.Popen,os.popen,os.system三者的使用区别
首先来看看各个使用情况:(1)subprocess.Popen()import subprocesscmd_string = "sudo chroot /home/ubuntu/hdd_1/zgd/Open_Components/firmware_analysis/GE_F650-192.168.0.232 ./qemu-ppc-static /bin/busybox"p = sub...原创 2019-11-12 15:05:17 · 1879 阅读 · 0 评论 -
qemu仿真二进制文出现chroot: failed to run command XXX 或Error while loading XXX : No such file or directory错误
qemu仿真二进制文出现chroot: failed to run command XXX 或Error while loading XXX : No such file or directory错误。 出现此错误的问题主要在于对chroot这个命令的理解不到位。 仿真的命令是:sudo chroot XX目录 相对于XX目录的qemu文件 相对于XX目录的被仿真的可执...原创 2019-11-10 11:51:40 · 4351 阅读 · 0 评论 -
qemu仿真可执行二进制文件时出现错误:/lib/ld-uClibc.so.0: No such file or directory的解决方法
在进行固件的可执行开源组件仿真实验时,遇到了一些小的问题。(1)/lib/ld-uClibc.so.0: No such file or directory(2)Error while loading XXX No such file or directory于是搜了一下,在看雪论文中查到了同样的问题。https://bbs.pediy.com/thread-247302.htm...原创 2019-11-09 11:57:03 · 6275 阅读 · 0 评论 -
固件中二进制文件或文本文件关键字搜索方法
固件解码后常含有二进制文件和文本文件,在二进制文件或者文本文件进行关键字搜索的时候根据魔数进行文件关键字匹配就ok了。import magicimport reimport osdef user_search_kw(ff, keyword, bin_search): ''' :param ff: 含路径的文件名 :param keyword: 搜索关键词 :param bi...原创 2019-09-25 13:08:11 · 821 阅读 · 0 评论 -
固件二进制文件信息熵属性值的计算方法
使用信息熵判断固件是否是同一厂商同一系列的产品具有较高的参考价值:首先来看看D-Link路由器固件家族DIR-505和DAP-1320熵值分布图:信息熵计算公式:实际上计算固件的信息熵值的方式有两种:首先上代码看看: if use_zlib: algorithm = gzip #gzip信息熵分析方法 else: algor...原创 2019-08-01 14:17:48 · 2182 阅读 · 0 评论 -
固件的函数名修复
使用ida打开固件的时候,有的时候无法识别真实的函数名,需要我们手动修复。废话不多说,上代码:#-*- coding:utf-8 -*-from idaapi import *import timesymbol_interval = 16 #符号表间隔load_address = 0x10000 #固件内存加载基址symbol_table_start = 0x301e64 + ...原创 2019-07-25 10:15:07 · 604 阅读 · 0 评论 -
判断二进制文件或固件指令集的简易方法
目前研究的不仅仅支持下面这几种指令集的识别法。我们采取的方法并非是对每种架构的二进制文件进行研究和分析,而是在借助于binwalk的基础上对文件架构进行分析。参考binwalk源码链接:https://github.com/ReFirmLabs/binwalk/blob/master/src/binwalk/magic/executables下面仅仅列出了部分,想要知道详情的请直接去上...原创 2019-06-21 11:51:35 · 1830 阅读 · 0 评论 -
readelf的elf 二进制文件格式分析工具小记
readeklf工具和 objdump 命令提供的功能类似,但是它显示的信息更为具体,并且它不依赖 BFD 库( BFD 库是一个 GNU 项目,它的目标就是希望通过一种统一的接口来处理不同的目标文件);ELF 文件类型 ELF(Executable and Linking Format)是一种对象文件的格式,用于定义不同类型的对象文件(Object files)中都放了什么东西、以及都以什么...原创 2019-06-15 11:05:04 · 1347 阅读 · 0 评论 -
binwalk指定显示某些内容
关于binwalk功能的介绍,建议先查看一下这两篇博客。https://blog.csdn.net/Homewm/article/details/88989845https://blog.csdn.net/whatday/article/details/53693399如只显示文件系统binwalk -y filesystem fw150rmv1-cn-up.bin只显示...原创 2019-06-05 21:53:45 · 554 阅读 · 0 评论 -
linux路径问题:sh: 1: Syntax error: "(" unexpected
python脚本处理文件名或者路径中含有括号时,会报错sh: 1: Syntax error: "(" unexpected错误如下:找到了一个很好解决的博客:https://blog.csdn.net/qq_21063873/article/details/82049532由于某些原因,linux路径中可能存在字符 ' ','(',')','&' (**分别是空...原创 2019-05-31 12:45:02 · 10061 阅读 · 0 评论 -
python判断文件或字符串的编码格式是否为UTF-8
首先了解一下UTF-8编码格式,UTF8算是一种自适应的,长度不定,兼容ASCII编码。 byte数为5、6的都不使用了,讨论前面的byte数为1、2、3、4的四种情况。def detectUTF8(file_name): state = 0 line_num = 0 file_obj = open(file_name) all_lines = fil...原创 2019-05-24 19:16:14 · 5721 阅读 · 0 评论 -
VXWorks 固件 NOE-711 后门账号漏洞分析
VXWorks固件NOE-711后门账号漏洞分析by zgd2019年1月以Schneider厂商的Quantum系列系列PLC的NOE-711以太网模块的固件为例,学习和了解一下基于VxWorks操作系统的嵌入式设备固件的一些常用分析方法。(I)web配置app默认账户和密码的获取github下载到含固件的文件:fw/fw.ini文件中包含固件版本信息:w...原创 2019-05-24 14:15:56 · 2066 阅读 · 0 评论 -
binwalk功能选项介绍
这段时间在从事固件分析工作,我们知道目前最好用最实用用得最广泛的固件解压和分析工具就是binwalk了。那么我们首先来看看binwalk具有的基本功能。首先这篇博文(https://www.cnblogs.com/2f28/p/9736902.html)把基本功能说得很清晰,不过不够全面,我再稍微补充一点。详细功能使用参考博文https://blog.csdn.net/john_david_/...原创 2019-04-03 10:40:09 · 3963 阅读 · 0 评论 -
固件分析工具小记
(1)strings工具 如 :strings --bytes=6 --radix=d wr841nv8_en_3_13_33_up_boot\(130506\).bin > strings.txt输出到strings.txt文件,其中二进制文件中的字节长度不小于6,以十进制的形式输出地址2.binwalk使用方法可以直接参考这篇博客https://www.f...原创 2019-02-27 14:12:40 · 1202 阅读 · 0 评论 -
shell脚本,调用binwalk进行解压
1 #!/bin/bash 2 3 FIRM_PATH="$1" 4 EXTRACT_PATH="$2" 5 DECOMPRESS_DEEPTH=10 6 7 cur_dir=`pwd` 8 FIRM_NAME="${FIRM_PATH##*/}" 9 FIRM_DIR="${FIRM_PATH%/*}" 10 11 if [ ! -f...原创 2019-02-21 08:46:17 · 941 阅读 · 0 评论 -
IoT物联网设备渗透测试分析常用工具介绍
物联网渗透测试常用工具中文原文:https://bbs.pediy.com/thread-247868.htm英文原文:https://www.twelvesec.com/2018/10/10/iot-penetration-testing-part-1/(建议直接观看中文或英文原文,这里拷贝部分内容是便于后面我自己的使用)filefile命令可以确定文件的类型. file通过...转载 2019-02-13 15:27:18 · 4335 阅读 · 0 评论 -
获取固件所有字符串的偏移地址方法
固件在解压之后,调用strings工具命令直接获取固件的字符串偏移地址信息。str_addr_list = []###num_str输出字符串所在地址和字符串信息,信息如下:'''2515844 A_SizeOfUnsignedInt642515868 A_SizeOfUnsignedInt2515888 A_SizeOfObjectId2515908 A_SizeOfInt'...原创 2019-01-15 14:52:05 · 1037 阅读 · 0 评论 -
CVE漏洞攻击链案例描述
整理by:zgd 果冻先生三星SmartThings Hub中攻击链链接:http://www.4hou.com/vulnerable/12857.html思科Talos研究人员发现了三星SmartThings Hub控制器中的20个漏洞,这些漏洞可能会使任何受支持的第三方智能家居设备遭受网络攻击。Samsung SmartThings Hub是一款中央控制器,可用于管理智能家居...原创 2018-08-30 19:19:09 · 2278 阅读 · 1 评论