S.l.e!ep.¢%

像打了激速一样,以四倍的速度运转,开心的工作
简单、开放、平等的公司文化;尊重个性、自由与个人价值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

玩玩360——ExitWindowsEx大法

Posted on 2010-01-13 21:42 S.l.e!ep.¢% 阅读(982) 评论(0)  编辑 收藏 引用 所属分类: RootKit
dplayer
级别:6 | 在线时长:69小时 | 升级还需:8小时 级别:6 | 在线时长:69小时 | 升级还需:8小时 级别:6 | 在线时长:69小时 | 升级还需:8小时

普通会员
普通会员

资 料:
注册日期: Apr 2008
帖子: 59dplayer 品行端正
精华: 1
现金: 268 Kx
1 旧 icon19 玩玩360——ExitWindowsEx大法
dplayer 当前离线 添加 dplayer 的声望 反映此帖

标 题: 玩玩360——ExitWindowsEx大法
作 者: dplayer
时 间: 2009-09-10,13:54
链 接: http://bbs.pediy.com/showthread.php?t=97539

现在流行R3,对R0里的东西大伙都不太感兴趣了,俺来放个R3暴力结束进程的代码,看雪里貌似有个类似的bin,不管它,玩玩而已-_-
     先来看下Windows XP的关机流程:   
     1、当Windows XP用户发起关机指令以后,发起关机指令的执行程序会调用系统函数库 user32.dll中的 ExitWindowsEx 函数,此函数向XP系统进程 Csrss.exe 发出关机信息,Csrss.exe立即再把信息传递给隐含的Winlogon.exe窗口。     
     2、Winlogon.exe接到前面Csrss.exe传来的信息后,Winlogon.exe开始检查请求者的权限,预先做好准备,并给ExitWindowsEx发回准备就绪信号。Csrss.exe收到Winlogon.EXE的通知以后,会依次查询拥有顶层窗口的用户进程,让这些用户退出进程。如果某一个用户进程在一个默认的延时时间5000毫秒内没有退出的话,Windows XP会显示一个结束任务的对话框用于询问用户是否结束这个任务。默认情况下将显示这个对话框并一直保持而不会自动关闭。
  3、此时Winlogon.exe将再次调用ExitWindowsEx函数来关闭系统进程。(这些系统进程包括SMSS.EXE、Winlogon.EXE、Lsass.EXE等)。Windows在终止系统进程的时候并不像终止用户进程那样:进程无法在规定时间内终止,则提示用户。而是跳过这个进程,去执行下一个系统进程的终止操作。在这个时间段里面,Windows XP会执行子系统来完成最后的关机操作。
   4、 当准备工作全部完成后,Smss.exe命令释放所有系统资源,最后Smss.exe调用NtShutdownSystem函数,等除了电源管理以后的全部子系统完成退出以后,电源管理完成最后的操作:重启或关机。
    了解了Windows XP的关机流程以后,偶们很容易利用Windows窗口消息机制,实现ExitWindowsEx伪关机操作,结束顽固窗口进程。代码完成后,初略试验了一下,V5.2版360和保险箱是无声无息的消失了^-^..微点、卡巴、金山、瑞星之类的杀软窗口进程也可以结束掉,主防成了睁眼瞎,加载驱动,不再有摭拦,很好玩啊。呵呵。。。。
   关于WM_QUERYENDSESSION,MSDN上有明确的讲解,摘录如下,
The WM_QUERYENDSESSION message is sent when the user chooses to end the session or when an application calls the ExitWindows function. If any application returns zero, the session is not ended. The system stops sending      WM_QUERYENDSESSION messages as soon as one application returns zero. 
After processing this message, the system sends the WM_ENDSESSION message with the wParam parameter set to the results of the WM_QUERYENDSESSION message. 
WM_QUERYENDSESSION 
nSource = (UINT) wParam;    // source of end-session request 
fLogOff = lParam            // logoff flag 
 
Parameters
nSource 
Reserved for future use. 
fLogOff 
Value of lParam. Indicates whether the user is logging off or shutting down the system. Supported values include: ENDSESSION_LOGOFF. 
Return Values
If an application can terminate conveniently, it should return TRUE; otherwise, it should return FALSE. 
Remarks
By default, the DefWindowProc function returns TRUE for this message

代码放后面了,大家共同交流学习。祝大家节日快乐,每天都有毒杀-_-

上传的附件
文件类型: rar Kill360 Bin.rar (28.0 KB, 290 次下载) [谁下载?]
文件类型: rar kill360 Src.rar (218.2 KB, 538 次下载) [谁下载?]
回复时引用此帖 多重引用本帖 快速回复此帖 返回顶端
hmilywen
级别:16 | 在线时长:354小时 | 升级还需:3小时

初级会员
初级会员

资 料:
注册日期: Apr 2007
帖子: 270hmilywen 品行端正
精华: 0
现金: 305 Kx
2 旧 2009-09-10, 14:03 默认
hmilywen 当前离线 添加 hmilywen 的声望 反映此帖

这种方法在新版360中失效了吧~

回复时引用此帖 多重引用本帖 快速回复此帖 返回顶端
qihoocom
级别:19 | 在线时长:440小时 | 升级还需:40小时 级别:19 | 在线时长:440小时 | 升级还需:40小时 级别:19 | 在线时长:440小时 | 升级还需:40小时 级别:19 | 在线时长:440小时 | 升级还需:40小时

中级会员
中级会员

资 料:
注册日期: Feb 2008
帖子: 1,011qihoocom 品行端正
精华: 8
现金: 362 Kx
3 旧 2009-09-10, 14:10 默认
qihoocom 当前在线 添加 qihoocom 的声望 反映此帖

楼主的方法很****~用这种方法,只需要对方做一下防护,楼主的程序就自杀了

另外这个N久之前就有人发过了

做防护也很简单,只需要一行代码:
SetProcessShutdownParameters(0 , 0 );

此帖于 2009-09-11 09:12 被 kanxue 最后编辑 原因: 请注意言行举止,不要让大家觉得不适

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理