Модуль query

Модуль query содержит вспомогательные функции для формирования строк с запросами к серверу Joern.

Для большинства запросов в модуле есть функции, которые формируют запрос. Класс QueryBuilder должен использоваться только для формирования специфичных запросов (для которых нет соответствующей функции).

class visualization.query.QueryBuilder

Класс QueryBuilder позволяет формировать строку с запросом.

Запрос формируется за счет добавления фраз запроса. Для каждой фразы можно указать ее аргументы при помощи метода add_phrase(). Класс запоминает каждую добавленную фразу, запомненные фразы можно сбросить при помощи метода reset().

add_phrase(phrase, *args)

Добавляет фразу в запрос. Фразой может быть, например, importCode или project, то есть названия, которые указываются через точку в командах Joern.

Данный метод принимает переменное количество параметров, в args передаются аргументы фразы.

Параметры
  • phrase (string) – фраза запроса

  • args – аргументы фразы (каждый аргумент имеет тип string)

build()

Возвращает строку запроса с добавленными фразами.

Результат

строка запроса

Тип результата

string

reset()

Сбрасывает запомненные фразы.

visualization.query.import_code_from_folder(path)

Формирует запрос для импортирования исходного кода из директории с проектом.

Параметры

path (string) – абсолютный путь к проекту

Результат

строка с запросом

Тип результата

string

visualization.query.import_code_from_string(code)

Формирует запрос для импортирования исходного кода, который храниться в строке code.

Параметры

code (string) – строка с исходным кодом

Результат

строка с запросом

Тип результата

string

visualization.query.dot_cfg_for_func(func_name)

Формирует запрос для получения DOT представления графа потока управления (CFG) функции с именем func_name.

Параметры

func_name (string) – имя функции

Результат

строка с запросом

Тип результата

string

visualization.query.close_current_project()

Формирует запрос для закрытия текущего проекта Joern.

Результат

строка с запросом

Тип результата

string

visualization.query.non_external_func_names()

Формирует запрос для получения имен функций, которые принадлежат текущему проекту (не внешние импортированные функции).

Результат

строка с запросом

Тип результата

string