利用Process Exploror清除Winlogon Notification Package顽固DLL

来源:互联网 发布:java collection代码 编辑:程序博客网 时间:2024/05/21 23:33

我的目标:为了禁用随Winlogon.exe的一个DLL,这个DLL占据了我电脑很长一段时间,而且删除相关的键值,会不断的重建。

   

 

     近日来,发现我的电脑有几个进程被启动了,当然不是我启动的,虽然我仍然能禁用它,但我并不想再被悄悄的启动,肯定是有后门搞的鬼。看到winlogon多了一个奇怪的DLL,所以知道以前我并没有清除干净(由于安装了某软件,所以我大概知道它的位置,可以利用Process Explorer查找DLL和字符串这个功能,比如DLL路径是D:/XXX/Dll1.dll, 可以直接输入D:/XXX/Dll1.dll,如果查找目标存在于目标进程Process Explorer会给出提示的)。经过查找特定字符串,了解到安装目录下的相关DLL注入到了Winlogon中了去了, Winlogon这个是系统关键进程,这一进程结束电脑就重启!网上找了许多资料发现了这个文章http://code.nb5.cn/it/sort072/sort074/info9269.html (注入Winlogon进程示例代码--注入,Winlogon,进程,示例,代码), 里面有句原话是【为了注册你的“Winlogon Notification Package”,必须在“HKEY_LOCAL_MACHINE/Software/Microsoft/Windows NT/CurrentVersion/Winlogon/Notify”下创建你的“notification package”子键。】 我在这个键下发现了我要禁用的DLL的痕迹, 我尝试删除整个相关notification package子键, 但我一删除它又重新创建,我想它监控了注册表,这么删除不是个办法。另找出路吧,那DLL所在的HKEY_LOCAL_MACHINE/Software/Microsoft/Windows NT/CurrentVersion/Winlogon/Notify注册表子键下它把Asynchronous设置为1, 也就是另开一个线程来处理【Asynchronous[REG_DWORD]:表明是否异步处理winlogon事件,如设为 1,winlogon将启动一个新线程来处理。】。通过这个启发,我想到了Process Explorer, 这软件很强大,因为它可以可以挂起(暂停)指定进程里头的线程, 通过它我找到了这个DLL所在的线程, 只要我暂停了这些线程, 我将可以删除DLL所在的键值,因为监控注册表也要线程来处理。这个DLL总共相关的线程有4个(微软就给它一个,估计后面它自己在所在进程里头又创建了3个),我每个都暂停它,然后我删除了DLL所在的键值, F5在刷新下注册表,终于没在出现了。 但我怕它又不小心复活了, 索性我在结束掉这4个线程,当时我认为系统会重启的,没想到居然没有任何事情发生。重启后,这个DLL就不在Winlogon中咯,因为它的键值被我删除了。随Winlogon启动的DLL是依赖于注册表的,只要能够删除相应注册表项,DLL就再也没办法随Winlogon启动了。

原创粉丝点击