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

作者:langouster

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

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

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

...

VC程序查错之序言

作者:langouster

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

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

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

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

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

...

文件过滤驱动要小心分配内存

最近拿到一个DUMP,是个栈溢出蓝屏,罪魁祸首是一个文件过滤驱动,这个文件过滤驱动的过滤例程使用ExAllocatePool分配了一个可分页内存,这个行为看似非常正常与普通,却容易造成蓝屏。

原因如下:

文件过滤驱动申请可分页内存时,系统可能内存不足,使的这块内存从虚拟内存中分配,这就要操作虚拟内存文件PageFile.sys,
这个文件操作再次被文件过滤驱动监控到,并再次申请一块内存,造成重入,驱动栈内存使用光时就蓝了。。。。
 

...

正规软件带rootkit模块后果很严重

一不小心从某软件里看到一个强大的dll与强大的sys,直接上图看dll的导出函数:

看到了吗,可以直接调一下就隐藏进程。

由于这个软件的使用范围还非常的广,所有这两个文件基本已被杀软白名单放过,上传到virustotal上看看:

sys文件:     结果: 1/41 (2.44%)

...

IceSword1.22的一个小BUG

前几天收到一个蓝屏DUMP文件,运行我们的XX,然后运行IceSword必蓝,由此发现了一个IceSword的BUG。由于此BUG的存在,在安装有卡巴2010的机器上运行IceSword有很大的可能蓝屏。

IceSword在启动时会检查SSDT中的NtDeviceIoControlFile有没有被Hook,如果被Hook过就首先将它恢复,但是在恢复此SSDT项时没有关写保护中断,引起ATTEMPTED_WRITE_TO_READONLY_MEMORY蓝屏。

存在问题的代码如下:

......

绕过360安全卫士写自启动项 能自启动

360安全卫士是通过轮询比较当前自启动项与先前保存的自启动项的差别来检测自启动项的增加的,一段的方法绕过它可能不是那么容易。

下面贴段代码,可以绕过360安全卫士写自启动项。

源程序:

分页:[«]1[»]

Powered By Z-Blog 2.0 bate Build Theme by toboku

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