POOL驱动不能处理异常的解决方法

相信越来越多的人都喜欢把驱动代码放到Pool里执行,但由此会产生一个问题,在Pool里的驱动代码是不能出异常的,所有的异常处理都会失效,在有些我们不得不使用异常,如操作Ring3内存,这时我们就必须解决掉这个问题。

X86和x64在异常处理上稍有一些不同,先来看x86上的异常处理。

系统捕获到异常后会执行到函数RtlDispatchException,函数RtlDispatchException再调用RtlLookupFunctionEntry,RtlLookupFunctionEntry函数再调用RtlLookupFunctionTable。RtlLookupFunctionTable这个函数的作用是在PsLoadedModuleList链在根据异常的EIP地址找到发生异常的模块。由于Pool里执行的代码不属于任何一个模块,这个函数就会返回失败,异常处理就会失去作用,产生一个蓝屏。

......

ObRegisterCallbacks返回0xC0000022(拒绝访问)解决方案

ObRegisterCallbacks这个函数是在Vista sp1之后的版本中添加的,可用来监控系统中对进线程句柄的操作,如打开进程、复制线程句柄等。

但是使用这个函数对驱动有特殊的要求,必须使用特殊的签名才行!否则这个函数会返回0xC0000022(拒绝访问),逆向此函数可以看到以下是有关是否加签名的判断:

...

Ring0上调用未导出Zw函数通用函数

前段时间写的一段无聊代码,可能对大家有点用。用于在驱动里调用一些没有直接导出的Zw函数,如ZwProtectVirtualMemory。在此感谢alpha提供思路。

BOOLEAN CallZwFunction(CONST CHAR *FunctionName,PVOID pCallRet,ULONG ArgNum,...)
{
 char *vl;
 BOOLEAN retval = FALSE;
 ULONG FunctionIndex;
 ULONG CallRet;
 ULONG Argv[20],temp;
 LONG i;
 ULONG FunctionAddr;
 BYTE Sign[]="\xb8\x44\x00\x00\x00";
 BYTE *p;

...

进程创建过程 关键函数执行顺序

监控下一个进程的创建过程,关键函数的执行先后关系如下:

XP sp3下:

1.NtCreateProcessEx

2.NtCreateThread

3.CreateProcessNotify,调用创建进程回调函数,在PspCreateThread中调用

4.CreateThreadNotify,调用创建线程回调函数,在PspCreateThread中调用

Vista、Win7下:

1.NtCreateUserProcess->PspInsertThread

...

双向链表的添加、查找、删除算法

前段时间看一个很早前写的驱动,发现对双向链表的操作还有BUG,删除时会蓝屏,修正了一下,把修正后的代码贴出来,方便日后使用前直接复制,大牛不用看了。

 
 
typedef struct _FILELIST
{
     LIST_ENTRY ListEntry;
...

利用0day在win7下从user权限提升到system权限演示

此演示完成user权限下以system权限运行指定程序,利用的是前几篇文章说的那个系统驱动的溢出漏洞。

利用成功后可看到Services.exe以system权限运行了C:\Users\test\Desktop\1.exe。

编写不影响继续执行的栈溢出shellcode,拒绝不返回,拒绝崩溃

上次说的溢出0day的shellcode终于写完了,开始遇到了不少困难,但都一一解决了。

一开始,像大多数其它溢出那样,执行完shellcode后就sleep等死,可是这里不行,在进入有漏洞的函数前,系统占了一个锁,如果等死了,整个系统也立马卡死。函数调用是像下面这样的:

call func2()
{
    getlocker();
    bugfunc();//存在溢出的函数
...

驱动枚举所有快捷键

在win32k中存在一个单向链表,这个链表中保存着当前子系统下的所有快捷键,保存这个单向链表的头的全局变量为_gphkFirst,这个全局变量在_RegisterHotKey、IsHotKey等函数中有使用。

下面是我在xp下逆向分析出的这个链表的结构:

typedef struct _HOTKEY
{
    PVOID Win32Thread;
    ULONG gptiCurrent;
...

分页:[«]1[2][3][»]

Powered By Z-Blog 2.0 bate Build Theme by toboku

Copyright langouster. Some Rights Reserved.   苏ICP备06046736号