本文主要是介绍cuckoo提取样本字符串,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
代码位置:cuckoo\\processing\\strings.py
代码整理后如下:
#coding:utf-8
import redata=open("filepath","rb").read() # 一定要以二进制形式读取文件的全部内容,否则你会发现匹配出来的字符串不全
strings_A = re.findall("[ -~]{1,}",data) # 读取1个以上的单字节连续可显示字符(0x20-0x7e)
strings_W = re.findall("(?:[ -~]\x00){1,}",data): # 读取1个以上的unicode编码的连续可显示字符return strings_A,strings_W
大概就是以二进制形式读取文件之后,使用正则表达式做匹配。
其中(?:[ -~]\x00)应该是把2个字节作为一个基本单位进行匹配,
若是(?:[ -~]\x00\x00)应该是把3个字节作为一个基本单位进行匹配。
注意在ida的字符串窗口中看到\t、\n也显示在字符串中,可以在正则表达式的[ ]中加入\t、\n,如下:
[ -~\\t\\n] 或者 [ -~\x09\x0a]
对于中文语系,可以使用专门匹配汉字的正则表达式
这篇关于cuckoo提取样本字符串的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!