内容简介:对于研究人员来说,今天介绍的这款工具就相当于他们的“瑞士军刀”,因为这款名叫R0ak的命令行工具可以帮助研究人员在Windows 10操作系统上读取、写入和执行任意代码,用于进一步测试。r0ak是一款Windows平台下的命令行工具,它可以帮助我们在命令行界面下轻松读取、写入和执行内核模式代码,而且除了管理员权限之外,不需要其他额外的东西。
对于研究人员来说,今天介绍的这款 工具 就相当于他们的“瑞士军刀”,因为这款名叫R0ak的命令行工具可以帮助研究人员在Windows 10操作系统上读取、写入和执行任意代码,用于进一步测试。
r0ak
r0ak是一款Windows平台下的命令行工具,它可以帮助我们在命令行界面下轻松读取、写入和执行内核模式代码,而且除了管理员权限之外,不需要其他额外的东西。
快速使用
r0akv1.0.0 — Ring 0 Army Knife
http://www.github.com/ionescu007/r0ak
Copyright(c) 2018 Alex Ionescu [@aionescu]
http://www.windows-internals.com
USAGE:r0ak.exe
[--execute <Address |module.ext!function> <Argument>]
[--write <Address | module.ext!function><Value>]
[--read <Address | module.ext!function><Size>]
基础架构:
支持的命令
在使用–execute选项时,这个功能和参数由用户提供。
在使用–write时,需要使用一个自定义小公举来修改内核内存中任意位置的32字节值。
在使用–read时,需要使用一个写入小公举来修改系统中HSTI缓冲区指针和大小。
接下来,需要使用HSTI查询API来将数据重新拷贝至工具的用户模式地址空间内。
工具使用
由于工具需要使用到Windows符号引擎,所以我们需要安装Windows软件开发套件(SDK)或Windows驱动套件(WDK),以及Windows调试工具。工具安装完成后会自动查询安装路径,并使用目录中的DbgHelp.dll和SymSrv.dll,由于这些文件是无法多次使用的,因此工具中无法内置这些文件。
或者说,如果你想使用你自己的代码库,你也可以修改工具的源代码。
在使用符号时,需要联网,除非你在本地预先缓存好数据。除此之外,你还需要设置_NT_SYMBOL_PATH变量,并指向正确的符号服务器和缓存地址。
工具限制
本工具需要使用正确的Windows 10内核变量以及函数功能,并且只能在64位操作系统上使用。虽然在x86架构的操作系统上没有这些限制,但是这种平台有很多传统的方法可以使用,因此这款工具主要针对的是64位的的Windows 10。
限制条件:
1. 读取:一次只能读取4GB数据; 2. 写入:一次只能写入32位长度的数据; 3. 执行:函数的执行只能接收1个标量参数;
很明显,我们可以利用其它的编程手段或方法来绕过这些限制。需要注意的是,所有的命令执行(包括读取和写入命令)都需要在一个系统Worker线程(PASSIVE_LEVEL)环境下运行,因此用户模式地址不应该以参数进行传递。
* 参考来源: r0ak ,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM
以上所述就是小编给大家介绍的《R0Ak:一款针对Windows 10的内核模式代码读取、写入和执行的测试工具》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
21天学通C语言
(美国)琼斯(Bradley L.Jones) (美国)埃特肯(Peter Aitken) / 信达工作室 / 人民邮电出版社 / 2012-8 / 69.00元
《21天学通C语言(第6版•修订版)》是初学者学习C语言的经典教程。本版按最新的标准(ISO∕IEC:9899-1999),以循序渐进的方式介绍了C语言编程方面知识,并提供了丰富的实例和大量的练习。通过学习实例,并将所学的知识用于完成练习,读者将逐步了解、熟悉并精通C语言。《21天学通C语言(第6版•修订版)》包括四周的课程。第一周的课程介绍了C语言程序的基本元素,包括变量、常量、语句、表达式、函......一起来看看 《21天学通C语言》 这本书的介绍吧!