0

Volatility プラグインを作成して、マルウェアが使用する構成ファイルをメモリ ダンプから抽出しようとしています。ただし、ルート権限なしでこのプラグインを (「sudo」なしで) 実行すると、プラグインは行 yara.compile でクラッシュします。このプラグインを「sudo」で実行すると、yara.compile 行の後のコードが実行されません。yara.compile がこの問題を引き起こしている理由がわかりません。誰かがこれで私を助けてくれますか? 以下は私が書いたコードです:

import volatility.plugins.common as common 
import volatility.utils as utils
import volatility.win32.tasks as tasks 
import volatility.debug as debug
import volatility.plugins.malware.malfind as malfind
import volatility.conf as conf
import volatility.plugins.taskmods as taskmods

try:
    import yara
    HAS_YARA = True
except ImportError:
    HAS_YARA = False

YARA_SIGS = {
    'malware_conf' : 'rule malware_conf {strings: $a = /<settings/ condition: $a}'
}

class malwarescan(taskmods.PSList):

    def get_vad_base(self, task, address):
        for vad in task.VadRoot.traverse():
            if address >= vad.Start and address < vad.End:
                return vad.Start
        return None

    def calculate(self):
        if not HAS_YARA:
            debug.error('Yara must be installed for this plugin')
        print "in calculate function"
        kernel_space = utils.load_as(self._config)
        print "before yara compile"
        rules = yara.compile(sources=YARA_SIGS)
        print "after yara compile"
        for process in tasks.pslist(kernel_space):
             if "IEXPLORE.EXE".lower() == process.ImageFileName.lower():
                 scanner = malfind.VadYaraScanner(task=process, rules=rules)
                 for hit, address in scanner.scan():
                     vad_base_addr = self.get_vad_base(process, address)
                     yield process, address



    def render_text(self, outfd, data):
        for process, address in data:

            outfd.write("Process: {0}, Pid: {1}\n".format(process.ImageFileName, process.UniqueProcessId))

そのため、このプラグインをルート権限で実行すると、「print 'after yara compile'」という行が実行されません。その理由は何ですか?ありがとうございました。

4

1 に答える 1

1

「pip」で「yara」をインストールしました。pip を介して yara をインストールすると、実際には yara-python とは少し異なるyara-ctypes ( https://github.com/mjdorma/yara-ctypes ) が取得されます。そこで、yara-ctypes をアンインストールし、yara-python をインストールしました。その後、うまくいきました。

于 2015-08-06T15:26:26.907 に答える