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

showwindowasync(application.Handle,sw_hide);可以把应用程序在win2000下隐藏。
 
To huiyugan:<br>&nbsp; 怎么也找不到你的email地址,只能这样和你联系了,八成你也能收到邮件。<br>是的,是的,我需要你的源代码,怎样注入的问题我由于没有你说的这本书,<br>所以请你在源代码中多加点注释,呵呵,最好是中文的,先谢谢了
 
忘了,我的邮件地址是:<br>a--fei@263.net
 
有人用VC作了一个.<br>不过这样生成的线程可以被杀掉, (如果知道哪个线程是你生成的话)<br>象护花使者据说使看不到的.我还不清楚他是怎样作出来的,<br>估计是要修改系统的PDB, TCB等等吧,2000的PDB结构不是很清楚.<br>我仔细看了一下你上面的一篇长帖子,原理差不多了,只不过注入的方法不同而已.<br>它是用Hook, 而这种方法是利用切换线程的上下文,就是你先获得explorer的<br>某个子线程,然后挂起它,在该子进程的地址空间分配一段可执行的内存,<br>然后在此写入你的代码(可能你还要分配放数据的),<br>在这里你可以生成一个子线程了.这个子进程就变成了一个信任进程的子线程了.<br>你可以在这里作很多事情啦, <br>修改它的上下文,指向你自己的上面分配的代码的内存.<br>接着执行你的代码了,在你的代码结束之前,你应当恢复你挂起的子进程.<br>在google的group中,有win32,的kernel的讨论区,好好看看吧.<br>我给你发这段别人写的VC的代码吧. delphi的代码我正在写吧.
 
其实呢,呵呵,护花使者也好像是使用这样的技术,<br>并且,护花使者的主线程的父进程也是Explorer.exe, 各位不信的话<br>可以down一个看看了, 运行护花后, 然后杀掉Explorer.exe, 如果这个时候<br>系统不自动生成explorer的一个新的进程的话, 你就自己开一个吧,<br>然后再看看你有没有能力删除护花生成的一些图象文件? 呵呵,一切都这样吧<br>所以要想彻底的隐藏自己也许要把自己作为系统进程的子线程,这样<br>也许差不多. 其实真正要做到线程隐藏呢,真的是有点...<br>系统总是要调度呢的线程的, 所以, 别人想想办法总是能够看到你的线程<br>如果别人能够获得对你的线程一定的控制权限,想杀掉总是有办法的.
 
今天又看到了护花使者的2.0版本<br>加入了保护狗的概念,当你把护花用其他的东西杀了以后<br>保护狗立即再启动护花, 使护花复活了,这个保护狗保证了<br>护花一直存活<br>其实这个保护狗还是...,呵呵,不说吧,免得这个软件的作者<br>说我...
 
怎样在win启动时,它也启动呢?不放在注册表或INI文件里面,这样很简单就可以去掉,<br>再怎么深度隐藏就没有什么用。
 
如果你的进程和系统进程绑在一起,谁敢KILL? 除非不玩了!
 
对,所以说要把你的进程绑定到系统进程上,不如winlogon啦,这样,如果杀了它<br>你的机器就玩完了,重起,^_^<br>不过要把进程绑定到系统进程上,嘿嘿,有点难度啊。
 
To huiyugan:<br>&nbsp; 能否提供一点思路。
 
写成驱动,最杀你,你就自杀
 
To Ironhero :<br>&nbsp; &nbsp; 偶也在想怎样绑定到系统的进程,如果能搞清楚系统的进程表结构,应该很easy了。<br>&nbsp; &nbsp; 一般的进程很好搞定。<br>&nbsp; &nbsp; 98下也很好搞定<br><br>To DDK : 你一定是一个驱动大师 ^_^
 
