计算机木马
建议用Ewido。许多的反木马程序中,Ewido 是最好的。国内的木马x星等和它比简直是小儿科了。最近在上的测试里表明,它可以有效地检测出多形态和进程注入式木马,这些甚至完全不能被像诺顿和AVG等杀毒软件所查杀。不过它没有TDS-3 或Trojan Hunter有效.但TDS-3目前还没推出支持中文操作系统的版本,Trojan Hunter是英文的没汉化版。但对于个人而言Ewido足够强大了,和kaspersky结合使用加上ZoneAlarm防火墙,可以使得系统坚若磐石。推荐所有没有安装反木马扫描器的个人计算机用户下载这个软件,并每周定期扫描。我猜你可能在你会为所得到的结果感到惊讶。
去安全模式中杀毒。再不行,就手动杀吧:
木马的自运行方法
前两天在一个E文站点看到一篇关于TROJAN的简单介绍,虽然是属于比较浅显的知识,但是感觉写得还不错,所以翻译其中一小部分给大家共享。
Trojan,这里简称为木马。
多数木马分为两个部分,客户端和服务端,但是很多木马不提供客户端,它们使用通用的telnet作为客户端,或者是它们完全是自动地在做它们要做的事情(比如键盘记录、嗅谈监听等等),完全不需要入侵者更多地干预。可是,那种客户/服务器式的木马则需要入侵者进行交互式xx作。一旦肉鸡在不知情的情况下运行了木马的服务端,入侵者就可以通过某个端口连接到肉鸡,开始使用木马。TCP是最常使用的协议,但是也有一些木马使用ICMP和UDP协议。当木马的服务端在肉鸡上执行以后,它通常是把自己隐藏在计算机上的某个地方,并且在入侵者设定的端口开始监听,等待连接。
为了能够连接肉鸡,必须知道肉鸡的IP,有些肉鸡的IP是动态变化的,比如电话拨号用户或者ADSL虚拟拨号用户。很多木马具有自动发送肉鸡IP到入侵者邮箱的功能,或者是通过ICQ或者IRC来发送。
当肉鸡重新启动的时候,绝大多数木马都有自启动的方法,这些方法包括:使用注册表、使用windows系统文件、使用第三方程序。
1、使用系统文件启动木马
*Autostart Folder
C:\Windows\Start Menu\Programs\startup
这个文件夹是windows启动之后自动运行的文件夹,放在这个下面的任何程序都将自动运行,当机器重新启动的时候。
*Win.ini
如果win.ini中包含下面的,则trojan将自动执行
load=Trojan.exe
run=Trojan.exe
*System.ini
Shell=Explorer.exe trojan.exe
系统启动的时候将自动执行跟在explorer后面的程序
*Wininit.ini
放在该文件下的程序将自动执行,执行完毕后就删除自己,特别适合木马自运行使用
*Winstart.bat
机器启动时的自运行批处理文件
@trojan.exe
使用上面这个语句,木马就自动运行了
*Autoexec.bat
这个是DOS命令行自运行批处理文件,使用
@trojan.exe
*Config.sys
这里也可以自动加载木马
*Explorer Startup
如果存在c:\explorer.exe,则windows将首先执行该程序,而不是通常要执行的c:\Windows\Explorer.exe,这样木马可以把自己改名为explorer.exe,存放在c:\下,这样就执行了它。
2、使用注册表
下面都是木马的藏身之地
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
"Info"="c:\directory\Trojan.exe"
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce]
"Info"="c:\directory\Trojan.exe"
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices]
"Info"="c:\directory\Trojan.exe"
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce]
"Info="c:\directory\Trojan.exe"
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
"Info"="c:\directory\Trojan.exe"
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce]
"Info"="c:\directory\Trojan.exe"
另外木马也可以在这里运行
[HKEY_CLASSES_ROOT\exefile\shell\open\command]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\exefile\shell\open\command]
正常的情况下,这个键值应该是"%1 %*",如果是这样trojan.exe "%1 %*",那么就可以自动启动木马了
3、使用第三方程序
*ICQ 网络探测自动执行程序
[HKEY_CURRENT_USER\Software\Mirabilis\ICQ\Agent\Apps\]
当ICQ探测到机器存在INTERNET连接的时候,防在该键下的所有程序都将自动执行,木马可以放在这里运行。
*ActiveX组件
[HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\InstalledComponents\KeyName]
StubPath=C:\directory\Trojan.exe
自己动手删除时常来袭的木马、病毒
我中了一个小破木马,开了个鬼端口。于是我开始自己手动删除,我一般不用杀毒软件,那些软件都是哄人的,比如一个简简单单的happy time都不能很好的清除!最后还是要靠我自己来~
我建议有能力的话,时刻注意系统的变化,奇怪端口、可疑进程等等。
现在的病毒都不象以前那样对系统数据破坏很严重,也好发现的多, 所以尽量自己杀毒,杀毒(较简单的病毒、木马)大致要分几步:
1. 检查注册表中RUN、RUNSERVEICE等几项,先备份,记下可以启动项的地址,再将可疑的删除。
2. 删除上述可疑键在硬盘中的执行文件。
3. 一般这种文件都在WINNT,SYSTEM,SYSTEM32这样的文件夹下,他们一般不会单独存在,很可能是有某个母文件复制过来的,检查C、D、E等盘下有没有可疑的.exe,.com或.bat文件,有则删除之。
4. 检查注册表HKEY_LOCAL_MACHINE和HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main和中的几项(如Local Page),如果被修改了,改回来就可以。
5. 检查HKEY_CLASSES_ROOT\exefile\shell\open\command和HKEY_CLASSES_ROOT\txtfile\shell\open\command等等几个常用文件类型的默认打开程序是否被更改。这个一定要改回来。很多病毒就是通过修改.txt,.exe等的默认打开程序进行病毒“长生不老,永杀不尽”的。
6. 如果有可能,对病毒的母文件进行反汇编,比如我上次中的那个病毒,通过用IDA反汇编,发现它还偷窃系统密码并建立%systemroot%\system\mapis32a.dll文件把密码送到一个邮箱中,由于我用的是W2K,所以它当然没有得手。
至此,病毒完全删除!
木马是怎么下的电脑里的、
====================================================
1】网络是互联的,当你从中获取资源的同时,也要经受其中的考验,木马程序会修改并破坏电脑的系统和文件,除了安装杀毒软件(包括防火墙)外,还应该尽可能地掌握系统文件知识。下面简单介绍一下木马的加载方式: 加载方式:定位于System.ini和Win.ini文件 System.ini(位置C:\windows\) [boot]项原始值配置:“shell=explorer.exe”,explorer.exe是Windows的核心文件之一,每次系统启动时,都会自动加载。 [boot]项修改后配置:“shell=explorer C:\windows\xxx.exe”(xxx.exe假设一木马程序)。 Win.ini(位置C:\windows\) [windows]项原始值配置:“load=”;“run=”,一般情况下,等号后无启动加载项。 [windows]项修改后配置:“load=”和“run=”后跟非系统、应用启动文件,而是一些你不熟悉的文件名。 解决办法: 执行“运行→msconfig”命令,将System.ini文件和Win.ini文件中被修改的值改回原值,并将原木马程序删除。若不能进入系统,则在进入系统前按“Shift+F5”进入Command Prompt Only方式,分别键入命令edit system.ini和edit win.ini进行修改。 加载方式:隐藏在注册表中(此方式最为隐蔽)。注意以下注册表项:HKEY_LOCAL_MACHINE\Software\classes\exefile\shell\open\command\ 原始数值数据:"%1"% 被修改后的数值数据:C:\system\xxx.exe "%1"% 原注册表项是运行可执行文件的格式,被修改后就变为每次运行可执行文件时都会先运行C:\system\xxx.exe这个程序。 例如:开机后运行QQ主程序时,该xxx.exe(木马程序)就先被加载了。 解决办法: 当通过防火墙得知某端口被监听,立即下线,检查注册表及系统文件是否被修改,找到木马程序,将其删除。 所谓“病从口入”感染源还是在于加载了木马程序的服务器端。目前,伪装可执行文件图标的方法很多,如:修改扩展名,将文件图标改为文件夹的图标等,并隐藏扩展名,因此接收邮件和下载软件时一定要小心。许多木马程序的文件名很像系统文件名,造成用户对其没有把握,不敢随意删除,因此要不断增长自己的知识才可防备万一。 可以借助一些软件来狙击木马,如:The Cleaner、Trojan Remover等。建议经常去微软网站下载补丁包来修补系统;及时升级病毒库。
2】你不去动它就没事
动了以后重启没用
估计不会在开机启动项里面
而是感染了其他程序,比如你的桌面程序等
所以最好不要动它
记住,会感染其他程序,有的还会通过U盘传输,那你就有的忙了
什么是木马?
木马(计算机恶意程序) 即 木马病毒 。
木马(Trojan)这个名字来源于古希腊传说(荷马史诗中木马计的故事,Trojan一词的特洛伊木马本意是特洛伊的,即代指特洛伊木马,也就是木马计的故事)。“木马”程序是目前比较流行的病毒文件,与一般的病毒不同,它不会自我繁殖,也并不“刻意”地去感染其他文件,它通过将自身伪装吸引用户下载执行,向施种木马者提供打开被种主机的门户,使施种者可以任意毁坏、窃取被种者的文件,甚至远程操控被种主机。木马病毒的产生严重危害着现代网络的安全运行。
相关简介
特洛伊木马
“木马”与计算机网络中常常要用到的远程控制软件有些相似,但由于远程控制软件是“善意”的控制,因此通常不具有隐蔽性;“木马”则完全相反,木马要达到的是“偷窃”性的远程控制,如果没有很强的隐蔽性的话,那就是“毫无价值”的。
它是指通过一段特定的程序(木马程序)来控制另一台计算机。木马通常有
两个可执行程序:一个是客户端,即控制端;另一个是服务端,即被控制端。植入被种者电脑的是“服务器”部分,而所谓的“黑客”正是利用“控制器”进入运行了“服务器”的电脑。运行了木马程序的“服务器”以后,被种者的电脑就会有一个或几个端口被打开,使黑客可以利用这些打开的端口进入电脑系统,安全和个人隐私也就全无保障了! 木马的设计者为了防止木马被发现,而采用多种手段隐藏木马。木马的服务一旦运行并被控制端连接,其控制端将享有服务端的大部分操作权限,例如给计算机增加口令,浏览、移动、复制、删除文件,修改注册表,更改计算机配置等。
随着病毒编写技术的发展,木马程序对用户的威胁越来越大,尤其是一些木马程序采用了极其狡猾的手段来隐蔽自己,使普通用户很难在中毒后发觉。
2原理
一个完整的特洛伊木马套装程序含了两部分:服务端(服务器部分)和客户端(控制器部分)。植入对方电脑的是服务端,而黑客正是利用客户端进入运行了服务端的电脑。运行了木马程序的服务端以后,会产生一个有着容易迷惑用户的名称的进程,暗中打开端口,向指定地点发送数据(如网络游戏的密码,即时通信软件密码和用户上网密码等),黑客甚至可以利用这些打开的端口进入电脑系统。
特洛伊木马程序不能自动操作, 一个特洛伊木马程序是包含或者安装一个存心不良的程序的, 它可能看起来是有用或者有趣的计划(或者至少无害)对一不怀疑的用户来说,但是实际上有害当它被运行。特洛伊木马不会自动运行,它是暗含在某些用户感兴趣的文档中,用户下载时附带的。当用户运行文档程序时,特洛伊木马才会运行,信息或文档才会被破坏和遗失。特洛伊木马和后门不一样,后门指隐藏在程序中的秘密功能,通常是程序设计者为了能在日后随意进入系统而设置的。
特洛伊木马有两种,universal的和transitive的,universal就是可以控制的,而transitive是不能控制,刻死的操作。
特征
特洛伊木马不经电脑用户准许就可获得电脑的使用权。程序容量十分轻小,运行时不会浪费太多资源,因此没有使用杀毒软件是难以发觉的,运行时很难阻止它的行动,运行后,立刻自动登录在系统引导区,之后每次在Windows加载时自动运行,或立刻自动变更文件名,甚至隐形,或马上自动复制到其他文件夹中,运行连用户本身都无法运行的动作。
发展
木马程序技术发展可以说非常迅速。主要是有些年轻人出于好奇,或是急于显示自己实力,不断改进木马程序的编写。至今木马程序已经经历了六代的改进:
第一代,是最原始的木马程序。主要是简单的密码窃取,通过电子邮件发送信息等,具备了木马最基本的功能。
第二代,在技术上有了很大的进步,冰河是中国木马的典型代表之一。
第三代,主要改进在数据传递技术方面,出现了ICMP等类型的木马,利用畸形报文传递数据,增加了杀毒软件查杀识别的难度。
第四代, 在进程隐藏方面有了很大改动,采用了内核插入式的嵌入方式,利用远程插入线程技术,嵌入DLL线程。或者挂接PSAPI,实现木马程序的隐藏,甚至在Windows NT/2000下,都达到了良好的隐藏效果。灰鸽子和蜜蜂大盗是比较出名的DLL木马。
第五代,驱动级木马。驱动级木马多数都使用了大量的Rootkit技术来达到在深度隐藏的效果,并深入到内核空间的,感染后针对杀毒软件和网络防火墙进行攻击,可将系统SSDT初始化,导致杀毒防火墙失去效应。有的驱动级木马可驻留BIOS,并且很难查杀。
第六代,随着身份认证UsbKey和杀毒软件主动防御的兴起,黏虫技术类型和特殊反显技术类型木马逐渐开始系统化。前者主要以盗取和篡改用户敏感信息为主,后者以动态口令和硬证书攻击为主。PassCopy和暗黑蜘蛛侠是这类木马的代表。
想明白木马插进程的原理
利用线程注射技术隐藏自己的病毒
时间:2007-7-24 10:38:49 作者:网络收集 出处:陈十三哥
隐藏是病毒的天性,在业界对病毒的定义里,“隐蔽性”就是病毒的一个最基本特征,任何病毒都希望在被感染的计算机中隐藏起来不被发现,因为病毒都只有在不被发现的情况下,才能实施其破坏行为。为了达到这个目的,许多病毒使用了各种不同的技术来躲避反病毒软件的检验,这样就产生了各种各样令普通用户头痛的病毒隐藏形式。由于木马后门的行为特征已具备病毒条件,因此这里把木马后门也统一归纳为病毒来描述。
开山鼻祖:隐藏窗口 隐藏进程 隐藏文件
在计算机流行的早期,计算机病毒和木马后门等危害程序在普通用户范围的普及并不是很广泛,这个时期的用户群对计算机和网络安全的防范意识可以说是几乎没有的,普通用户的系统也多为脆弱的Windows 95/98系列和电话线拨号的慢速网络,而那一段时间正是外国木马“bo”和国产木马雏形“冰河”、“netspy”等在如今看来各方面技术都颇为简单的远程控制软件大行其道的黄金时期,很多用户根本就没有防火墙和杀毒软件(即使有,也是以杀cih的为主),即使远方的黑客把用户的计算机翻了个底朝天,用户也不会有所察觉,这一时期接触此类技术的人相对较少,因此并未造成如今这个病毒到处蔓延的局面。
因为这个阶段国内用户的机器环境仍然以Windows 9x为主流,所以病毒编写者们并不需要消耗太多的脑筋就可以做到让病毒悄无声息运行的效果,并让它在alt+del+ctrl呼出的任务管理器中不可见。
我们都知道,在Windows下运行的程序界面都被定义为“窗口”,程序通过这个途径与用户产生交互,每个完整的程序都必须拥有至少一个窗口,但是如果编写者将这个窗口在运行期间设置为“不可见”呢?这样一来,用户就不会察觉到这个程序在桌面上运行了,但是如果有一定经验的用户打开任务管理器,他就会因为发现系统里多出来的进程而产生怀疑,因此病毒编写者在这个时期采取了初级形式的隐藏手段:隐藏进程。
其实所谓隐藏进程,是利用微软未公开的一个api(application programming interface,应用程序接口)函数“registerserviceprocess”将自身注册为“服务进程”,而恰巧Windows 9x中的任务管理器是不会显示此类进程的,结果就被病毒钻了空子,让“冰河”等木马在国内大部分普通用户的机器上安家落户。
而早期后门技术里,还有一个最基本的行为就是隐藏文件,与今天的各种隐藏手段相比,它可谓是“不入流”级别了——这里提到的“隐藏”,就是简单的将文件属性设置为“隐藏”而已,除此之外,再无别的保护手段了,然而,由于系统设计时为了避免初学者胡乱删除文件而默认“不显示系统和隐藏文件”的做法(到了Windows 2000/xp时代,这个做法更升级到“隐藏受保护的系统文件”了),却恰好给这些病毒提供了天然的隐身场所——大部分对电脑操作不熟悉的用户根本不知道“隐藏文件”的含义,更别提设置为“显示所有文件”了,在那个安全软件厂商刚开始探索市场的时代,用户更是不会留意太多安全产品及其实际含义,因而这个时期成了各种初期木马技术发展的重要阶段,利用这种手段制作的木马被统称为“第一代木马”。
以现在的技术和眼光看来,这些早期技术作品的发现和清理是相对较简单的了,因为它们采用的“进程隐藏”技术在nt体系上的Windows2000/xp/2003等操作系统上已经无效了,直接使用系统自带的任务管理器便能发现和迅速终止进程运行,而后在“控制面板”——“文件夹选项”里面设置“显示所有文件”和取消“隐藏受保护的系统文件”,就能发现那个被隐藏起来的木马程序了。对于Windows 9x用户,使用任意一款第三方的进程管理工具如“Windows优化大师”的进程管理组件即可轻松发现。
继续发展:使用线程注射技术的dll木马
虽然现在使用“线程注射”的木马病毒和流氓软件已经遍地开花了,但是从那个混沌时代经历过来的人都不会忘记首个采用“线程注射”的dll木马“广外幽灵”在当时所带来的恐惧,“线程注射”到底是种什么东西呢?下面就让我们来详细讲解一下。
首先,用户可能不会了解“线程”(thread)的意思,而要讲解“线程”,就不能不先提到“进程”(process)的概念。许多刚接触计算机的用户无法理解“进程”是什么东西:常常听到高手说打开任务管理器关闭某某进程,但是一看到任务管理器列表里的一堆东西,头就大了。许多用户知道使用任务管理器关闭一些失去响应的任务,但是如果某个任务没有在“应用程序”列表里出现,用户就不知所措了。到底什么是“进程”呢?“进程”是指一个可执行文件在运行期间请求系统在内存里开辟给它的数据信息块,系统通过控制这个数据块为运行中的程序提供数据交换和决定程序生存期限,任何程序都必须拥有至少一个进程,否则它不被系统承认。进程从某一方面而言就是可执行文件把自身从存储介质复制在内存中的映像,它通常和某个在磁盘上的文件保持着对应关系,一个完整的进程信息包括很多方面的数据,我们使用进程查看工具看到的“应用程序”选项卡包含的是进程的标题,而“进程”选项卡包含的是进程文件名、进程标识符、占用内存等,其中“进程文件名”和“进程标识符”是必须掌握的关键,“进程标识符”是系统分配给进程内存空间时指定的唯一数字,进程从载入内存到结束运行的期间里这个数字都是保持不变的,而“进程文件名”则是对应着的介质存储文件名称,根据“进程文件名”我们就可以找到最初的可执行文件位置。
任务管理器的“应用程序”项里列出来的“任务”,是指进程在桌面上显示出来的窗口对象,例如用户打开word 2003撰写文档,它的进程“winword.exe”会创建一个在桌面上显示的前台窗口,这个窗口就是任务管理器里看得见的“任务”了,而实际上真正在运行的是进程“winword.exe”。并不是所有的进程都会在任务管理器里留下“任务”的,像qq、msn和所有后台程序,它们并不会在任务列表里出现,但是你会在进程列表里找到它们,如果要它们在任务列表里出现该怎么办呢?只要让它们产生一个在桌面上出现的窗体就可以了,随便打开一个好友聊天,就会发现任务列表里终于出现了qq的任务。因此,真正科学的终止程序执行方案是针对“进程”来结束程序的运行,而不是在任务列表里关闭程序,因为木马作者们是不会让自己的木马在任务列表里出现的,但是进程列表里一般人都是逃不过的。
而“线程”,则是在一个进程里产生的多个执行进度实例,举个简单例子,一个网络文件传输程序如果只有一个线程(单线程)运作,那么它的执行效率会非常低下,因为它既需要从网络上读取文件数据,又需要把文件保存到磁盘,同时还需要绘制当前传输进度条,由于在代码的角度里这些操作只能一条条的顺序执行,程序就不能很好的做到在保存数据的同时绘制传输进度条,即使程序员将其勉强凑到一块执行,在用户方面看来,这个程序的响应会非常缓慢甚至直接崩溃,而“多线程”技术则是为了解决这种问题而产生的,采用“多线程”技术编写的应用程序在运行时可以产生多个同时执行的操作实例,例如一个采用“多线程”技术的网络文件传输程序就能同时分出三个进度来同时执行网络数据传输、文件保存操作和绘制传输进度条的操作,于是在用户看来,这个程序运行非常流畅,这就是线程的作用。在程序运行时,只能产生一个进程,但是在这个进程的内存空间(系统为程序能正常执行而开辟的独立内存领域)里,可以产生多个线程,其中至少有一个默认的线程,被称为“主线程”,它是程序主要代码的运行部分。
那么,“线程注射”又是什么含义呢?其实它的全称是“远程线程注射”(remotethread injection),通常情况下,各个进程的内存空间是不可以相互访问的,这也是为程序能够稳定运行打下基础,这个访问限制让所有进程之间互相独立,这样一来,任何一个非系统关键进程发生崩溃时都不会影响到其他内存空间里的进程执行,从而使nt架构的稳定性远远高于win9x架构。但是在一些特定的场合里,必须让进程之间可以互相访问和管理,这就是“远程线程”技术的初衷,这个技术实现了进程之间的跨内存空间访问,其核心是产生一个特殊的线程,这个线程能够将一段执行代码连接到另一个进程所处的内存空间里,作为另一个进程的其中一个非核心线程来运行,从而达到交换数据的目的,这个连接的过程被称为“注射”(injection)。远程线程技术好比一棵寄生在大树上的蔓藤,一旦目标进程被注射,这段新生的线程就成为目标进程的一部分代码了,只要目标进程不被终止,原进程无论是否还在运行都不会再影响到执行结果了。
与“线程注射”离不开的是“hook”技术,这个“hook”,又是什么呢?其官方定义如下:
钩子(hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。
钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。
在这里,木马编写者首先把一个实际为木马主体的dll文件载入内存,然后通过“线程注射”技术将其注入其他进程的内存空间,最后这个dll里的代码就成为其他进程的一部分来实现了自身的隐藏执行,通过调用“hook”机制,这个dll木马便实现了监视用户的输入输出操作,截取有用的资料等操作。这种木马的实际执行体是一个dll文件,由于Windows系统自身就包含着大量的dll文件,谁也无法一眼看出哪个dll文件不是系统自带的,所以这种木马的隐蔽性又提高了一级,而且它的执行方式也更加隐蔽,这是由Windows系统自身特性决定的,Windows自身就是大量使用dll的系统,许多dll文件在启动时便被相关的应用程序加载进内存里执行了,可是有谁在进程里直接看到过某个dll在运行的?因为系统是把dll视为一种模块性质的执行体来调用的,它内部只包含了一堆以函数形式输出的模块,也就是说每个dll都需要由一个用到它的某个函数的exe来加载,当dll里的函数执行完毕后就会返回一个运行结果给调用它的exe,然后dll进程退出内存结束这次执行过程,这就是标准的dll运行周期,而采用了“线程注射”技术的dll则不是这样,它们自身虽然也是导出函数,但是它们的代码是具备执行逻辑的,这种模块就像一个普通exe,只是它不能直接由自身启动,而是需要有一个特殊作用的程序(称为加载者)产生的进程把这个dll的主体函数载入内存中执行,从而让它成为一个运行中的木马程序。了解Windows的用户都知道,模块是紧紧依赖于进程的,调用了某个模块的进程一旦退出执行,其加载的dll模块也就被迫终止了,但是在dll木马里,这个情况是不会因为最早启动的exe被终止而发生的,因为它使用了“远程线程注射”技术,所以,在用户发现异常时,dll木马早就不知道被注入哪个正常进程里了,即使用户发现了这个木马dll,也无法把它终止,因为要关闭它就必须在那么多的系统进程里找到被它注射的进程,并将其终止,对一般用户来说,这是个不可能完成的任务。
0条大神的评论