文章《Dynamic Indirect Syscalls via JOP or ROP in Rust》
no_std、no_alloc、无依赖的 Rust 库:通过 JOP/ROP 使用混淆的返回地址进行间接系统调用
这篇文章介绍了一个用 Rust 编写的项目,旨在通过 JOP(Jump-Oriented Programming)或 ROP(Return-Oriented Programming)技术动态间接调用 Windows 系统调用,以绕过检测机制。
项目的核心思想是通过用户提供的 ROP/JOP 链在运行时动态计算出调用路径,使得分析系统调用的来源更加困难。
作者通过构造一个包含 jmp rcx
、pop rcx; ret
等指令的 gadget 链,实现了对系统调用的间接调用。项目还支持动态调用 WinAPI 和非 ROP/JOP 系统调用,并提供了 API 哈希功能以进一步隐藏调用。
尽管该库目前不稳定且存在限制(如仅支持 x64 和 Windows),但其理论和实现为恶意软件开发和安全研究提供了新的思路。
阅读:https://kirchware.com/Dynamic-Indirect-Syscalls-via-JOP-or-ROP-in-Rust
Orx-parallel:高性能、可配置的并行计算库
orx-parallel
是一个高性能、可配置的并行计算库,专注于通过迭代器方法组合定义的计算任务。
它通过 ParIter
特性实现并行计算,目标是让用户只需将 iter
替换为 par
,即可将顺序程序高效并行化。
该库支持多种并行化方式:直接并行化集合(如 Vec
和 VecDeque
)、将任意迭代器并行化,以及通过中间集合(如 Vec
)并行化其他集合。
它还提供了丰富的配置选项,如线程数和块大小,并通过锁无关的并发迭代器和线程安全容器实现高效的并行输入和输出。
根据其基准测试结果,比 rayon 快:
仓库:https://github.com/orxfun/orx-parallel
Reddit:https://www.reddit.com/r/rust/comments/1mapoqv/crates_you_should_know_orxparallel_as_faster/
Fast_assert:更快的断言宏,标准库中的 assert!
替代
fast_assert!
是一个为 Rust 编写的更快的断言宏,旨在替代标准库中的 assert!
。
它通过将断言失败时的处理逻辑(如格式化错误信息)推迟到标注为 #[cold]
的单独函数中,从而减少热代码路径中的指令数量。
与标准库的 assert!
相比,fast_assert!
在默认错误消息时仅增加两条指令,在自定义错误消息时增加三条指令,而标准库的 assert!
在默认错误消息时增加五条指令,在自定义错误消息时增加更多指令。这种优化减少了指令缓存压力,可能使编译器能够更积极地内联热函数。
该库的实现方式是通过闭包将所有参数格式化推迟到冷函数中,这与标准库的 assert!
在大多数情况下表现相同,但在某些边缘情况下可能会有所不同。因此,这种改进可能不适用于标准库,除非在新的语言版本中引入。
仓库:https://github.com/Shnatsel/fast_assert
Reddit:https://www.reddit.com/r/rust/comments/1mao817/announcing_fast_assert_its_assert_but_faster/
--
From 日报小组 苦瓜小仔
社区学习交流平台订阅:
评论区
写评论还没有评论