KeyObject结构中的Name信息

2010-11-26 Nie.Meining Debug

今天遇到个问题,需要从KeyObject结构中找出Name信息。
首先查看一下Key这种类型的Object对应的QueryNameProcedure:

0: kd> !object E1B90D70h

Object: e1b90d70 Type: (821ac858) Key

    ObjectHeader: e1b90d58 (old version)

    HandleCount: 1 PointerCount: 1

    Directory Object: 00000000 Name: \REGISTRY\USER\S-1-5-21-789336058-2146961391-682003330-1003

0: kd> dt _OBJECT_HEADER e1b90d58

阅读全文>>

评论(0) 浏览(24945)

输入法、词霸、超级卸载,继续娱乐

2010-11-5 Nie.Meining Debug

输入法、词霸、超级卸载,继续娱乐
上午看到输入法和词霸也不甘寂寞掺合进来凑热闹,很有意思:
http://tech.qq.com/a/20101105/000198.htm
刚刚又看到超级巡警出了这样一个东西,娱乐气息愈发浓厚了:
http://www.sucop.com/
“近日,我们接到众多网友投诉,一些产品无法进行干净卸载删除,应广大网友要求,我们推出通用软件卸载工具。目前第一版本仅支持360产品。”
下载下来看了看,一个驱动,一个dll,一个exe。把驱动拖进IDA简单看了看,功能很简单,在IOCTL里接收应用层传入的文件名,然后发IRP删文件。

阅读全文>>

评论(0) 浏览(23398)

劝架补丁,继续娱乐

2010-11-4 Nie.Meining Debug

突然发现人人网也来掺和了一把,出了个什么劝架补丁,下下来发现竟然有1.6M大,拖IDA里去看了看,其中用于“劝架”关键部分就这么两处,在QQ开始自残时触发:

.text:00401E74                 push    104h            ; nMaxCount

.text:00401E79                 lea     eax, [ebp+0F0h+String1]

.text:00401E7C                 push    eax             ; lpClassName

.text:00401E7D                 push    ebx             ; hWnd

.text:00401E7E                 call    ds:GetClassNameA

.text:00401E84                 push    offset String2 ; "#32770"

阅读全文>>

评论(0) 浏览(13239)

奇诺反病毒软件的几个漏洞

2010-9-4 Nie.Meining Debug

今天安装奇诺反病毒软件看了看,漏洞挺多的。
奇诺安装好后,会在安装目录下释放两个驱动:KillFile.sys和chenoepro.sys,一个是用来强行杀文件的(通过自己发IRP实现),一个是用来自我保护的(通过inline hook NtOpenProcess实现)。
先看看KillFile.sys驱动,该驱动的IRP_MJ_CREATE和IRP_MJ_CLOSE派遣例程如下:

push    ebp

mov     ebp, esp

mov     eax, [ebp+Irp]

mov     dword ptr [eax+18h], 0

阅读全文>>

评论(0) 浏览(13545)

PsRemoveLoadImageNotifyRoutine卡死

2010-9-2 Nie.Meining Debug

帮某同学调了个卡死问题,可能还有人也遇到过类似情况,干脆记录下来。
程序卡死在PsRemoveLoadImageNotifyRoutine处,但是问题实际上出在NotifyRoutine中,程序在NotifyRoutine中做了如下操作:

if (wcsstr(FullImageName->Buffer,L"NOTEPAD.EXE") != NULL) {

    KillProcess(ProcessId);    //ZwTerminateProcess实现

}

 

如果发现是记事本的映像,则结束进程。但是要知道,该回调函数正是运行在记事本的进程空间中的,所以KillProcess是在结束自己!当然KillProcess就不会返回,导致回调函数也不会返回。而PsRemoveLoadImageNotifyRoutine函数会等待回调函数都结束,然后把内存free掉,所以导致卡死。

阅读全文>>

评论(3) 浏览(15180)

Powered by emlog