系统监控软件,如何做到在win98和win2000(重点)下隐藏进程?(50分)

憔悴

Unregistered / Unconfirmed
GUEST, unregistred user!
急盼高人指点!!<br>谢谢了!
 
做成vxd或dll
 
[8D]在2000下是不可能的
 
function RegisterServiceProcess(dwProcessID, dwType: Integer):Integer; stdcall; <br>external 'KERNEL32.DLL';<br>procedure TFuchfm.FormCreate(Sender: TObject);<br>begin<br>&nbsp; RegisterServiceProcess(GetCurrentProcessID,1);<br>end;<br><br>在98下可以,但在2000好像不行
 
to sun77wind<br>&nbsp;Vxd就不用考虑了,用Dll怎么样实现呢??
 
你个老大呀,这个问题都泛了滥了,到<br>http://groups.google.com/groups?hl=zh-CN&amp;group=borland.public.delphi<br>搜索<br>"Disable ctrl del alt"<br><br>有一堆!基本是一个意思,不太可能!!就算可以,也太麻烦,兼容性也成问题!!!<br>
 
到Microsoft 新闻组也可以搜索一下,也有几个解决方案来者,不过我都没有试过<br>http://groups.google.com/groups?oi=djq&amp;as_ugroup=microsoft.public.win32.programmer.kernel
 
你在formshow的事件里面加上<br>&nbsp; ShowWindow(Application.Handle, SW_Hide); //隐藏窗口句柄<br>但是进程里面还是有的.(不知道对你有不有帮助)<br>
 
2000下好像不行
 
