Вопросы по теме 'xnu'

Риски и преимущества использования / dev / autofs_nowait в OS X
В источнике инфраструктуры CoreFoundation вызовы API файловой системы POSIX (например, open() , stat() , и т. Д. все… ) завернуты в an , в котором дескриптор на /dev/autofs_nowait получается - с open(…, 0) - перед выполнением вызовов POSIX;...
414 просмотров
schedule 05.11.2021

отправка команды IOKit с динамической длиной
Я использую инфраструктуру IOKit для связи с моим драйвером, используя IOConnectCallMethod из клиента пользовательского пространства и IOExternalMethodDispatch на стороне драйвера. До сих пор я мог отправлять команды фиксированной длины, и...
943 просмотров
schedule 12.11.2021

Класс Singleton в драйвере kext на основе IOKit
У меня есть класс, который поддерживает экземпляр типа class IOSharedDataQueue : public IODataQueue , который является объектом IOKit. Класс отделен и вызывается из различных методов основного класса, который является классом на основе IOKit...
206 просмотров
schedule 02.12.2021

Как использовать atos для правильного обозначения адресов из OSReportWithBacktrace?
Я пытаюсь найти утечки в проекте с открытым исходным кодом для поддержки трекпадов на основе I2C ( https://github.com/kprinssu/VoodooI2CHID ). Причина, по которой я считаю, что сохраняются утечки, заключается в том, что когда я пытаюсь выгрузить...
157 просмотров
schedule 21.03.2022

Драйвер IOKit загружен, но не запущен
У меня есть базовый драйвер IOKit, который не запускается аппаратно и происходит из IOResources. он также предоставляет клиентский класс пользовательского пространства с использованием IOServiceOpen , но я думаю, что это не имеет отношения к моей...
243 просмотров
schedule 31.05.2022

Почему lsyncd требует xnu?
Я работаю над этапами компиляции lsyncd в Mac OS X (точнее, 10.7.3). Наконец удалось его скомпилировать, несмотря на пару незначительных синтаксических ошибок в исходном коде lysncd; и я понял от Акселя Киттенбергера (разработчика, управляющего...
691 просмотров
schedule 19.09.2022

Как я могу найти версию xnu, соответствующую определенному выпуску OS X?
Я пытаюсь найти список поддерживаемых системных вызовов в старой версии OS X. Для каждой версии ядра XNU существует файл syscalls.master , который дает мне то, что я хочу (например, вот один для XNU 2782.20.48). Я вижу свою текущую версию XNU с...
1619 просмотров
schedule 12.07.2023

Перехват системных вызовов в Mac OS X
Я пытаюсь поймать все системные вызовы, вызываемые данным PID, с помощью самодельной программы (я не могу использовать ни одну из strace, dtruss, gdb...). Поэтому я использовал функцию kern_return_t task_set_emulation(task_t target_port,...
542 просмотров
schedule 16.01.2023

Как загрузить ядро ​​XNU?
Я успешно скомпилировал XNU 3789.31.2 из исходного кода, но не знаю, как его загрузить и запустить. Есть ли подробная инструкция для этого?
548 просмотров
schedule 04.05.2023

В какой библиотеке KPI объявлена ​​IODeviceMemory?
Гугл не дает никакой информации. Я не смог понять это, поискав в исходниках ядра. Я использую IOProxyVideoFamily с открытым исходным кодом для реализации виртуального фреймбуфера. Я только что заменил приведение в стиле C к IODeviceMemory на...
150 просмотров
schedule 01.06.2023

Получение уведомлений о выключении и перезапуске в macOS
Я хочу, чтобы мой драйвер IOKit получал уведомления о событиях power off и restart . К счастью, IOKit предоставляет такое уведомление с использованием метода IOService::systemWillShutDown , который следует перезаписать и включить мою логику....
486 просмотров

Смонтировать/размонтировать файловую систему из расширения ядра macOS
hdiutil может прикреплять и отсоединять файл DMG, содержащий раздел HFS+, в выбранную точку монтирования. Однако он использует частный API DiskImages.framework . Моя цель состоит в том, чтобы сделать эту задачу полностью программной, поэтому я...
335 просмотров
schedule 31.01.2023

В macOS Kauth API отсутствует защита от переименования vnode
Чтобы защитить файл моего проекта от удаления неавторизованными объектами, я использовал kauth_listen_scope с опцией KAUTH_SCOPE_VNODE , чтобы добавить новую функцию обратного вызова, которая не позволяет другим удалять эти файлы. Однако...
115 просмотров

Использование семафоров Маха в качестве замены межпроцессных анонимных семафоров
Я хочу использовать анонимные семафоры в общей памяти для синхронизации нескольких процессов. Хотя несколько операционных систем POSIX предоставляют анонимные семафоры (посредством sem_init и связанных функций), macOS их не поддерживает. Я...
93 просмотров
schedule 29.01.2023

XNU: получение уведомлений о запуске и очистке процесса в kext
Каков наилучший способ получать уведомления о запуске и завершении процесса в расширении ядра? Я знаю, что могу использовать KAuth для подписки на создание процесса ( KAUTH_VNODE_EXECUTE ). Как насчет подписки на очистку процесса?
883 просмотров
schedule 14.03.2024

Как получить текущий идентификатор процессора в macOS KEXT
Я нашел kern/processor.h файлов, включающих current_processor(). Но я не могу использовать current_processor() , даже если я включаю файл kern/processor.h . Есть ли способы получить текущий идентификатор процессора? Добавить 030420: мне...
120 просмотров
schedule 30.03.2024

Как определить, есть ли у процесса привилегии root в сетевом расширении ядра?
Я пишу фильтр сокетов kext, и я хотел бы игнорировать любые соединения, сделанные с правами root. До OS X Lion следующий код работал безупречно: static boolean_t is_root() { proc_t p = proc_self(); boolean_t isRoot = proc_suser(p);...
543 просмотров
schedule 25.05.2024