发新话题
打印

[原创]俺来看个KernelExec.sys-->KernelExec.idb

[原创]俺来看个KernelExec.sys-->KernelExec.idb

文章作者:sudami [xiao_rui_119@163.com]
信息来源:邪恶八进制信息安全团队(www.eviloctal.com

嘿嘿,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程序.... 嘿嘿,学习学习 ~~


[ 本帖最后由 sudami 于 2008-2-6 19:22 编辑 ]

附件

KernelExec_idb.rar (27.45 KB)

2008-2-6 19:22, 下载次数: 81

WINDOWS内核疯狂爱好者

TOP

发新话题