Как установить HeadlessContinuationOption в prehScript Ghidra Python - PullRequest
0 голосов
/ 10 июля 2019

Я запускаю скрипт Python Ghidra в автономном режиме из командной строки, указывая мой сценарий в качестве preScript.
Например, ./analyzeHeadless project_path project_name -preScript pre.py -import my_exec_file

Я бы хотел установить HeadlessContinuationOption в этом сценарии.

Эквивалентом в префиксе Java будет:

import ghidra.app.util.headless.HeadlessScript;

public class Pre extends HeadlessScript {
  @Override
  public void run() throws Exception {
      setHeadlessContinuationOption(HeadlessContinuationOption.ABORT);
  }
}

Однако в питоне нет класса для наследования от HeadlessScript (и setHeadlessContinuationOption в методе экземпляра этого абстрактного класса).Я просто пишу сценарий в глобальном масштабе.

Я пытался создать класс, подобный написанному на Java-скрипте, но ничего не создавал для него экземпляра.Я также пытался создать его экземпляр и сам вызвать run и вызвать setHeadlessContinuationOption для этого экземпляра в run, но это не дает желаемого эффекта (опция abort игнорируется, а импорт файла exec продолжается).
Вот этот код (он не работает)

from ghidra.app.util.headless import HeadlessScript

class Pre(HeadlessScript):
        def run(self):
                self.setHeadlessContinuationOption(self.HeadlessContinuationOption.ABORT)
Pre().run()

Итак, как я могу установить setHeadlessContinuationOption(HeadlessContinuationOption.ABORT) в preScript Python?

Спасибо.

...