大家来看一看,值得一看。<br><br>使用方法,运行AddShell.exe就可以了<br><br>&nbsp; &nbsp; &nbsp;Explorer.exe补丁机 for &lt;95 OSR2/98 SE/2000 Professional&gt;<br>本程序以一种全新的方法让系统来自动启动你的控制程序,从此你不再需要修<br>改注册表,或其它配置文件来启动你的程序了,你还可以将你的程序隐藏起来<br>任何查进程方法都查不到他的存在,因为你的程序已经成为Explorer.exe的一<br>部分了<br>程序原理:<br>本程序在Explorer.exe中加入一小段代码,该代码做以下工作:<br>1.建立一个新线程,加载RServer.dll链接库,并运行库中的run函数(见源码),用此<br>方法可以将你的程序深度隐藏,但你要懂*.dll动态链接库的设计(推荐编程高手用<br>此法)<br>要求将RServer.dll,RServer.exe,TServer.exe三个文件复制到windows目录下<br>比如你的win98在c盘,哪么就是c:/windows,当然也可能是其它的<br>这是中文98第二版专用,对其它版无效,若pach产生错误,不能启动windows, 请<br>将windows目录下备份的explorer.old在dos方式下复制到windows目录下的<br>explorer.exe,祝好运<br>警告:严禁用此程序启动你的木马程序,由此引起的后果与本人无关<br>Info.dpr为补丁安装程序的Delphi源程序<br>RServer.dpr为RServer.dll的Delphi源程序<br>RServer.dll是一个示例程序,你可以用他来试试效果<br>RControl.dpr为RServer.dll的Delphi源程序<br>RControl.exe是一个示例程序,你可以用他来试试效果<br>-------------------------------<br><br>e-mail:njhhack@21cn.com<br>oicq:10772919<br>hotsky.363.net<br><br>本程序下载地址njhhack.top263.net/tools/pach.zip
 
消息 查看 搜索 好友 邮件 主页 QQ 复制 引用 回复 <br><br>--------------------------------------------------------------------------------<br>&nbsp; 如果我们要做系统监控或管理软件,有时需要让自己的程序具有不可见性; <br>我使用了远程线程注入的方法来实现进程隐藏的目的; <br>编程实现: <br>1.用 GetWindowThreadProcessId,OpenProcess &nbsp;获得目标进程句柄 <br>2.计算DLL路径名需要的内存空间 <br>3.在远程进程的内存地址空间分配DLL文件名缓冲区 <br>4.将DLL的路径名复制到远程进程的内存空间 <br>5.计算LoadLibraryW的入口地址 <br>6.启动远程线程LoadLibraryW,通过远程线程调用DLL文件 <br><br>我写了个示范程序,源代码在这里:http://pkhack.myetang.com/delphi/into.rar <br>把一个dll插入到explorer中。在桌面显示一行字; <br>程序用delphi写的。全部是api,移植不成问题; <br>在进程列表中是看不到我们的进程的;当然,遍历内存中所有的系统进程找出这个可疑线程也是可以的。那么你需要的是耐心和所有系统进程的一分列表; <br><br>&nbsp; <br><br>--------------------------------------------------------------------------------<br>颓废并且张扬着<br>病态并且优秀着 <br><br>&nbsp; <br>&nbsp;<br><br>--------------------------------------------------------------------------------<br>&nbsp;编辑  2001/11/14 00:08am IP: 已设置保密 &nbsp; &nbsp;投票评分特别好挺不错一般性有点差太差了 &nbsp; &nbsp;<br><br>&nbsp;<br>&nbsp; <br>&nbsp;<br>&nbsp;<br>&nbsp; &nbsp;Aaron &nbsp;   &nbsp;<br>&nbsp;头衔: 论坛版主 <br>&nbsp; <br>&nbsp; &nbsp;<br>&nbsp; <br>&nbsp;威望: 0 <br>&nbsp;级别: DustWorkgroup荣誉核心成员 <br>&nbsp;魅力: &nbsp;<br>&nbsp;经验: &nbsp;<br>&nbsp;金钱: 3434 飞扬虚拟货币 <br>&nbsp;来自: SpeedStar  <br>&nbsp;鉴定: 已设置保密 <br>&nbsp;总发贴数: 49 篇 <br>&nbsp;注册日期: 2001/10/25<br><br>&nbsp; <br>&nbsp;<br>&nbsp;消息 查看 搜索 好友 邮件 QQ <br>&nbsp;<br>
 
