欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

俺来看个KernelExec.sys-->KernelExec.idb

俺来看个KernelExec.sys-->KernelExec.idb

嘿嘿,IDA初学 ,俺在CodeProject上下了份从内核启动一个R3程序的例子.想学下逆向,于是直接拿IDA看了下这个sys:KernelExec.sys,注释了一下,终于明白了这个驱动的作用啦:
从内核启动一个R3程序.大致是遍历EPROCESS找到explorer.exe, 在其中找到一个alertable的线程,插个用户APC. 这个用户APC就是简单调用WinExec去执行一个指定的程序, 期间要在内核中attach到explorer.exe进程中,为My_Func分配一个MDL,然后映射到explorer.exe的虚拟进程空间中.返回时APC就可以执行啦.
不过这个sys好像有点儿毛病, 它简单的设置ApcState.UserApcPending = TRUE, 好像不调用KeForceResumeThread的话APC不会执行,俺电脑上一直就没有出效果o(*.*)O
哈哈,原来逆向蛮好玩儿的(俺还没还原成C代码,不算逆向 ).
btw: 好像真正的在内核中启动一个R3程序,MS是要拦截掉_KiSystemService,在里面jmp到我们指定的代码处,一般是找kernel32.dll的空隙插, 找到CreateProcessA的地址,弄到kernel32.dll在内存中的空隙里, 然后再XXX就产生了一个R3程序.... 嘿嘿,学习学习 ~~

上传的附件 KernelExec_idb.rar [解压密码:pediy]

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功