固件中二进制文件或文本文件关键字搜索方法

本文介绍了如何在固件解码后的内容中,针对二进制文件和文本文件进行关键字搜索。通过识别文件的魔数来实现精确匹配,确保在固件分析过程中有效查找所需信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

固件解码后常含有二进制文件和文本文件,在二进制文件或者文本文件进行关键字搜索的时候根据魔数进行文件关键字匹配就ok了。

import magic
import re
import os

def user_search_kw(ff, keyword, bin_search):
	'''
	:param ff:  含路径的文件名
	:param keyword: 搜索关键词
	:param bin_search: 是否进行二进制搜索
	:return:
	'''
	try:
		with open (ff, 'r') as keyword_search:
			text = keyword_search.read()
			hits = re.findall(keyword, text, re.I)
			if hits:
				magic_mime = magic.from_file(ff, mime=True)  #文件类型和版本号
				mime_kw = 'x-executable|x-sharedlib|octet-stream|x-object'  ###可执行文件、链接库、动态流、对象
				magic_hit = re.search(mime_kw, magic_mime, re.I)  
				if magic_hit:
					if bin_search is True:
						offset_list = []
						for m in re.finditer(keyword, text, re.I):
							offset_list.append(m.start())
						##二进制文件
						print ("Non-Plain Text File, Keyword: '%s', File: %s, Offset(s) in File: " % (keyword, ff) + ", ".join('0x%x'%x for x in offset_list) + "\n")
				else:
					##文本文件
					print ("Plain Text File, Keyword: '%s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值