YARA是一款旨在帮助恶意软件研究人员识别和分类恶意软件样本的开源工具,使用YARA可以基于文本或二进制模式创建恶意软件家族描述与匹配信息。现在已经被多家公司所运用于自身的产品。
YARA规则的字符串有三种类型:文本字符串、十六进制字符串、正则表达式。文本字符串用来定义文件或进程内存中可读型内容,十六进制字符串用来定义字节内容,正则表达式可用在文本字符串和十六进制字符串中。
ruSEO靠我le HexExample /* 规则名称 */
{
strings: /* 字符串,可使用文本字符串、十六进制字符串、正则表达式 */
$hex_string = {6A 40 68 00 30 00 SEO靠我00 6A 14 8D 91}
$char_string = "UVODFRYSIHLNWPEJXQZAKCBGMT"
condition: /* 条件区域 */
$hex_string or $char_SEO靠我string
}sudo tar -zxvf yara-3.6.3.tar.gz
apt-get install automake -y
apt-get install libtool -y
apt-get install make -y
apt-get install gccSEO靠我 -y
cd yara-3.6.3
./bootstrap.sh
./configure
make
sudo make instaSEO靠我ll
make check
如果编译报错缺少cuckoo,libjansson,libmagic等。。。
Jshon的安装需要Jansson支持:janSEO靠我sson
#wget http://www.digip.org/jansson/releases/jansson-2.5.tar.gz
#tar -zxvf jansson-2.5.tar.gz
#cd jSEO靠我ansson-2.5
#./configure && make && make install
#cd /root/soft
#wget http://kmkeen.com/jshon/jshon.tarSEO靠我.gz
#tar -zxvf jshon.tar.gz
#cd jshon-20120914
# make
安装之后测试
# echo {"40154":"SND-VN-709", "40163":"SND-SEO靠我VN-710"} | ./jshon
在这里可能会出现问题
error while loading shared libraries: libjansson.so.4: cannot open shareSEO靠我d object file: No such file or directory
解决问题
# ls /usr/local/lib/
libjansson.a libjansson.la libjansSEO靠我son.so libjansson.so.4 libjansson.so.4.7.0 pkgconfig
# ln -s /usr/local/lib/libjansson.so.4 /usr/lSEO靠我ib/libjansson.so.4
# ldconfig
好了问题解决
下面我们测试一下:
# echo {"40154":"SND-VN-709", "40163":"SND-VN-710"} | ./jSEO靠我shon
{
"40163": "SND-VN-710",
"40154": "SND-VN-709"
}yum install file-devel
apSEO靠我t-get install libmagic-devhttps://github.com/VirusTotal/yara-python(写的很清楚了,但是有点下问题,按照我的SEO靠我来)
rm -rf build/ dist/
python setup.py build --dynamic-linking
python setup.py install成功:
编译SEO靠我和安装YARA库,就可以使用Python运用YARA功能了。
Demo:
#!/usr/bin/env.python # -*- coding: utf-8 -*-import yara SEO靠我 import os# 获取目录内的yara规则文件 # 将yara规则编译 def getRules(path):filepath = {}for inSEO靠我dex, file in enumerate(os.listdir(path)):rupath = os.path.join(path, file)key = "rule" + str(index)fSEO靠我ilepath[key] = rupathyararule = yara.compile(filepaths=filepath)return yararule# 扫描函数 def scSEO靠我an(rule, path):for file in os.listdir(path.decode("utf-8")):mapath = os.path.join(path, file)print mSEO靠我alpathfp = open(mapath, rb)matches = rule.match(data=fp.read())if len(matches) > 0:print file, matchSEO靠我esif __name__ == __main__:rulepath = "/home/authenticate/yara/rule_yara/" # yara规则目录malpath ="/homSEO靠我e/authenticate/yara/test_simple/" # simple目录# yara规则编译函数调用yararule = getRules(rulepath)# 扫描函数调用scan(SEO靠我yararule, malpath)注意:
1. 不建议目录中包含中文!!!
2. 报错yara: error while loading shared libraries: /usr/lib/libyaraSEO靠我.so: cannot open shared object file: No such file or directory
解决:将libyara.so复制到/usr/lib目录下即可。
网站备案号:浙ICP备17034767号-2