Я использую Genymotion для эмуляции Android , при исследовании некоторых CVE ядра Android мне нужно проанализировать структуры ядра для определения смещений элементов.
Я нашел сообщение в блоге, в котором демонстрируется использование GDB в образе vmlinux ядра Linux для проверки макетов конструкций, например:
Код: Выделить всё
gdb> ptype /o struct binder_ref
/* offset | size */ type = struct binder_ref {
...
/* 88 | 8 */ struct binder_node *node;
/* 96 | 8 */ struct binder_ref_death *death;
В Linux символы отладки обычно доступны через vmlinux, но в образах Android я вижу только такие вещи, как boot.img или иногда bzImage, и я не до конца понимаю разницу или какой из них содержит символы ядра, необходимые для отладки.
Мой вопрос:
Как получить или извлечь смещения структуры ядра (как в приведенном выше примере для structbinder_ref) в среде ядра Android? Каков правильный рабочий процесс для использования GDB или другого инструмента в этом случае?
Мобильная версия