江南でjsunpack-n(五)を研究する
今日はその「プログラムプロジェクト管理」の試験に一日中元気も気持ちもなくjsunpackをしました.いいでしょう.やはり努力しなければなりません.
「大衆の顔にも春がある」を見て、笑いました!
===============================================================
今日はYARA文法の残りの部分を勉強しましょう.
6. Includes
cに似た#include
include"other.yar"include"./includes/other.yar"include"../includes/other.yar"include"/home/plusvic/yara/includes/other.yar"windowsでは、次のこともできます.
include "c:/yara/includes/other.yar"include "c:\\yara\\includes\\other.yar"
7. Using YARA from command-line
8. Using YARA from Python
プログラムなどに例をあげたりします.の見れば真似できる.
Ps:まずyara-python環境をインストールする
import yara//yaraを使う
rule:rules=yaraをコンパイルします.compile(filepath='/foo/bar/myrules')/rules rules=yaraをコンパイルする.compile('/foo/bar/myrules')/filepathを追加する必要はありません.デフォルトのfh=open('/foo/bar/myrules')/この形式でもいいですよ~rules=yara.compile(file=fh) fh.close()
これは直接コンパイルして書かれたruleです.
rules = yara.compile(source='rule dummy { condition: true }')
複数rule(filepaths and sources):
rules = yara.compile(filepaths={
'namespace1':'/my/path/rules1', 'namespace2':'/my/path/rules2' })
rules = yara.compile(sources={
'namespace1':'rule dummy { condition: true }', 'namespace2':'rule dummy { condition: false }'
})
コンパイル、検出されたソースファイルがincludeコマンドを使用するとエラーが表示されます
rules = yara.compile('/foo/bar/myrules', includes=False)
コンパイル時に外部変数に値を割り当てます(外部変数(externals parameter)を覚えていますか?)
rules = yara.compile( '/foo/rules', externals= { 'var1': 'some string', 'var2': 4, 'var3': True })
match関数とそのcallback関数:
import yara def mycallback(data): print data yara.CALLBACK_CONTINUE
matches = rules.match('/foo/bar/myfile', callback=mycallback)
Ps:callbackはmatch関数が呼び出されるたびに自動的に呼び出される関数です.
The passed dictionary will be something like this:{'tags':['foo','bar'],'matches':True,'namespace':'default','rule':'my_rule','meta':{},'strngs':[(81,'$a','abc'),(141,'$b','def')]}YARAのやり方をまとめます.
(1)compile関数を用いて,1つのRuleを返すクラスインスタンスruleをコンパイルする.
(2)match関数を用いて,マッチして1つのMatchを返すクラスインスタンスmatch
(3)matchの内容を見て欲しい結果が得られる
「大衆の顔にも春がある」を見て、笑いました!
===============================================================
今日はYARA文法の残りの部分を勉強しましょう.
6. Includes
cに似た#include
include"other.yar"include"./includes/other.yar"include"../includes/other.yar"include"/home/plusvic/yara/includes/other.yar"windowsでは、次のこともできます.
include "c:/yara/includes/other.yar"include "c:\\yara\\includes\\other.yar"
7. Using YARA from command-line
usage: yara [OPTION]... [RULEFILE]... FILE | PID
options:
-t <tag> print rules tagged as <tag> and ignore the rest.
-i <identifier> print rules named <identifier> and ignore the rest.
-n print only not satisfied rules (negate).
-g print tags.
-m print metadata.
-s print matching strings.
-l <number> abort scanning after a <number> of rules matched.
-d <identifier>=<value> define external variable.
-r recursively search directories.
-f fast matching mode.
-v show version information.
8. Using YARA from Python
プログラムなどに例をあげたりします.の見れば真似できる.
Ps:まずyara-python環境をインストールする
import yara//yaraを使う
rule:rules=yaraをコンパイルします.compile(filepath='/foo/bar/myrules')/rules rules=yaraをコンパイルする.compile('/foo/bar/myrules')/filepathを追加する必要はありません.デフォルトのfh=open('/foo/bar/myrules')/この形式でもいいですよ~rules=yara.compile(file=fh) fh.close()
これは直接コンパイルして書かれたruleです.
rules = yara.compile(source='rule dummy { condition: true }')
複数rule(filepaths and sources):
rules = yara.compile(filepaths={
'namespace1':'/my/path/rules1', 'namespace2':'/my/path/rules2' })
rules = yara.compile(sources={
'namespace1':'rule dummy { condition: true }', 'namespace2':'rule dummy { condition: false }'
})
コンパイル、検出されたソースファイルがincludeコマンドを使用するとエラーが表示されます
rules = yara.compile('/foo/bar/myrules', includes=False)
コンパイル時に外部変数に値を割り当てます(外部変数(externals parameter)を覚えていますか?)
rules = yara.compile( '/foo/rules', externals= { 'var1': 'some string', 'var2': 4, 'var3': True })
match関数とそのcallback関数:
import yara def mycallback(data): print data yara.CALLBACK_CONTINUE
matches = rules.match('/foo/bar/myfile', callback=mycallback)
Ps:callbackはmatch関数が呼び出されるたびに自動的に呼び出される関数です.
The passed dictionary will be something like this:{'tags':['foo','bar'],'matches':True,'namespace':'default','rule':'my_rule','meta':{},'strngs':[(81,'$a','abc'),(141,'$b','def')]}YARAのやり方をまとめます.
(1)compile関数を用いて,1つのRuleを返すクラスインスタンスruleをコンパイルする.
(2)match関数を用いて,マッチして1つのMatchを返すクラスインスタンスmatch
(3)matchの内容を見て欲しい結果が得られる