我正在尝试为 Mac OS X 编写 kext,它会在任何进程启动时收到通知。
在 Windows 中,您可以通过调用 PsSetLoadImageNotifyRoutine(...) 并指定将在进程启动时调用的回调来完成此操作。这是记录的方式,它适用于从 Win 2k 开始的所有 Windows。
Mac 上有类似的吗?使用 kauth 进程侦听器似乎可以实现这一点,但是 OS X 中从未实现过进程范围。
另一种选择是挂钩 SYS_execve 和朋友,但这是未记录且不受支持的方式。我真的不想走这条路。
我不需要任何取消 - 只想在进程启动时收到通知,并获取它的 pid 和路径。
我正在尝试通过使用NKE进行KEXT来读取http请求和响应.我注册了一个套接字过滤器,每当我得到数据时我都会使用如下代码打印mbuf:
unsigned char *dataString = mbuf_data(*data);
for (size_t i = 0; i < mbuf_len(*data); i++)
{
printf("%c", dataString[i]);
}
printf("\n-------------\n");
Run Code Online (Sandbox Code Playgroud)
我可以从日志中读取http请求和一些响应数据,但看不到任何HTML内容.我想知道我是不是正确阅读mbuf还是其他问题?
我正在研究应该可以访问struct proc->p_pid字段的Kext .问题是结构只在XNU源中定义,所以我incomplete definition of type 'struct proc'在编译时遇到了错误.
从我的角度来看,将XNU标题包含到我自己的项目中是一个难闻的解决方案,但是另一种方法是什么?是复制并将结构粘贴到我自己的代码中吗?
回到 IOKit 的变化中(El Capitan 带来的 USB 变化似乎非常全面),我发现调试 kext 恐慌日志在后端是一个痛苦的过程。
虽然我在开发和测试,是有可能离开的符号IN的内核扩展,使他们在panic.log回溯打印出来?
对于我的调试 KEXT,我尝试将“Strip Debug Symbols during Copy”设置(aka COPY_PHASE_STRIP)和“Strip Linked Product”(aka STRIP_INSTALLED_PRODUCT)目标设置更改为NO.
我的恐慌日志中仍然有无符号输出。我只是运气不好,MacOS 根本就没有这样做,还是我缺少其他设置?
IE 而不是:
Anonymous UUID: A8A49864-0847-0BFD-AE70-67EE1BA71682
Fri Dec 18 07:43:19 2015
*** Panic Report ***
panic(cpu 3 caller 0xffffff8013d98fd9): Kernel trap at 0xffffff7f96f00056, type 14=page fault, registers:
CR0: 0x0000000080010033, CR2: 0x0000000000000018, CR3: 0x000000022c105000, CR4: 0x0000000000002660
RAX: 0x00000000c0a8bc01, RBX: 0x0000000000000000, RCX: 0x0000000000000000, RDX: 0x0000000000003dbd
RSP: 0xffffff811dd2b810, RBP: 0xffffff811dd2b8a0, RSI: 0x0000000027a3aee5, RDI: 0x00000000c0a8bc01
R8: 0x0000000000000000, …Run Code Online (Sandbox Code Playgroud) 我知道如何在 KEXT 中加载驱动程序,并且我知道如何使用 xcode。问题是,如何创建无代码 kext?
假设我已经有一个文本文件并且可以将其另存为 PLIST 文件?然后呢?如何将其(PLIST 文件)转换为 .KEXT 文件?使用Xcode?或者从命令行?我正在寻找分步指导。
我在mac OS X 10.11上面临这个问题 - 即.一些kext已经接管了我的设备,我不能声称它libusb.有可能找出哪一个?这是有问题的设备:
$ system_profiler SPUSBDataType
[...]
mEDBG CMSIS-DAP:
Product ID: 0x2145
Vendor ID: 0x03eb (Atmel Corporation)
Version: 10.00
Serial Number: ATML2323040200017792
Speed: Up to 12 Mb/sec
Manufacturer: ATMEL
Location ID: 0x14130000 / 13
Current Available (mA): 1000
Current Required (mA): 100
Extra Operating Current (mA): 0
Run Code Online (Sandbox Code Playgroud) 有一个 Apple SMJobBless示例展示了如何安全地安装辅助工具。SMJobBlessXPC使用 XPC (c API) 通过 Mach 端口在应用程序和特权助手工具之间进行通信。
我需要使用 NSXPCConnection (Objective c API) SMJobBlessXPC。
Soundflower 通常被使用,但必须安装。Filmora srcn 无需安装驱动程序即可录制系统声音。它是如何捕捉声音的?MacOS,而不是 iOS