to :jbas<br>&nbsp; 你的可以用.我试了.呵呵.谢谢!!
 
To 梆梆:<br>&nbsp; &nbsp;行是行,但是稳定性太差,我一切换用户,慢得象蜗牛,关机都用了10分钟..:(
 
to 憔悴<br>huiyugan,说的那种<br>程序的思路如下<br>1:得到Explorer.exe进程中任意一个线程的ID.<br>2:根据这个线程的ID,得到这个线程的句柄Handle<br>3:挂起这个线程,并保存线程当前的“上下文”<br>4:改变这个线程的EIP指针,使它指向我们装载DLL的函数(InjectCodeFun),然后恢复这个线程。<br>5:我们的装载DLL的函数运行完成后,再次挂起这个线程,使用我们以前保存的“上下文”,恢复这个线程到它被改变前的状态,并继续运行。<br><br>这种方法是最强大的,甚至可以进入优先级为高的winlogon。<br>我有c代码,不知道你要不要。<br>shellapi@163.net<br><br>to:huiyugan<br>&nbsp;我用delphi翻译了一半,到<br>static void WINAPI InjectCodeFun()<br>{<br> ((PROCLOADLIBRARY)0x11111111)((char *)0x22222222);<br> ((POSTMESSAGE)0x33333333)( (HWND)0x44444444,<br> WM_THREADFINISH,<br> 0,0);<br> for(;;);<br>}<br><br>static void WINAPI EndOfInjectCodeFun(void)<br>{<br>}<br>这里就不知道如何了。<br>其他地方应该不成问题,和你交流交流吧。<br>
 
to 梆梆 and 憔悴:<br>&nbsp; &nbsp; 在pascal中如何得到一个函数底机器码底具体办法我是不清楚,不过我们可以采用其他<br>的办法,我们先写出汇编代码,然后根据intel指令手册可以查到每一条指令的机器码,<br>有了机器码了,一切都搞定了,我们只要计算一下有些函数的地址。<br>&nbsp; &nbsp; 可惜这两天我没有时间搞这些东东了,具体的思路就是这样了。<br>&nbsp; &nbsp; intel的指令可以到intel的网站上去查。<br><br>梆梆,如果你愿意你可以把你写的代码发给我。
 
to憔悴<br>&nbsp;稳定性差?这和方法没关系,那dll插入进程的过程在你没反应过来就结束了 。<br>&nbsp;插入后一切都由那插入的dll来作了。<br>&nbsp;我给的示范用了settimer,每隔300就刷新一次。当然慢。<br>&nbsp;正确的说法是 梆梆那个示范的dll太差了。 :)<br><br>&nbsp;总结一下上面的方法:<br>&nbsp; 1. 用hook。Windows 95 System Programming SECRETS 说它太没效率。<br>&nbsp; 2. CreateRemoteThread 在2000下是最好的选择了,稳定性好。<br>&nbsp; 3. 挂起线程,修改线程的EIP指针。 这种方法可以在9x下用,由于要挂起线程,<br>&nbsp; 在注入的时候明显有停滞的感觉。我编写了一个截获*号密码的dll,将它注入winlogon<br>&nbsp; 注销,可以获得登陆密码。可见它的暴力。<br>&nbsp; 4.用注册表的HKEY_LOCAL_MACHINE/Software/Microsoft/Windows NT/CurrentVersion/Windows/APPINIT_DLLS<br>&nbsp; 这个方法可以把线程注入任何线程。 <br><br>to huiyugan<br>&nbsp;没有你的邮箱。1431432
 
98下:RegisterServiceProcess<br>200下:Delphi不可能[:)]
 

Similar threads

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