NoneXnu - это имя ядра операционной системы, которое лежит в основе Mac OS X/darwin и iOS.
0 ответов

SIGCONT на поведение MACOS X

Когда я вызываю waitpid() с установленными параметрами WUNTRACED|WCONTINUED, чтобы узнать, когда дочерний процесс получает SIGSTOP и SIGCONT. SIGSTOP не является проблемой, но я не могу перехватить сигнал sigcont с помощью функции WIFCONTINUED(stat)…
04 дек '18 в 18:50
1 ответ

Адрес возврата кода операции SIDT для неправильно сформированной структуры IDT

Моя цель - получить доступ к IDT из модуля ядра MacOS. Я использую macOS 10.13.2 под VMFusion 10.0.1, и кажется, что sidt команда сборки указывает на поврежденную структуру таблицы. Этот код операции должен возвращать адрес в "Таблицу дескрипторов п…
20 дек '17 в 16:47
2 ответа

OS X 10.8 - пост-системный макет адресного пространства

Я полностью отключил подкачку на моем OS X 10.8.2 (в котором работает ядро ​​x86 LP64) по экспериментальным причинам, я знаю, что это плохая идея. Когда я выполняю системный вызов из любого приложения, как выглядит макет адресного пространства? Т.е.…
18 сен '13 в 15:37
0 ответов

Получение ссылки на драйвер Kext от агента пространства пользователя

У меня есть драйвер IOKit, который происходит от public IOService + пользовательский клиентский интерфейс, производный от public IOUserClient, Чтобы никто не мог выгрузить мой драйвер при общении с клиентом из пользовательского пространства, я воспо…
21 дек '16 в 12:21
2 ответа

Загрузить расширение ядра через C API?

Можно ли загрузить расширение ядра (kext) через C API вместо использования system() вызов?
12 апр '15 в 15:33
0 ответов

IP/ пакетная маршрутизация на основе порта dest - какие-либо советы по использованию PF или написанию NKE?

Надеясь на некоторые подсказки относительно того, какой тип NKE я должен создать. Я ищу, чтобы сделать маршрутизацию пакетов в стиле iproute2 на OS X, или, возможно, я должен сказать "macOS". По умолчанию в macOS команда "route" ограничивается IP-ад…
26 июн '16 в 02:26
2 ответа

Почему мое расширение ядра не записывает в kernel.log

У меня есть простое расширение ядра: kern_return_t HelloWorld_start (kmod_info_t *ki, void * d) { printf("Hello World\n"); return KERN_SUCCESS; } kern_return_t HelloWorld_stop (kmod_info_t * kid, void * d) { printf("Goodbye World\n"); return KERN_SU…
21 авг '12 в 03:04
0 ответов

Поймать SIGKILL в драйвере MacOS

В настоящее время я отлаживаю своего демона, который предположительно умирает из-за SIGKILL. Я хотел бы поймать тот сигнал, который предназначен для моего процесса, и добавить распечатку, которую получил этот процесс. Я знаю, что SIGKILL не может бы…
06 дек '16 в 09:48
1 ответ

Риски и преимущества использования /dev/autofs_nowait в OS X

Во всем источнике инфраструктуры CoreFoundation вызовы API файловой системы POSIX (например, open(), stat() и др.) заключены в идиому, в которой дескриптор /dev/autofs_nowait приобретено - с open(…, 0) - до выполнения вызовов POSIX; впоследствии дес…
09 сен '16 в 04:18
0 ответов

Как получить использование процессора в ядре Mach?

Я пытаюсь получить использование процессора в ядре Mach, но я всегда получаю один и тот же вывод. Что я делаю не так? static mach_port_t port; Получить статистику загрузки процессора int load_get(host_info_t r_load) { mach_msg_type_number_t count; c…
17 май '15 в 09:40
1 ответ

kextutil говорит, что моя подпись расширения ядра недействительна, а знак кода говорит, что она действительна. Не загружается

Это первый раз, когда я пытался подписать расширение ядра, поэтому я открыт для вероятности, что я делаю это неправильно. Я запросил у Apple сертификат на подпись ядра. Мне нужно было заполнить форму, демонстрирующую, что мне действительно нужно соз…
10 ноя '17 в 21:57
1 ответ

Предотвращение чтения файлов из памяти в ядре xnu

У меня есть файл dylib, для которого я запрещаю доступ на уровне ядра. Я использую драйвер, который прослушивает область действия kauth vnode с обратным вызовом, который предотвращает любой доступ к этому файлу. Тем не менее, я заметил, что инфрастр…
03 июл '18 в 08:32
1 ответ

Драйвер виртуального дискового устройства SCSI в OS X вызывает панику, когда устройство отформатировано с использованием только HFS+

В настоящее время я разрабатываю драйвер виртуального устройства SCSI с использованием IOKit. Мой драйвер загружается нормально, и я могу отформатировать свое устройство, используя ExFat, FAT32 или HFS+. Я также могу копировать файлы на виртуальное …
08 июл '14 в 01:11
1 ответ

Как OS X генерирует отчет о сбое?

Материал, доступный через Интернет, список рассылки, книги, такие как Mac OS X Internals, и даже исходный код довольно ограничен. Теперь я знаю, что ядро ​​xnu вызывает EXC_CRASH, который уведомляет запущенный запуск "Problem Reporter.app" (ранее Cr…
13 фев '12 в 01:35
1 ответ

Добавление пользовательского macosx.internal SDK

Основная цель: я хочу установку, где я могу скомпилировать как со стандартным SDK, так и с модифицированным SDK для разработки ядра, передав правильный SDK в xcodebuild. При сборке ядра MacOS X SDK по умолчанию необходимо изменить. Эти изменения мог…
02 авг '18 в 09:14
1 ответ

XNU вклинивается в Kext

Я работаю над Kext, который должен иметь доступ к struct proc->p_pid поле. Проблема в том, что структура определяется только в источниках XNU, поэтому я столкнулся с incomplete definition of type 'struct proc' ошибка при компиляции. С моей точки …
07 июл '13 в 14:21
3 ответа

Проверьте отправителя при прослушивании сокета unix

У меня есть процесс, который слушает сокет Unix. Однако, прежде чем я прочитал, я хотел бы проверить некоторые метаданные об этом входящем сообщении, такие как его исходный процесс (скажем, я хотел бы удалить сообщения от ненадежных отправителей). е…
04 июл '16 в 12:40
2 ответа

Могу ли я найти библиотеку, которая создала именованный OSMallocTag?

Я использую инструмент распределения для измерения использования кучи в моем приложении для iOS. Я обнаружил, что в области с тегом "Memory Tag 70" выделено значительное количество памяти, и я хотел бы знать, кто за это отвечает, чтобы я мог отследи…
15 дек '10 в 11:31
1 ответ

Kext вызывает панику в потоке переключения контекста в macOS 10.14.

Недавно я тестировал свой kext на 10.14, и какое-то время он работал нормально. Но через некоторое время (может занять несколько минут), он вызывает следующую панику: thread_invoke: preemption_level -1, possible cause: unlocking an unlocked mutex or…
0 ответов

Кевент и USB последовательные порты

У меня проблемы с использованием Kevent на Mac с последовательной консолью USB. Я сузил это до: #include <errno.h> #include <fcntl.h> #include <stdio.h> #include <string.h> #include <sys/event.h> #include <sys/ioctl.…
19 июн '15 в 20:27