天天看点

cuckoo提取样本字符串

代码位置:cuckoo\\processing\\strings.py

代码整理后如下:

#coding:utf-8
import re

data=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个字节作为一个基本单位进行匹配。

cuckoo提取样本字符串

注意在ida的字符串窗口中看到\t、\n也显示在字符串中,可以在正则表达式的[ ]中加入\t、\n,如下:

[ -~\\t\\n] 或者 [ -~\x09\x0a]

对于中文语系,可以使用专门匹配汉字的正则表达式