木马是QQ有病毒了还是电脑有病毒啊,要是我换个机子上Q会不会把另外的电脑中上木马病毒.
16个回答
展开全部
木马介绍(2006-4-16)
一个完整的木马系统由硬件部分,软件部分和具体连接部分组成。软件部主要有控制端程序、木马程序(后台服务程序)、木马配制程序组成。控制端用以远程控制服务端的程序;木马程序是潜入服务端内部,获取其操作权限的程序;木马配制程序是设置木马程序的端口号,触发条件,木马名称等,使其在服务端藏的更隐蔽的程序。
使用的技术:
控制端程序发送控制码控制服务器,服务器后台运行,修改注册表达到控制的目的。技术不是很难的,主要体现C#的网络编程和注册表的修改。控制端向服务器发出一段控制码,服务端(木马程序)收到控制码后,根据控制的要求,完成指定的要求,如果服务器完成工作,返回成功的信息。
控制端的开发:
控制码的设定可以自已设定,主要有以下几个难点。
1、连接请求
使用了.NET类中的 System.Net.Sockets.TcpClient类,
TcpClient(string hostname,int port)
Hostname 是要控制的主机名称,当然你也可以用IP地址。
Port是端口。
// System.EventArgs包含事件数据类的基类
private void button7_Click(object sender, System.EventArgs e)
{
//记录操作,在richTextBox控件中增加操作信息
richTextBox1.AppendText("请求连接" +textBox1.Text +"\r");
int port =6678;
try
{
//初始化 TcpClient 类的新实例并连接到指定主机上的指定端口
client = new TcpClient(textBox1.Text,port);
}
catch
{
MessageBox.Show("服务器不在线!确定是否输入主机名称.");
richTextBox1.AppendText("服务器不在线!确定是否输入主机名称.");
}
}//private void buttion
2、测试是否与被控制机连接上。程序的流程是发送控制码看控制端是否有反应,如果有返回则显示控制成功。 //提供网络访问的数据流
//private NetworkStream stream;
代码如下:
private void button8_Click(object sender, System.EventArgs e)
{
//纪录操作
richTextBox1.AppendText("测试连接" +"\r");
try
{
stream = client.GetStream();
if(stream.CanWrite)
{
//发送控制码
string control = "jiance";
byte[] by =System.Text.Encoding.ASCII.GetBytes(control.ToCharArray());
stream.Write(by,0,by.Length);
//下次使用
stream.Flush();
//启动接收反回数据的线程
//receive是线程执行的函数,见后面的分析
threadReceive = new Thread(new ThreadStart(receive));
threadReceive.Start();
}
}
catch(Exception ee)
{
richTextBox1.AppendText (ee.Message+"\r");
MessageBox.Show(ee.Message);
}
}
3、控制生效的代码
private void button9_Click(object sender, System.EventArgs e)
{
//这里是确定要发送的控制码,RadioButton是窗体控件
if(radioButton1.Checked){ control = form2.zhucex;}
else if(radioButton2.Checked){ control =form3.zhuces;}
else if(radioButton3.Checked){ control = warring;}
else if(radioButton4.Checked){ control =suggest;}
else if(radioButton5.Checked){ control =form4.mumawe;}
else if(radioButton6.Checked){ control =drop;}
if (control =="000000")
{
MessageBox.Show("你没有输入任何控制目标!不发控制信号");
richTextBox1.AppendText("你没有输入任何控制目标!不发控制信号");
}
else if(control != "000000")
{
try
{
//记录操作
richTextBox1.AppendText (control + "正在试图控制,等待回应......" + "\r");
stream = client.GetStream();
if(stream.CanWrite )
{
byte[] by = System.Text.Encoding.ASCII.GetBytes(control.ToCharArray ());
stream.Write(by,0,by.Length);
stream.Flush();
threadReceive =new Thread(new ThreadStart(receive));
threadReceive.Start();
}//endif
}//try
catch
{
richTextBox1.AppendText("服务器未连接1控制无效!" +"\r");
MessageBox.Show("服务器未连接1控制无效!" +"\r");
}
}//else if
}
4、线程执行的函数
private void receive()
{
//设置读取数据的空间
byte[] bb = new byte[3];
//读取3个字节,i为实际读取的字节数
int i = stream.Read(bb,0,3);
//转换成字符串,如果是中文控制码则用string ss = //System.Text.Encoding.Unicode.GetString(bb);
string ss = System.Text.Encoding.ASCII.GetString(bb);
//hjc为我设置的服务器的返回码 hjc为连接成功,hkz为控制成功
if(ss=="hjc")
{
MessageBox.Show("连接成功");
richTextBox1.AppendText("连接成功");
}
if(ss== "hkz")
{
richTextBox1.AppendText(control +"控制成功"+"\r");
MessageBox.Show(control +"控制成功"+"\r");
}
}
一、木马的来历
计算机木马是一种后门程序,常被黑客用作控制远程计算机的工具。英文单词“Trojan”,直译为“特洛伊”。木马这个词来源于一个古老的故事:相传古希腊战争,在攻打特洛伊时,久攻不下。后来希腊人使用了一个计策,用木头造一些大的木马,空肚子里藏了很多装备精良的勇士,然后佯装又一次攻打失败,逃跑时就把那个大木马遗弃。守城的士兵就把它当战利品带到城里去了。到了半夜,木马肚子里的勇士们都悄悄的溜出来,和外面早就准备好的战士们来了个漂亮的里应外合,一举拿下了特洛伊城。这就是木马的来历。从这个故事,大家很容易联想到计算机木马的功能。
二、计算机木马原理
计算机木马一般由两部分组成,服务端和控制端,也就是常用的C/S(CONTROL/SERVE)模式。
服务端(S端):远程计算机机运行。一旦执行成功就可以被控制或者造成其他的破坏,这就要看种木马的人怎么想和木马本身的功能,这些控制功能,主要采用调用Windows的API实现,在早期的dos操作系统,则依靠DOS终端和系统功能调用来实现(INT 21H),服务段设置哪些控制,视编程者的需要,各不相同。
控制端(C端)也叫客户端,客户端程序主要是配套服务段端程序的功能,通过网络向服务段发布控制指令,控制段运行在本地计算机。
三、传播途径
木马的传播途径很多,常见的有如下几类:
1. 通过电子邮件的附件传播。这是最常见,也是最有效的一种方式,大部分病毒(特别是蠕虫病毒)都用此方式传播。首先,木马传播者对木马进行伪装,方法很多,如变形、压缩、脱壳、捆绑、取双后缀名等,使其具有很大的迷惑性。一般的做法是先在本地机器将木马伪装,再使用杀毒程序将伪装后的木马查杀测试,如果不能被查到就说明伪装成功。然后利用一些捆绑软件把伪装后的木马藏到一幅图片内或者其他可运行脚本语言的文件内,发送出去。
2. 通过下载文件传播。从网上下载的文件,即使大的门户网站也不能保证任何时候他的问件都安全,一些个人主页、小网站等就更不用说了。下载文件传播方式一般有两种,一种是直接把下载链接指向木马程序,也就是说你下载的并不是你需要的文件。另一种是采用捆绑方式,将木马捆绑到你需要下载的文件中。
3. 通过网页传播。大家都知道很多VBS脚本病毒就是通过网页传播的,木马也不例外。网页内如果包含了某些恶意代码,使得IE自动下载并执行某一木马程序。这样你在不知不觉中就被人种上了木马。顺便说一句,很多人在访问网页后IE设置被修改甚至被锁定,也是网页上用脚本语言编写的的恶意代码作怪。
4. 通过聊天工具传播。目前,QQ、ICQ、MSN、EPH等网络聊天工具盛行,而这些工具都具备文件传输功能,不怀好意者很容易利用对方的信任传播木马和病毒文件。
四、一些特殊类型的木马
1.反弹端口木马:普通木马的都是由C端发送请求S端来连接,但有些另类的木马就不是这样,它由S端向C端发送请求。这样做有什么好处呢?大家知道,网络防火墙都有监控网络的作用,但它们大多都只监控由外面近来的数据,对由里向外数据的却不闻不问。反弹端口木马正好利用了这一点来躲开网络防火墙的阻挡,以使自己顺利完成任务。大名鼎鼎的“网络神偷”就是这样一类木马。它由S断向C端发送一个连接请求,C端的数据在经过防火墙时,防火墙会以为是发出去的正常数据(一般向外发送的数据,防火墙都以为是正常的)的返回信息,于是不予拦截,这就给它了可钻的空子。
2.无进程木马:“进程”是一个比较抽象的概念,可以理解为排队买电影票,每一个窗口(其实就是端口)排的人可以理解为一个进程,有多少窗口就有多少个进程。普通木马在运行时都有自己独立的进程(某一特定窗口排的人,先当作小偷),利用“柳叶擦眼”一类的优秀进程查看软件就可以发现和终止它。这岂不是太扫兴了?好不容易写出个木马就这么被你发现了。为了更好的隐藏自己,木马的制作者就想了一些办法,把木马的程隐藏进正常的进程(宿主进程)内。打个比方,正常的进程(系统和正当文件的进程)可以理解为正常排队买票的人。而木马的进程(排队假装买票的小偷),他们如果都排在某一个窗口(通过某一特定端口进行通讯),很容易就被发现了,于是那些小偷就想办法混到正常排队人当中(实现了木马进程的隐藏),这样就不容易被发现,而且也不容易被终止。在实际中,即使你发现了隐藏在某一正常进程中的木马进程,你也不敢轻易终止它,因为一旦终止了木马的进程,正常的宿主进程也就被终止,这可能导致一些严重的后果。所以可以看出,无进程木马实际上是“隐藏进程木马”,而这也是它的高明之处。在实际中不可能出现真正意义上的“无进程木马”。最近出现的“广外男生”就是典型的例子。
3.无控制端木马(我把它叫一次性木马): 这类木马最显著的特点是C端和S端是集成到一起的,一次配置好就不能再更改。功能一般比较专一,针对性强,危害较小,查杀较简单。经常用来偷取QQ、Email和网络游戏的密码等。
4.嵌套型木马:先用自己写的小程序或者利用系统的漏洞,夺取到某写特定的权限,比如上传文件,干掉网络防火墙和病毒防火墙等,然后上传修改过或没修改过的功能强大的木马,进一步夺取控制权。于是这个小程序或者系统漏洞就和那个功能强大的真正的木马联合起来,组成了一款“嵌套型木马”,其特点是不容发现和查杀,“具有良好的发展前景”。
5.其他木马:严格意义上讲,这里所说的其他木马并不是真正的木马,它们只能算做是木马入侵时的辅助工具吧。典型的有恶意网页代码,让你浏览后不知不觉就被完全共享了所有的硬盘,然后方便别人给你种下木马,为进一步入侵做好准备。
五、关于捆绑
木马捆绑,通俗地讲就是把木马的代码嵌入其他类型的文件,便于伪装,比如,大名鼎鼎的国产木马“冰河”,他就自带一个捆绑工具,可以把木马代码嵌入到网页文件、图片文件、可执行文件等多种支持脚本语言或运行代码的文件中。当接受方收到这些文件时,几乎感觉不到有任何异样,但在后台,木马代码却悄然进入内存并运行。
一个完整的木马系统由硬件部分,软件部分和具体连接部分组成。软件部主要有控制端程序、木马程序(后台服务程序)、木马配制程序组成。控制端用以远程控制服务端的程序;木马程序是潜入服务端内部,获取其操作权限的程序;木马配制程序是设置木马程序的端口号,触发条件,木马名称等,使其在服务端藏的更隐蔽的程序。
使用的技术:
控制端程序发送控制码控制服务器,服务器后台运行,修改注册表达到控制的目的。技术不是很难的,主要体现C#的网络编程和注册表的修改。控制端向服务器发出一段控制码,服务端(木马程序)收到控制码后,根据控制的要求,完成指定的要求,如果服务器完成工作,返回成功的信息。
控制端的开发:
控制码的设定可以自已设定,主要有以下几个难点。
1、连接请求
使用了.NET类中的 System.Net.Sockets.TcpClient类,
TcpClient(string hostname,int port)
Hostname 是要控制的主机名称,当然你也可以用IP地址。
Port是端口。
// System.EventArgs包含事件数据类的基类
private void button7_Click(object sender, System.EventArgs e)
{
//记录操作,在richTextBox控件中增加操作信息
richTextBox1.AppendText("请求连接" +textBox1.Text +"\r");
int port =6678;
try
{
//初始化 TcpClient 类的新实例并连接到指定主机上的指定端口
client = new TcpClient(textBox1.Text,port);
}
catch
{
MessageBox.Show("服务器不在线!确定是否输入主机名称.");
richTextBox1.AppendText("服务器不在线!确定是否输入主机名称.");
}
}//private void buttion
2、测试是否与被控制机连接上。程序的流程是发送控制码看控制端是否有反应,如果有返回则显示控制成功。 //提供网络访问的数据流
//private NetworkStream stream;
代码如下:
private void button8_Click(object sender, System.EventArgs e)
{
//纪录操作
richTextBox1.AppendText("测试连接" +"\r");
try
{
stream = client.GetStream();
if(stream.CanWrite)
{
//发送控制码
string control = "jiance";
byte[] by =System.Text.Encoding.ASCII.GetBytes(control.ToCharArray());
stream.Write(by,0,by.Length);
//下次使用
stream.Flush();
//启动接收反回数据的线程
//receive是线程执行的函数,见后面的分析
threadReceive = new Thread(new ThreadStart(receive));
threadReceive.Start();
}
}
catch(Exception ee)
{
richTextBox1.AppendText (ee.Message+"\r");
MessageBox.Show(ee.Message);
}
}
3、控制生效的代码
private void button9_Click(object sender, System.EventArgs e)
{
//这里是确定要发送的控制码,RadioButton是窗体控件
if(radioButton1.Checked){ control = form2.zhucex;}
else if(radioButton2.Checked){ control =form3.zhuces;}
else if(radioButton3.Checked){ control = warring;}
else if(radioButton4.Checked){ control =suggest;}
else if(radioButton5.Checked){ control =form4.mumawe;}
else if(radioButton6.Checked){ control =drop;}
if (control =="000000")
{
MessageBox.Show("你没有输入任何控制目标!不发控制信号");
richTextBox1.AppendText("你没有输入任何控制目标!不发控制信号");
}
else if(control != "000000")
{
try
{
//记录操作
richTextBox1.AppendText (control + "正在试图控制,等待回应......" + "\r");
stream = client.GetStream();
if(stream.CanWrite )
{
byte[] by = System.Text.Encoding.ASCII.GetBytes(control.ToCharArray ());
stream.Write(by,0,by.Length);
stream.Flush();
threadReceive =new Thread(new ThreadStart(receive));
threadReceive.Start();
}//endif
}//try
catch
{
richTextBox1.AppendText("服务器未连接1控制无效!" +"\r");
MessageBox.Show("服务器未连接1控制无效!" +"\r");
}
}//else if
}
4、线程执行的函数
private void receive()
{
//设置读取数据的空间
byte[] bb = new byte[3];
//读取3个字节,i为实际读取的字节数
int i = stream.Read(bb,0,3);
//转换成字符串,如果是中文控制码则用string ss = //System.Text.Encoding.Unicode.GetString(bb);
string ss = System.Text.Encoding.ASCII.GetString(bb);
//hjc为我设置的服务器的返回码 hjc为连接成功,hkz为控制成功
if(ss=="hjc")
{
MessageBox.Show("连接成功");
richTextBox1.AppendText("连接成功");
}
if(ss== "hkz")
{
richTextBox1.AppendText(control +"控制成功"+"\r");
MessageBox.Show(control +"控制成功"+"\r");
}
}
一、木马的来历
计算机木马是一种后门程序,常被黑客用作控制远程计算机的工具。英文单词“Trojan”,直译为“特洛伊”。木马这个词来源于一个古老的故事:相传古希腊战争,在攻打特洛伊时,久攻不下。后来希腊人使用了一个计策,用木头造一些大的木马,空肚子里藏了很多装备精良的勇士,然后佯装又一次攻打失败,逃跑时就把那个大木马遗弃。守城的士兵就把它当战利品带到城里去了。到了半夜,木马肚子里的勇士们都悄悄的溜出来,和外面早就准备好的战士们来了个漂亮的里应外合,一举拿下了特洛伊城。这就是木马的来历。从这个故事,大家很容易联想到计算机木马的功能。
二、计算机木马原理
计算机木马一般由两部分组成,服务端和控制端,也就是常用的C/S(CONTROL/SERVE)模式。
服务端(S端):远程计算机机运行。一旦执行成功就可以被控制或者造成其他的破坏,这就要看种木马的人怎么想和木马本身的功能,这些控制功能,主要采用调用Windows的API实现,在早期的dos操作系统,则依靠DOS终端和系统功能调用来实现(INT 21H),服务段设置哪些控制,视编程者的需要,各不相同。
控制端(C端)也叫客户端,客户端程序主要是配套服务段端程序的功能,通过网络向服务段发布控制指令,控制段运行在本地计算机。
三、传播途径
木马的传播途径很多,常见的有如下几类:
1. 通过电子邮件的附件传播。这是最常见,也是最有效的一种方式,大部分病毒(特别是蠕虫病毒)都用此方式传播。首先,木马传播者对木马进行伪装,方法很多,如变形、压缩、脱壳、捆绑、取双后缀名等,使其具有很大的迷惑性。一般的做法是先在本地机器将木马伪装,再使用杀毒程序将伪装后的木马查杀测试,如果不能被查到就说明伪装成功。然后利用一些捆绑软件把伪装后的木马藏到一幅图片内或者其他可运行脚本语言的文件内,发送出去。
2. 通过下载文件传播。从网上下载的文件,即使大的门户网站也不能保证任何时候他的问件都安全,一些个人主页、小网站等就更不用说了。下载文件传播方式一般有两种,一种是直接把下载链接指向木马程序,也就是说你下载的并不是你需要的文件。另一种是采用捆绑方式,将木马捆绑到你需要下载的文件中。
3. 通过网页传播。大家都知道很多VBS脚本病毒就是通过网页传播的,木马也不例外。网页内如果包含了某些恶意代码,使得IE自动下载并执行某一木马程序。这样你在不知不觉中就被人种上了木马。顺便说一句,很多人在访问网页后IE设置被修改甚至被锁定,也是网页上用脚本语言编写的的恶意代码作怪。
4. 通过聊天工具传播。目前,QQ、ICQ、MSN、EPH等网络聊天工具盛行,而这些工具都具备文件传输功能,不怀好意者很容易利用对方的信任传播木马和病毒文件。
四、一些特殊类型的木马
1.反弹端口木马:普通木马的都是由C端发送请求S端来连接,但有些另类的木马就不是这样,它由S端向C端发送请求。这样做有什么好处呢?大家知道,网络防火墙都有监控网络的作用,但它们大多都只监控由外面近来的数据,对由里向外数据的却不闻不问。反弹端口木马正好利用了这一点来躲开网络防火墙的阻挡,以使自己顺利完成任务。大名鼎鼎的“网络神偷”就是这样一类木马。它由S断向C端发送一个连接请求,C端的数据在经过防火墙时,防火墙会以为是发出去的正常数据(一般向外发送的数据,防火墙都以为是正常的)的返回信息,于是不予拦截,这就给它了可钻的空子。
2.无进程木马:“进程”是一个比较抽象的概念,可以理解为排队买电影票,每一个窗口(其实就是端口)排的人可以理解为一个进程,有多少窗口就有多少个进程。普通木马在运行时都有自己独立的进程(某一特定窗口排的人,先当作小偷),利用“柳叶擦眼”一类的优秀进程查看软件就可以发现和终止它。这岂不是太扫兴了?好不容易写出个木马就这么被你发现了。为了更好的隐藏自己,木马的制作者就想了一些办法,把木马的程隐藏进正常的进程(宿主进程)内。打个比方,正常的进程(系统和正当文件的进程)可以理解为正常排队买票的人。而木马的进程(排队假装买票的小偷),他们如果都排在某一个窗口(通过某一特定端口进行通讯),很容易就被发现了,于是那些小偷就想办法混到正常排队人当中(实现了木马进程的隐藏),这样就不容易被发现,而且也不容易被终止。在实际中,即使你发现了隐藏在某一正常进程中的木马进程,你也不敢轻易终止它,因为一旦终止了木马的进程,正常的宿主进程也就被终止,这可能导致一些严重的后果。所以可以看出,无进程木马实际上是“隐藏进程木马”,而这也是它的高明之处。在实际中不可能出现真正意义上的“无进程木马”。最近出现的“广外男生”就是典型的例子。
3.无控制端木马(我把它叫一次性木马): 这类木马最显著的特点是C端和S端是集成到一起的,一次配置好就不能再更改。功能一般比较专一,针对性强,危害较小,查杀较简单。经常用来偷取QQ、Email和网络游戏的密码等。
4.嵌套型木马:先用自己写的小程序或者利用系统的漏洞,夺取到某写特定的权限,比如上传文件,干掉网络防火墙和病毒防火墙等,然后上传修改过或没修改过的功能强大的木马,进一步夺取控制权。于是这个小程序或者系统漏洞就和那个功能强大的真正的木马联合起来,组成了一款“嵌套型木马”,其特点是不容发现和查杀,“具有良好的发展前景”。
5.其他木马:严格意义上讲,这里所说的其他木马并不是真正的木马,它们只能算做是木马入侵时的辅助工具吧。典型的有恶意网页代码,让你浏览后不知不觉就被完全共享了所有的硬盘,然后方便别人给你种下木马,为进一步入侵做好准备。
五、关于捆绑
木马捆绑,通俗地讲就是把木马的代码嵌入其他类型的文件,便于伪装,比如,大名鼎鼎的国产木马“冰河”,他就自带一个捆绑工具,可以把木马代码嵌入到网页文件、图片文件、可执行文件等多种支持脚本语言或运行代码的文件中。当接受方收到这些文件时,几乎感觉不到有任何异样,但在后台,木马代码却悄然进入内存并运行。
参考资料: http://www.hbsw.net/newsp/ReadNews.asp?NewsID=2856&BigClassName=%CC%D8%B1%F0%CD%C6%BC%F6&SmallClass
展开全部
呵呵,不会的,木马和病毒是不一样的,你自己机子上有,只能是你机子受感染,在别的机子上再登陆QQ,别的机子是不会感染木马和病毒的.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-01-30
北京瑞星信息技术股份有限公司
瑞星公司主营业务为信息安全整体解决方案的研发、销售及相关增值服务。公司自成立以来一直专注于信息安全领域,以优质的产品和专业的“安全+”服务,向政府、企业及个人提供各类安全服务,帮助所有用户。
向TA提问
关注
展开全部
木马是病毒的一种,主要还是计算机中毒,如果更换电脑,新电脑没有病毒的话是不会影响新电脑的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
电脑带毒,换了之后不会,除非原本就已经中毒,或者你又点到别人所发的链接重新使机器染毒
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
木马是驻留在你电脑的进程里的,黑客在远端通过木马控制你的电脑.这和你使用的QQ软件没有关系,只要你不在中木马的本机使用就没事.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询