首页
社区
课程
招聘
[原创]The simplest Windows driver written in rust
2023-6-26 11:18 13212

[原创]The simplest Windows driver written in rust

2023-6-26 11:18
13212

WinDrv

Study rust in Windows kernel mode driver


建立本仓库的目的:
1.学习rust在Windows驱动编程上的应用。
2.WDK里的数据结构和函数原型是以C/CPP语言提供的,尽管有win32metadata和windows-rs,wdkmetadata这些仓库,但是还不熟悉和完善。
3.所以此仓库不涉及routine/api及相关sdk里的结构的使用,即使使用,也不是重点,是辅助。
4.所以,这个仓库是rust的基本用法,如:字符串等。
5.当然,这也为ida分析rust写的sys提供了条件。


摘自:https://users.rust-lang.org/t/win32-no-std-no-main-no-libc/30038/2

编译命令:cargo build

注意:编译出的文件是DLL,后缀改为SYS即可。

编译驱动这么简单。

13:57 2022/12/30


windbg调试截图:
本地路径

ida的分析截图:
本地路径
注释:默认情况下ida会忽略显示一些函数,如:系统,库,编译器等的特殊函数。


联系作者:
https://twitter.com/112426112Correy
https://github.com/kouzhudong

参考信息:
https://not-matthias.github.io/posts/kernel-driver-with-rust/ 需要:cargo install cargo-xbuild
https://codentium.com/guides/windows-dev/windows-drivers-in-rust-hello-world/ 需要:cargo install --force cargo-make,且对系统依赖严重,而且还nightly

微软的WDK相关的rust:
https://github.com/microsoft/win32metadata
https://github.com/microsoft/windows-rs
https://github.com/microsoft/wdkmetadata


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

最后于 2023-6-26 11:27 被correy编辑 ,原因: 还得特别的添加附件。
上传的附件:
收藏
点赞0
打赏
分享
最新回复 (3)
雪    币: 1138
活跃值: (2586)
能力值: ( LV12,RANK:385 )
在线值:
发帖
回帖
粉丝
correy 4 2023-6-26 11:23
2
0
竟然支持zip里的md文件。
但是有的空行没显示。
也没看到zip文件,还要再次上传zip文件吗?
雪    币: 2932
活跃值: (2577)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
小调调 2023-6-26 14:54
3
0
SDK支持了嘛,正犯愁呢
雪    币: 1138
活跃值: (2586)
能力值: ( LV12,RANK:385 )
在线值:
发帖
回帖
粉丝
correy 4 2023-9-25 17:42
4
0
https://github.com/microsoft/windows-drivers-rs
https://github.com/microsoft/Windows-rust-driver-samples
游客
登录 | 注册 方可回帖
返回