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

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

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

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

......

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

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

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

...

VC程序查错之内存访问异常

作者:langouster

先来看下面这张图,相信很多程序员都见过类似。

---------------------------
test1.exe - 应用程序错误
---------------------------
"0x00401002" 指令引用的 "0x00000000" 内存。该内存不能为 "written"。

要终止程序,请单击“确定”。
要调试程序,请单击“取消”。
---------------------------
确定   取消  
---------------------------

...

VC程序查错之序言

作者:langouster

一直准备写一个关于C、C++程序调错的专题,这个专题面向的主要人群是程序开发人员,从今天开始争取每周写一点,把我所知的一些小东西和大家分享分享。

一。工具准备,我常用的工具有:

VS2005是我用的最多的开发工具,他的强大的调试分析能力注定会成为我们调试程序的首选。

Windbg是微软出的专门的调试器,功能非常强大,支持应用程序与双机驱动调试,但它的界面实在是太简略。

IDA是一款强大的二进制反汇编与分析工具,其中的F5插件支持直接把exe文件反编译成C语言。

...

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;

...

VC向网页注入脚本

IHTMLDocument2 *pDoc2

......

IHTMLWindow2 *pWindow;
HRESULT hr=pDoc2->get_parentWindow(&pWindow);
VARIANT ret;
ret.vt=VT_EMPTY;
CComBSTR func="alert(document.cookie)";
CComBSTR lang="JAVAScript";
hr=pWindow->execScript(func,lang,&ret);

...

IE卫士正式版 规划

IE V2.0测试版已经发布近一年,在这一年里我迟迟没有发布正式版,不是因为我懒。而是因为当初能做到的都已经在测试版中做到了,而且发布后也没什么大的BUG,所以就没有再发布正式版,测试版实际上就相当于正式版了。

这段时间想到了一个以前一直没能解决的问题的解决方案,所以决定升下级,下一版本暂定版本号V2.1。并将增加或增强如下功能:

一。IE卫士所有的防护都是依赖于HOOK的,但在过年的一年中已经有少量“牛人”通过复杂的shellcode实现了钩子的恢复,以前一直没能解决反恢复功能,最近想到了解决办法,在下一版本中将体现。

...

发一个进程监控

发了一个很久前写的进程监控软件,SSDT HOOK技术,先运行install.bat,然后就可以运行ProcessMon.exe了。

欢迎反馈BUG。

下载: procmon.rar

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

Powered By Z-Blog 2.0 bate Build Theme by toboku

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