|
|
win2000/xp/2003下不能关闭程序的方法 |
|
|
作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站 |
只针对2000以上系统,9X的就别问我了,4年没搞了:) 一般有4种方法: 1)DLL挂靠方法 程序改写为DLL结构,挂靠Explorer.exe上运行 好处:没进程实体,普通进程查看无效 缺点:可以通过代码叫Explorer.exe Unload你的Dll,呵呵,还有Explorer出错时,会重新启用,那个时候需要重新挂靠你的DLL 改进:用Debug权限挂靠WinLogon.exe,哈哈,安全系数就高很多,WinLogon死了,你也就死机了 LYSoft主页的http://ly.activepower.net/projects/No Ctrl+Alt+Del.rar是DLL挂靠方法的例子,修改就可用 2)API Hook方法 关闭程序的实质是什么?TerminateProcess的API! 只要你的Application.Title:=‘’就不会出现在任务管理器的第一页 第二页会出现的,但不怕,我Hook了TerminateProcess就可以保证安全了 TerminateProcess可以Hook?可以,但Hook了没用,Handle是未知的 因此实质上要Hook的是OpenProcess,只要是我的进程就拒绝打开 好处:不怕你见的到,你就是关不了我 缺点:CMD下的命令行方法Hook不到 改进:能够Hook系统服务就一定可以,可惜难度大,需要编写驱动 LYSoft主页的http://ly.activepower.net/projects/API Hook.rar是API Hook方法的例子,修改就可用 3)NT内核修改方法 修改NT系统内核对象PsLoadedModuleList上的ActiveProcessLink链表就可以在系统上“失踪”了,但实现这个功能需要驱动支持,没驱动的方法只能适合XP/2003,因为Nt5.1以上的ZwSystemDebugControl API才能支持内核访问 好处:你怎么都见不到进程的 缺点:难度过大,用内核工具仍然可以看见的,很多RootKit木马就用这个方法的 改进:几乎是终极大法,没什么别的好方法了。 LYSoft主页的http://ly.activepower.net/projects/NTLowLevel.exe是演示程序 关键代码如下 function HideProcess: boolean; label Err; var EProcess : DWord; hPM, FLink, BLink: Cardinal; begin Result := false; EProcess := GetCurrentEProcess; if EProcess < 1 then Exit; if not ReadVirtualMemory(EProcess+$88, @FLink, 4) then Exit; if not ReadVirtualMemory(EProcess+$8C, @BLink, 4) then Exit; if not WriteVirtualMemory(FLink+4, @BLink, 4) then Exit; if not WriteVirtualMemory(BLink, @FLink, 4) then Exit; Result := true; end; 不要问为什么了,你需要NTDDK的知识才能明白的:) 4)远程线程方法 没有实体的存在,没进程,没DLL,只有代码 把代码直接注入进程空间VirtualAllocEx,用CreateRemoteThread运行, 好处:没可见的实体,隐蔽性最强 缺点:适合于简单代码,复杂的难以保证其可靠性和稳定性,病毒的最爱 改进:不需要什么了 这个没演示了,呵呵:) 注入某个进程空间,要涉及到API定位等一系列病毒式操作,在对方的身体运行呀 简单的代码可以,复杂的功能就很不适合,一般的程序根本就不适合,所以除非写病毒,否则不建议用这样的方法,因为连调试都变得很难 LYSoft http://lysoft.7u7.net
|
|
相关文章:相关软件: |
|