Модуль 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