Получение идентификаторов сборки для ELF-образов, загруженных в память процесса (task_deb_api.h)
API определен в заголовочном файле sysroot-*-kos/include/coresrv/task/task_deb_api.h из состава KasperskyOS SDK.
API позволяет получить идентификаторы сборки (англ. build IDs) для ELF-образов (исполняемого файла и динамических библиотек), загруженных в память процесса. (Эти идентификаторы будут получены только при их наличии в ядре KasperskyOS. При создании процесса или при загрузке динамической библиотеки идентификатор сборки передается ядру, если только не отсутствует в ELF-образе.) Идентификаторы сборки можно, например, вывести совместно с данными обратной трассировки стека и использовать при анализе этих данных, чтобы преобразовать адреса памяти в имена функций и номера строк исходного кода с помощью утилиты llvm-symbolizer или llvm-addr2line из состава KasperskyOS SDK (исполняемые файлы в директории toolchain/bin).
Сведения о функциях API приведены в таблице ниже.
Использование API
Чтобы получить идентификатор сборки, нужно вызвать функцию KnTaskGetBuildId(). Для идентификации ELF-образа эта функция принимает через параметр addr адрес, принадлежащий участку памяти вызывающего процесса, который занят сегментом ELF-образа. Через этот параметр нужно передать адрес памяти из данных обратной трассировки стека, которые могут быть получены, например, вызовом функции backtrace(), объявленной в заголовочном файле sysroot-*-kos/include/execinfo.h из состава KasperskyOS SDK (API библиотеки libc).
Сведения о функциях API
Функции task_deb_api.h
Функция | Сведения о функции |
|---|---|
| Назначение Позволяет получить идентификатор сборки для ELF-образа, сегмент которого занимает в памяти вызывающего процесса участок, включающий заданный адрес. Параметры
Возвращаемые значения В случае успеха возвращает |