nmggithub/Kass
GitHub: nmggithub/Kass
Kass 是一个用 Swift 编写的 macOS 逆向工程与安全研究模块集合,封装了 XNU 内核的 Mach 和 BSD 层 API,便于开发者直接与底层系统交互。
Stars: 105 | Forks: 5
# Kass
[](https://swiftpackageindex.com/nmggithub/Kass)
[](https://swiftpackageindex.com/nmggithub/Kass)
Kass 是一个使用 Swift 编写的模块集合,主要用于 macOS 上的逆向工程和安全研究。它目前专注于与 macOS 底层的 XNU kernel 进行交互,但未来可能会进行扩展,以支持其他基于 XNU 的操作系统,例如 iOS。
请注意,虽然它可能在旧版本的 macOS 上也能编译,但此库仅在最新版本的 macOS 上经过了全面测试。在某些情况下,代码中包含了旧的、已弃用(甚至已废弃)的 API,但就目前而言,应假定它们未经测试。这种情况未来可能会有所改变。
## 关于许可证
此代码的大部分采用 MIT 许可证。但是,在某些情况下,部分内容复制自采用 [Apple 公开源代码许可证](https://opensource.apple.com/apsl/) 及其他许可证的头文件。在适当的情况下,已包含了相关许可证的版权声明。请查阅源代码以获取更多信息。
## 模块
### [`Kass`](https://swiftpackageindex.com/nmggithub/Kass/main/documentation/kass/)
这仅仅是一个命名空间“模块”。它可以用于访问 `MachCore` 和 `BSDCore` 模块,但并非严格必需。
### [`MachCore`](https://swiftpackageindex.com/nmggithub/Kass/main/documentation/machcore/)
此模块提供了与 XNU kernel 的 Mach 部分进行交互的工具。包含了大部分 Mach API。应将此模块视为最稳定的模块,因为投入了最多的精力进行完善。
### [`BSDCore`](https://swiftpackageindex.com/nmggithub/Kass/main/documentation/bsdcore/)
此模块提供了与 XNU kernel 的 BSD 部分进行交互的工具。它目前仍处于开发阶段,可能会发生变动,因此不应被认为是非常稳定的。
### [`Linking`](https://swiftpackageindex.com/nmggithub/Kass/main/documentation/linking/)
此模块提供了一个简单的 API 来访问符号,其内部使用了 `dlopen`/`dlsym` 函数。未来它很可能会被合并到 `BSDCore` 中。
## 注意事项
请注意,这些模块主要用于逆向工程和安全研究。虽然某些模块在生产应用中可能很有用,但这并非它们的设计初衷。
## 用法
### 添加依赖:
像这样修改你的 `Package.swift`:
```
let package = Package(
...
dependencies: [
.package(url: "https://github.com/nmggithub/Kass", exact: "{desired-version}"),
],
targets: [
/// the target you wish to use this module in
.[target | executableTarget](
...
dependencies: [
.product(name: "{module-name}", package: "Kass")
]
)
]
)
```
### 在 target 中使用该依赖:
只需将
```
import {module-name}
```
放在你的 Swift 文件的顶部即可。
### 命名冲突
如果任何模块名与你的 package 中已有的模块发生冲突,只需在定义依赖时使用 [`moduleAliases:`](https://github.com/swiftlang/swift-evolution/blob/main/proposals/0339-module-aliasing-for-disambiguation.md) 选项。请查阅文档以获取有关命名冲突的更多信息。
标签:Mach, Swift, XNU内核, 云资产清单, 逆向工程