标签: kernel-extension

在 Mac OS X 中获取进程创建通知

我正在尝试为 Mac OS X 编写 kext,它会在任何进程启动时收到通知。

在 Windows 中,您可以通过调用 PsSetLoadImageNotifyRoutine(...) 并指定将在进程启动时调用的回调来完成此操作。这是记录的方式,它适用于从 Win 2k 开始的所有 Windows。

Mac 上有类似的吗?使用 kauth 进程侦听器似乎可以实现这一点,但是 OS X 中从未实现过进程范围。

另一种选择是挂钩 SYS_execve 和朋友,但这是未记录且不受支持的方式。我真的不想走这条路。

我不需要任何取消 - 只想在进程启动时收到通知,并获取它的 pid 和路径。

macos hook kernel-extension

3
推荐指数
1
解决办法
3479
查看次数

使用NKE嗅探HTTP数据包

我正在尝试通过使用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还是其他问题?

macos network-programming packet-sniffers kernel-extension

2
推荐指数
1
解决办法
442
查看次数

XNU在Kext中表现出色

我正在研究应该可以访问struct proc->p_pid字段的Kext .问题是结构只在XNU源中定义,所以我incomplete definition of type 'struct proc'在编译时遇到了错误.

从我的角度来看,将XNU标题包含到我自己的项目中是一个难闻的解决方案,但是另一种方法是什么?是复制并将结构粘贴到我自己的代码中吗?

macos kernel-extension xnu

2
推荐指数
1
解决办法
217
查看次数

默认情况下可以在紧急日志中显示调试 KEXT 符号吗?

回到 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)

macos darwin iokit kernel-extension

2
推荐指数
1
解决办法
907
查看次数

如何创建无代码内核扩展?

我知道如何在 KEXT 中加载驱动程序,并且我知道如何使用 xcode。问题是,如何创建无代码 kext

假设我已经有一个文本文件并且可以将其另存为 PLIST 文件?然后呢?如何将其(PLIST 文件)转换为 .KEXT 文件?使用Xcode?或者从命令行?我正在寻找分步指导。

macos xcode iokit kernel-extension

2
推荐指数
1
解决办法
1741
查看次数

在darwin上找到USB设备的驱动程序

我在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)

macos usb darwin iokit kernel-extension

2
推荐指数
1
解决办法
1009
查看次数

SMJobBless 和 NSXPCConnection

有一个 Apple SMJobBless示例展示了如何安全地安装辅助工具。SMJobBlessXPC使用 XPC (c API) 通过 Mach 端口在应用程序和特权助手工具之间进行通信。

我需要使用 NSXPCConnection (Objective c API) SMJobBlessXPC。

cocoa xpc objective-c kernel-extension nsxpcconnection

1
推荐指数
1
解决办法
727
查看次数

如何在 mac os 中录制系统声音,如 Wondershare Filmora Scrn?

Soundflower 通常被使用,但必须安装。Filmora srcn 无需安装驱动程序即可录制系统声音。它是如何捕捉声音的?MacOS,而不是 iOS

c++ macos core-audio kernel-extension audiounit

1
推荐指数
1
解决办法
1345
查看次数