有人这么写:<br>××××××××××××××××××××××××××××××××××××××<br>&nbsp; 利用windows的一个*.dll御截漏洞,可以实现在win9x,nt,w2k下进程的深度隐藏,<br>按CTRL+ALT+DEL看不到,用终极防线也看不到,这是我的最新发现,想和大家一起讨论,<br>呵呵,各位兄弟,配合我的Delphi源码,讲一下它的工作原理吧,不过大家不要用来<br>做坏事哟,我可是从不黑人的,谁让我是人民教师哟,原理如下:<br>我编了个启动程序winexec.exe用它来启动install.dll这个安装库,install.dll中有<br>个安装函数用来启动getkey.dll这个执行库,getkey.dll里面有我的木马程序,这个<br>getkey.dll库被挂到explorer.exe的进空间中,然后winexec.exe和install.dll在内<br>存中自动御载,但是getkey.dll仍在内存中运行(这就是*.dll的御载漏洞),因为这时<br>系统中已没有我的winexec.exe存在,所以按CTRL+ALT+DEL查不到有我的进程在运行,<br>这就是进程三级跳.<br>呵呵,可是,大家知道getkey.dll是如何被挂到explorer.exe这个系统shell进程的地<br>址空间中吗,请听我慢慢道来:<br>在windows系统中,要进入另一个进程的空间有很多方法,最标准的方法是微软提供的<br>系统级hook功能,大家知道当一个hook放入*.dll中时会成会系统级hook,这是它能收<br>到所以系统中传输的消息,而且若消息是其它进程的线程发出或接收的,那么该*.dll<br>(就是我程序中的install.dll啦)会被强行映射到该进程的地址空间(比如说我的<br>install.dll被映射到explorer.exe的进程空间中),这时install.dll就成了explorer.exe<br>进程的一个调用模块,这时在install.dll用createthread函数创建的线程会成为<br>explorer.exe进程主线程的子线程,这样我们就在explorer.exe的家中暂时有了一块合法<br>的土地,但这只是开始,因为我们的目标是隐藏自已的进程,所以要把winexec.exe在内<br>存中去掉,但这不是我们想要的结果,大家想想,install.dll是由winexec.exe调用的,<br>所以,当winexec.exe死掉后,install.dll也活不成,我们在explorer.exe中占下的一席<br>之地就又没了,那如何办呢,呵呵,听我慢慢讲来:<br>上面我们说了,当install.dll在explorer.exe中安家后,我们创建的线程就是<br>explorer.exe的子线程,那么由install.dll中调用的*.dll(就是我们程序中的getkey.dll)<br>也会成为explorer.exe的子模块,根据*.dll的特殊性(就是我认为的*.dll的御载漏洞)<br>,在install.dll从内存中御掉后,被它调用的getkey.dll还在内存中好好的活着呢,呵呵<br>,微软真是个好宝宝,为我们提供了这么好的驻留内存的机会,我想之所以这样,是因为<br>*.dll不可以成为另一个*.dll的拥有者,只有*.exe才能成为*.dll的拥有者吧,所以<br>explorer.exe就成了getkey.dll的合法拥有者,呵呵,因为explorer.exe是微软的好东东<br>,所以永远在内存中活着,那我们的好战士getkey.dll当然靠着这棵大树也在内存中活的<br>好好的哟,这样我们可爱的getkey.dll就永远安全地在explorer.exe中安了家,呵呵,<br>我们终于可以过河拆桥了,不要说我坏呀,我不要这么做,可不这样的话我的<br>winexec.exe这会被人发现了呀,好可怜哟,这是你在getkey.dll中发出<br>postmessage(findwindow('winexec',nil),wm_destroy,0,0)指令,就会让讨厌的<br>winexec.exe(不对,是可爱的,只不过你的任务完成了,没有了哟,呵呵)从内存中死掉<br>,当然它的好儿子install.dll也会随父而去,但我们可爱的getkey.dll确好好的活在内存<br>中(啊啊,这是为什么呀,gekey.dll的爷爷winexec.exe都死了,它的孙子getkey.dll为何<br>不死呀,呵呵,别忘了哟,getkey.dll的继父explorer.exe很有本事哟,它把它保护的<br>好好的哟,所以死不了的啦),呵呵,明白了吗,这时的内存中已经没有了winexec.exe和<br>install.dll的身影,只有getkey.dll存在,而且是explorer.exe的一个调用模块,当然用<br>CTRL+ALT+DEL只能看到好人explorer.exe,而winexec.exe送给它的坏儿子是看不到了啦,<br>呵呵,如果你用prcview或用spy++,winsight包括各种深度查木马程序(如终极防线)查<br>的话,你只能看到getkey.dll在内存中,但调用者是explorer.exe(这是比尔的好孩子哟<br>,没人怀疑它做坏事吧,呵呵),所以就没人理这个getkey.dll这个坏孩子啦,呵呵,若<br>实在有高手认为它可疑,那好吧,我们加工加工,把getkey.dll的名字改成winsock.dll,<br>然后放在和windows中自带的winsock不同的目录中,呵呵没人怀疑这个文件吧,当然把<br>getkey.dll的版权信息改成是微软的更好啦,呀呀,比尔你不要生气呀,谁叫你这么坏<br>哪,呵呵,我走了..............<br>××××××××××××××××××××××××××××××××××<br>但是我用他的程序好像(是好像)还是达不到这个效果。各位认为这个可行吗?
 
2000做不到
 
马飞涛同志(护花使者的作者)在win2000实现了进程隐藏,<br>--“转了4道弯,用了3个动态连接库”。但是不公开啊。
 
应该可行,我也看过类似的文章,是在2K下用的.也是符加在其它进程中,好象得用<br>createremoteprocess 这类东西
 
http://groups.google.com/groups?q=hide+process&amp;hl=zh-CN&amp;rnum=1&amp;selm=8fe9ua%247ua%241%40bob.news.rcn.net
 
其实完全有办法的,我大致描述一下原理:<br>编写一个动态连接库,在库的初始化代码(即加载时),你创建一个线程,这个线程就是<br>作为系统不可见的线程的.<br>那么现在你只要将这个动态链接库注入到某个系统中现存的某一个进程, 让这个<br>进程来加载你动态链接库,这样就好了.<br>至于怎样注入的问题,你可以参考Windows高级变成指南,在最后几章有详细描述.<br>如果你真有兴趣,请给我写信吧,我有时间把这个代码写出来.
 
Win2000:I have Delphi CODE.
 
2000也可以隐藏嘛?我一直在研究可是实在是才疏学浅,高手请指点。<br>powergameboy@sina.com
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
顶部