隐藏技术范文

时间:2022-03-02 21:30:28

引言:寻求写作上的突破?我们特意为您精选了4篇隐藏技术范文,希望这些范文能够成为您写作时的参考,帮助您的文章更加丰富和深入。

隐藏技术

篇1

中图分类号:TP309文献标识码:A文章编号:1009-3044(2008)30-0740-02

Windows Process Hiding Method

SHI Yong-lin,PAN Jin,PANG Xiong-chang,XIE Qing-song

(Department one of Xi'an Communication Institute, Xi'an 710016,China)

Abstract: This paper gives a detail explanation of how to hide process on windows, it introduces three ways to achieve the goal.It also tell the strong and weak point of the different methods.

Key words: process;hiding

进程隐藏,也就在用户不知情的情况下,悄悄执行自己的代码。这一直是病毒、木马程序设计者不断探求的重要技术,因为这些程序都是见不得光的,都需要较好的隐藏和保护自己。了解进程隐藏技术,是开发防病毒和木马软件的基础,一般来讲,一个程序如果采用进程隐藏技术隐藏自己,那大多情况下其一定是一个病毒或木马等恶意程序。但有些情况下,进程隐藏也是某些类型程序所需要的功能,如某些安全控制程序,例如上网控制系统,其功能要求只能上单位局域网,不能上internet,这种程序需要常驻系统,不能停止和卸载,这则要求进程能有效保护和隐藏自己,以防止用户恶意删除和卸载。

进程隐藏是一个古老但一直成长的技术,一直以来隐藏和破解隐藏的斗争都在进行。从原理上讲任何隐藏进程因为其都不能从操作系统的进程调度链中删除,所以说都不能达到真正的隐藏,但是采用多种隐藏和保护机制,的确可以最大限度的保护程序。

进程隐藏现在主要有以下几种技术:

1) 利用CreateRemoteThread()函数和代码注入技术在宿主进程,如explorer中运行自己的代码。

2) 利用API拦截技术拦截NtQuerySystemInformation函数,过滤掉要隐藏的进程,因为windows任务管理器调用这个函数来获得系统运行的进程列表,这样在windows任务管理器中就隐藏了目标进程。

3) 把要隐藏的进程从系统活动进程列表(EPROCESS LIST_ENTRY)中摘除,这样其他的查找进程的函数都不能获取目标进程的信息了。

1 利用CreateRemoteThread进行进程隐藏

这种方法的主要原理是通过代码注入技术把代码注入到宿主进程中,然后通过调用CreateRemoteThread()函数在宿主进程中生成自己的线程,运行自己的代码。可以看出这种方法的一个主要工作是代码的注入,也就是怎样才能把自己的代码映射到宿主进程的空间中。

代码注入技术分为动态代码注入技术和静态代码注入技术,动态代码注入技术就是在进程启动后或在进程启动时在进程的运行空间中注入代码的技术,而静态注入技术就是在PE格式的.exe文件中插入代码。静态注入技术是病毒感染文件的常用方法,在文献[1]中有详细的叙述。动态注入技术也分为直接代码注入技术和以dll形式的注入技术,直接代码注入技术是利用VirtualAllocEx和CreateRemoteThread两个API来进行的函数级代码注入技术,可以采用汇编的形式,这种方法在文献[1]中的进程隐藏一章中有详细的讲解,也可以采用高级语言如c语言的形式,这种方法有兴趣的可以参考文献[2]。直接代码注入技术对注入的代码有很高的要求,要解决地址重定位等问题,而且注入代码的大小也受到很大的限制,所以不适用于进程级代码的注入。所以进程隐藏一般采用dll形式的动态代码注入技术。

利用CreateRemoteThread进行dll形式的动态代码注入技术在[3]中有较详细的论述。要在其他的进程中注入dll,就要求我们能在那个进程中调用LoadLibrary() API,但我们没有权限获得其他进程的执行控制权,幸好微软提供了函数CreateRemoteThread()可以在其他的进程中创建远程线程,而恰好线程函数的原型:

DWORD WINAPI ThreadProc(LPVOID lpParameter);

和LoadLibrary()的原型:

HMODULE WINAPI LoadLibrary(LPCTSTR lpFileName);

HMODULE和DWORD都是双字节,调用方式都是WINAPI,LPVOID和LPCTSTR都是双字节指针,所以函数原型是一样的。从而我们利用CreateRemoteThread()来欺骗操作系统,使其执行LoadLibrary() API,如下:

hThread = ::CreateRemoteThread(

hProcessForHooking, //要插入dll的进程句柄

NULL,

0,

pfnLoadLibrary,// LoadLibrary函数的地址

"C:\\HookTool.dll", //要注入的dll的全路径

0,

NULL);

LoadLibrary函数的地址因为其所在的Kernel32.DLL的映射地址在所有进程中是确定的,所以其值可以通过调用GetProcAddress()获得。

这种进程隐藏的方法要把进程执行的代码封装进dll中,这可能不能满足某些程序设计者的要求,而且经测试,瑞星等杀毒软件都禁止这种方法的代码注入,所以这种隐藏技术很难成功。

2 利用API拦截技术进行进程隐藏

API拦截的主要目的是在其他应用程序调用API之前将其拦截,由拦截者先处理传递的参数数据,然后决定是否再调用原来的API。比如API

BOOL TextOutA( HDC hdc, int nXStart,int nYStart,LPCTSTR lpString, int cbString);

在其他程序调用这个API之前,拦截程序可以先捕获这个调用,先对参数等进行处理,比如将cbString翻译为中文等,然后再调用原来的TextOutA进行文本输出,这样输出的文本就变成中文了。

因为任务管理器是调用ntdll.dll中的NtQuerySystemInformation()API来获得进程列表的,所以只要我们先截获这个调用,在我们的替换函数中先调用原来的NtQuerySystemInformation,从返回的进程信息链表中去除要隐藏的目标进程的信息,然后把改变的进程列表返回给任务管理器,那么目标进程则从任务管理器中隐藏。NtQuerySystemInformation函数的原形如下:

NTSTATUSNTAPI ZwQuerySystemInformation(

INULONGSystemInformationClass,

INPVOIDSystemInformation,

INULONGSystemInformationLength,

OUT PULONG ReturnLength

);

其中SystemInformation中返回的就是如下结构体构成的进程信息链表。

struct _SYSTEM_PROCESSES

{ULONGNextEntryDelta;

ULONGThreadCount;

......

UNICODE_STRING ProcessName;

KPRIORITYBasePriority;

ULONGProcessId;

......};

其中ProcessName指向的就是进程的可执行文件名,我们可以通过可执行文件名或进程ID ProcessId进行进程过滤。

从上面介绍可以看出,采用这种方法进行进程隐藏的关键是怎样进行API拦截,API拦截可以在用户层(ring3)进行,也可以在内核层(ring0)中进行。用户层的API拦截技术可以参考文献[4],这里详细介绍了用户层API拦截的各种技术。内核层的API拦截技术可以参考文献[5] 监控Native API调用一章,它的原理是通过替换windows系统服务描述符表中的Native API处理例程的入口地址来截获API。

这种技术可靠性好,容易实现,并且可以进行其他功能的隐藏,如注册表项隐藏,文件隐藏等,还可以通过截获进程控制API来防止杀死进程,所以可以更好的隐藏和保护进程,所以这种方法使用的较广泛。

3 修改系统活动进程列表

Window系统内部维护了一个活动进程链表,其节点结构体如下:

typedef struct _EPROCESS

{

/*000*/ KPROCESS Pcb;

/*06C*/ NTSTATUS ExitStatus;

/*070*/ KEVENT LockEvent;

/*080*/ DWORD LockCount;

/*084*/ DWORD d084;

/*088*/ LARGE_INTEGER CreateTime;

/*090*/ LARGE_INTEGER ExitTime;

/*098*/ PVOID LockOwner;

/*09C*/ DWORD UniqueProcessId;

/*0A0*/ LIST_ENTRY ActiveProcessLinks;

......

} EPROCESS;

typedef struct _LIST_ENTRY

{

struct _LIST_ENTRY *Flink;

struct _LIST_ENTRY *Blink;

} LIST_ENTRY;

系统通过查找这个链表获得系统中进程的列表,所以如果把要隐藏的进程从这个链表中去除,则可以从系统中隐藏此进程.查找可以通过进程ID UniqueProcessId进行。

这种方法也是既可以在内核中进行,也可以在应用层进行。

(下转第744页)

(上接第741页)

在内核层采用这种方法隐藏进程比较简单,这个链表的表头存储在系统变量PsActiveProcessHead中,但这个变量windows没有输出,但我们可以通过PsGetCurrentProcess()函数获取当前进程的EPROCESS结构体指针,然后通过ActiveProcessLinks遍历列表来查找要隐藏的进程。这里需要注意的是不同版本的windows系统的EPROCESS结构可能不同。

在用户层采用这种方法的原理也很简单,因为windows系统在物理内存中的位置是固定的,所以活动进程链表的首地址也是固定的,通过调用ZwOpenSection()函数读取和修改物理内存,然后修改的链表的相应位置来去除目标进程。在用户层采用这种方法隐藏进程可靠性较差,因为和windows系统的版本关系太密切,不同windows版本中的很多参数都不同,如链表头的位置,window内存的映像等,所以需要修改程序的很多参数,而且很多杀毒软件都禁止对物理内存的直接读写,所以很多情况下都不能达到对进程的隐藏。

4 总结

本文从原理上介绍了进程隐藏的几种方法,其中比较可靠和常用的是利用API拦截技术和在内核层修改活动进程链表两种方法。就像在本文开始所讲到的一样,隐藏都是相对的,只要进程还在系统中运行,就必须服从windows的调度,那么其在系统中就一定可以查找得到,所以一些系统工具,如IceSword等就可以查找到隐藏的进程,但我们可以采用多种技术的复合,如三线程进程保护机制,文件隐藏机制等,增加进程的防杀功能,可以从一定程度上保护进程。

参考文献:

[1] 罗云彬.Windows环境下32位汇编语言程序设计[M].电子工业出版社,200,10.

[2] Ciro Sisman Pereira.Portable Executable (P.E.) Code Injection: Injecting an Entire C[DB/OL].

[3] Jeffrey Ritcher.Load Your 32-bit DLL into Another Process's Address Space Using INJLIB[J].MSJ May 1994.

篇2

中图分类号:TN401 文献标识码:A 文章编号:2095-1302(2014)12-00-05

0 引 言

安全、有效的信息传输对国家安全、社会稳定和人民安居乐业至关重要。网络和多媒体技术的发展,使得信息传输的速度和数量正以惊人的增量发展。然而,信息传输的便利在方便人们的同时也给信息安全带来了隐患,同时也为基于数字载体的秘密信息传输提供了广阔的研究空间。目前,基于载体的秘密信息传输是信息安全领域的一个方兴未艾的研究热点。而基于载体预处理的藏文信息隐藏技术将为信息安全领域提供一些新的数字信息共享和传输理念,特别是藏文的预处理规律、在数字信息中的隐藏规律等,将有助于涉藏秘密通信技术的发展,并可以对民用和商用领域中涉及到藏文内容的传输、共享、存储和提取的通信过程起到安全保护、版权保护及完整性认证的作用,并对国家涉藏领域的网络舆情监控、国内外涉藏敏感信息标注和情感色彩认知起着至关重要的作用。

在藏文信息隐藏技术方面,目前主要涉及的技术有关键字识别、字符识别和提取、韵律认知、语义角色标注、文本资源挖掘和语料抽取等,并以此为基础进行置乱优化。

1 国内外信息隐藏技术研究现状

信息隐藏一直是信息安全领域中保障隐秘信息安全传输和数字信息版权的重要手段,也是近年来国内外学者研究的热点之一。最新的一届ACM信息隐藏和多媒体安全会议(ACM IH&MMSec’13 Workshop)的主要研究内容有信息隐藏算法、多媒体水印和认证、载体运算域的数字信号处理等。其中,信息隐藏算法的设计首先依赖于载体的选择和预处理;关于多媒体水印和认证的研究则将信息隐藏和数字水印的载体范围从数字图像等常见载体拓展到了包括三维模型在内的新型载体上;载体运算域的数字信号处理涉及到了载体预处理时所用的具体方法,如空间域或变换域等。2013年IEEE 图像处理国际会议(IEEE ICIP 2013)的主要研究内容包括图像、音视频和3-D等多媒体的信息隐藏算法和多媒体特征提取和分析等,这两类研究内容均与载体的选取和预处理有关。最新一届信息隐藏国际会议(IH2012)的主要研究内容包括多媒体安全和其他载体的信息隐藏。我国的第十一届全国信息隐藏暨多媒体安全学术大会(CIHW2013)中关于信息隐藏算法的研究内容也主要集中在非常规载体的分析和预处理上。

藏文作为信息隐藏领域一种新的信息格式,对其研究主要局限于藏文操作系统、藏文信息技术标准、藏文信息处理等几个方面[1],具体内容集中在藏文编码字符集、术语集、拼音辅助集等的建立。

基于载体的秘密通信技术是20世纪90年代中期发展起来的跨领域的学科,而载体的预处理技术一直是其研究的主要方向。对隐藏载体进行预处理,生成信息隐藏嵌入区域是信息隐藏算法中最重要的研究内容之一。从上述国内外各学术会议中关于信息隐藏的参会论文和研讨情况看,各类载体固有特性的研究对预处理技术有着重要的意义,且数字图像依然是主要的一类载体,而三维模型将是未来主要研究的一类非常规载体。下面就对数字图像和三维模型两类载体的预处理技术的研究现状进行阐述。

1.1 数字图像预处理技术研究综述

基于数字图像的信息隐藏技术是信息隐藏学科中重要的技术分支,是目前应用最广、覆盖范围最大的信息隐藏技术手段。在基于数字图像的信息隐藏技术研究中,信息隐藏区域的生成是关系算法性能的重要因素。信息隐藏区域的生成方法主要包括空间域生成法、变换域生成法以及空间域和变换域联合的生成方法。

空间域算法:作为空间域算法中出现最早、操作最简单且应用最广泛的算法,基于位平面分解理论的LSB算法可以直接替换的方式隐藏较大的数据量,刘红翼等提出的一种LSB算法具有容量大、运算量小的特点[2];刘文彬等提出的LSB隐写替换的消息定位方法则可以对此类算法进行检测[3];而IH2012的论文中,有学者运用假设检验理论和含秘载体的奇偶感知特性可有效地检测LSB算法所隐藏的隐秘信息[4,5],这些研究为藏文信息隐藏中涉及到关于此类算法的抗检测性研究提供了新的待改进方向。张焱等提出的像素值排序和赵彦涛等提出的直方图修改等空间域算法在沿用LSB直接替换的隐藏理念的同时,还提升了鲁棒性,因此也被广泛用于数字图像载体预处理[6,7];随后,杨春芳等提出了针对此类算法的检测方法[8],这也为针对此类算法抗检测性改进的研究提供了重要依据。此外,上述同类算法中的载体子区域划分思想、内容自适应思想等也对本项目基于载体结构特性建立空间匹配模型的机制提供了方法学上的有力支持[9-13]。

变换域算法:不同于空间域算法直接对载体的空间特性进行修改,变换域预处理方法以修改载体的频率参数来隐藏信息[14],因此算法的鲁棒性比空间域算法好。在此基础上,唐燕等又对隐秘信息的检测和恢复进行了研究和改进,实现了几乎无需原始参量的半盲提取[15]。尽管变换域算法不具备空间域算法容量大、运算量小和易操作等优势,但是变换域中的多小波理论因其同时具有对称性、短支撑性、二阶消失矩和正交性等特性成为了信号处理中有明显优势且较常用的方法,在前期研究中利用多小波方法将数字图像载体分块后作为嵌入区域,提高了算法的鲁棒性和不可见性[16,17],这种方法为在藏文信息隐藏研究中建立基于区域能量的阶梯性分布机制提供了一种研究手段。

混合域算法:较单独运用一种空间域或变换域生成隐藏区域并设计信息隐藏算法来看,基于空间域与变换域联合的信息隐藏算法可以兼有多种算法的性能优势。在基于空间域和变换域联合的信息隐藏算法中,空间域的作用体现在数据嵌入的具体操作方面,因为隐藏的实质就是在当前环境下的空间分量上进行数据修改,利用边缘像素值差分(Edged Pixel Value Differencing,EPVD)将载体换算为若干个像素块,以最大斜角的数据修改作为信息隐藏的具体方法[18];利用湿纸码和基于LSBM的双层隐写来对载体进行加1嵌入或减1嵌入[19];另外,国内外许多学者利用调色板理论进行数据嵌入[20,21]。而变换域在载体预处理中的主要作用是生成满足特定需要的信息隐藏环境(区域),主要包括变换后的系数分布以及n阶分量子图等。如对RSV颜色空间的V分量做DCT变换,分块后作为嵌入区域[22];利用视觉显著点技术确定跟踪窗(Regions of Interest,ROI),在ROI的DCT系数上嵌入隐藏信息,并指定某个ROI边缘地图脆弱性标识,嵌入到DWT变换后的含密图像中[23];前期研究中,研究人员利用自适应颜色迁移理论中lαβ域对颜色的控制力,消除了RGB颜色分量的强相关性,并结合GHM能量分区隐藏信息,在不可见性、嵌入信息量和鲁棒性方面均具有较好的表现[24]。

1.2 三维模型预处理技术研究综述

潘志庚等将基于三维模型的信息隐藏预处理方法主要分为空间域算法和变换域算法[25]。这也这为藏文信息隐藏研究提供了新的思路和方法。

空间域算法:空间域算法通常具有易嵌入和盲提取的特点,如直接置换载体的几何信息来隐藏数据是三维模型载体信息隐藏最原始、最直接的方法[26]。为改进此类算法的鲁棒性,引入仿射不变量是有效的措施,如利用具有连续解析性的仿射不变量优化需要置换的顶点[27]、 将稳态锚点通过三角垂心编码解析为聚类元素从而嵌入隐秘信息[28]。此外,基于主元分析的算法也有助于改善空间域算法的鲁棒性,例如可根据主元分析(Primary Component Analysis,PCA)来确定模型的关键位置作为鲁棒区域,并用网格分割法改进鲁棒性和不可见性[29-32]。这类算法也为藏文信息隐藏从载体结构特性进行解析和预处理提供了理论依据。改进型的空间域算法多针对鲁棒性或容量性有所提升,如基于连续解析性的体积矩的盲算法,改善了之前算法对连通性攻击的鲁棒性[33];通过重排顶点和面片在网格文件中的表示信息,利用表示域内的信息进行嵌入使算法具有良好的不可见性和大容量性[34],但对相似变换以外的攻击不具有鲁棒性。

变换域算法:三维模型预处理的变换域方法大多利用频谱分析将模型信息参数化[35],对参数进行少量修改后以隐藏信息,其中,基于小波变换的算法可以对规则和非规则网格模型进行小波域参量修改以嵌入较多信息[36]。理论上,变换域算法比空间域算法鲁棒性强,但由于三维模型顶点的天然无序性和不规则性,对其进行频谱分析难度大,导致变换域算法实用性目前较低,因此空间域算法依然是比变换域算法更有实用价值的研究方向[37]。

2 藏文信息隐藏技术研究现状

目前反映藏文信息处理技术最新进展的文献较少,综合以已有的研究成果及相关研究文献,藏文信息处理可划分为藏语信息处理和藏字信息处理两个层次[38,39]。藏语信息处理包括机器翻译、信息检索、信息提取、文本校对、文本生成、文本分类、自动摘要以及藏文字识别和语音识别的后处理等等;而藏字信息处理包括操作系统以及编码字符集、输入技术、字形描述与生成、存储、编辑、排版、字频统计和藏字属性库等。这些研究基础对藏文信息隐藏技术的发展至关重要,是基于载体预处理的藏文信息隐藏的主要技术来源。鉴于藏文的独特构造,以及藏文的特点,目前对藏文秘密信息的预处理技术一般指置乱和加密算法的选择[40],而置乱使信息变得杂乱无章难以辨认,可以起到加密与改变信息嵌入特性的作用。可用于藏文信息隐藏的置乱算法主要有Arnold变换、幻方矩阵、Gray码变换、混沌序列等方法[41]。其中,Arnold变换算法简单且置乱效果显著,使有意义的数字图像变成像白噪声一样的无意义图像,实现了信息的初步加密和信息结构的调整,在嵌入信息为数字图像时可以很好的应用[42]。幻方置乱的思想基于查表思想,基于数字图像的幻方置乱可降低幻方置乱阶数或以图像块进行置乱,实现置乱效果与系统开销的平衡[43]。Gray是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求反非常方便[44]。混沌的优势在于对初始条件的极端敏感和轨迹在整个空间上的遍历性。根据经典的Shannon置乱与扩散的要求,这些独特的特征使得混沌映射成为信息隐藏嵌入算法的优秀候选[45]。上述传统的置乱算法一般用于正方形图像处理,而经过改进的Arnold算法可直接用于宽高不等的矩形图像而不必进行正方形扩展[46],这也将是藏文信息隐藏技术所采用的主要置乱方法之一。

3 藏文信息隐藏技术的研究目标、研究内容和要解决的问题

3.1 研究目标

面向藏文安全通信的高性能信息隐藏算法是目前藏文信息隐藏技术的主要目标,包括提出性能出色的、适合藏文通信要求的信息隐藏算法;提出一种具有普适性的高性能信息隐藏嵌入区域生成原则和嵌入规则:

(1) 基于数字图像的藏文信息隐藏算法:提出至少两种基于数字图像的藏文信息隐藏算法,算法将同时满足面向藏文安全的信息隐藏应用所要求的高不可见性(PSNR≥34.90dB)、强鲁棒性(抗击大约69%以下的JPEG2000压缩、35%以下的剪切及常见滤波与加噪)、大容量性(基于彩色图像的信息隐藏信息嵌入率≥18%)以及高感知篡改性(检测隐藏数据是否被篡改能力≥95%)。

(2) 基于三维模型的藏文信息隐藏算法:提出至少一种基于三维模型的藏文信息隐藏算法。算法将同时满足面向藏文安全的信息隐藏应用所要求的高不可见性(RSNR≥69.94dB、En≥70%)、应对一般攻击的强鲁棒性(抗击大约0.10%随机加噪、50-times Laplacian平滑、50%均匀重网格化以及均匀简化等)、大容量性(相对理想的RSNR,嵌入率≥29%)以及低复杂度(根据载体模型几何信息量而变化)。

(3) 普适性信息隐藏嵌入区域生成原则和嵌入规则:利用载体图像能量和复杂度特性,提出基于能量性和复杂度的藏文信息隐藏区域生成原则和嵌入规则,将适应于所有对数字图像处理后有能量区别的图像处理方法,指导设计者利用能量与鲁棒性、复杂度与不可见性的对应关系,研究出同时满足不可见性和鲁棒性的信息隐藏算法。

3.2 研究内容

(1) 藏文信息隐藏区域生成原则与规则研究:数字图像信息隐藏技术的研究核心集中在隐藏区域和嵌入规则的设计上,藏文信息隐藏算法的设计方法和思路就是在选定藏文信息隐藏区域以及制定好信息隐藏规则后,按照一定的顺序将两者进行合理的组织,所以研究藏文信息隐藏区域生成原则以及信息隐藏规则是重点。

(2) 基于数字图像的藏文信息隐藏算法研究:隐藏算法是基于数字图像的信息隐藏技术的研究核心,需按照嵌入域进行划分,对基于空间域和基于变换域的信息隐藏算法分别进行研究,提出单独基于空间域、单独基于变换域以及两者联合应用的数字图像信息隐藏算法。

(3) 基于三维模型的藏文信息隐藏算法研究:首先对三维模型的结构特性和能量特性进行研究,再根据载体模型的特性找出对应的预处理方法。在研究基于空间域和基于变换域的信息隐藏算法的基础上,提出改进型的三维模型信息隐藏算法。主要用于提升载体有效嵌入容量和降低载体视觉失真度。

(4) 载体与藏文秘密信息的一致化方法研究:基于上述研究基础,生成结构和能量差异化子区域,再将藏文秘密信息按照拼音属性进行解析生成信息序列。再利用优化算法使得预处理后的载体信息和藏文秘密信息的解析编码获得最大一致化,从而提高算法性能。

3.3 需解决的关键问题

综合已有的研究,在藏文信息隐藏技术方面,目前需要解决的问题有以下几个方面:

(1) 信息隐藏区域与嵌入规则设计:在具有什么性质的区域内应用什么样的规则进行藏文信息隐藏才可以解决“不可见性与鲁棒性的对立、容量性与抗分析性的对立”问题,是藏文信息隐藏研究领域的关键技术之一。需找出隐藏区域的性质与信息隐藏性能的关系,提出面向藏文信息传输的信息隐藏区域选择的原则与方法;给出在具有具体性质的嵌入区域中的藏文信息隐藏嵌入规则的制定原理和方法;提出大量的藏文信息数据转换思想与方法,以提供形式多样的信息隐藏嵌入规则。

(2) 数字图像载体预处理方法:①多小波理论在载体预处理中的应用。对于数字图像经过多小波变换后所具有的特殊性质,找出多小波变换后数字图像所具有的能量特性与基于数字图像信息隐藏算法性能之间所遵循的规律已有学者进行研究。②颜色空间的性能分析与应用选取。RGB、CMYK、lαβ、YUV以及HSx颜色空间,应用方法以及应用各有优劣势。该技术的应用难点在于为颜色空间在藏文信息隐藏的应用提出完备的应用方案,因为这些颜色空间在藏文信息隐藏技术中的应用目前非常少,应用优劣还处于实验验证阶段,没有理论验证的支持。

(3) 三维网格模型载体预处理方法:骨架抽取和内切球解析技术在藏文信息隐藏算法中的应用。这种方法不涉及顶点数量及坐标的改变和拓扑关系的修改。难点在于寻找一个理想的仿射不变量作为辅助参数以弥补算法对缩放攻击的脆弱性。

(4) 藏文的置乱与遗传优化算法:有的藏文字处理系统把藏文看成是由30个辅音、4个元音、3个上加字、5个下加字共42个藏文字符组成的,而有的则认为由其他数量的字符组成。基于对藏文中加字对发音的影响规律的研究,利用字符与二进制码的解析规则和置乱与优化技术对信息置乱,达到隐藏信息与载体信息的最大匹配度也是一个技术难点。

4 藏文信息隐藏技术研究的新方法

(1)利用载体图像能量和复杂度特性,提出基于能量性和复杂度的藏文信息隐藏区域生成原则和嵌入规则。高能量与强鲁棒、高复杂度与高不可见性的对应关系,从根本上解决藏文信息隐藏算法中不可见性和鲁棒性的对立问题,为面向藏文通信安全的信息隐藏算法的设计给出一种普适性方法。

(2)根据数字图像信息隐藏嵌入区域的生成原则和嵌入规则,提出新的、高性能的数字图像的藏文信息隐藏算法。算法利用lαβ等颜色空间转换以及多小波对载体图像进行的处理,生成具有不同能量特性的嵌入区域,从频率域上满足藏文信息隐藏的应用要求;通过对载体图像进行颜色迁移、矢量解析以及环形处理,从数字图像的空间结构上满足藏文信息隐藏的应用要求。

(3)提出满足三维模型结构特性和能量特性的藏文信息隐藏算法。算法利用局部高度理论和均值偏移理论对载体模型进行预处理,生成具有不同能量特性的嵌入区域,从频域上满足信息隐藏的应用要求;通过对载体图像进行骨架抽取、内切球解析,从空间结构上满足藏文信息隐藏的应用要求。

参考文献

[1]陈玉忠,俞士汶. 藏文信息处理技术的研究现状与展望[J]. 中国藏学. 2003(4):97-107.

[2]刘红翼,王继军,韦月琼,等.一种基于LSB的数字图像信息隐藏算法[J].计算机科学,2008, 35(1):100-102.

[3]刘文彬,刘九芬.一种针对LSB替换隐写的消息定位方法[J].信息工程大学学报,2013,14(6):641-646.

[4] R. Cogranne, C. Zitzmann, F. Retraint,et al. Statistical Detection of LSB Matching Using Hypothesis Testing Theory[C].In: Proceedings of the 14th International Conference on Information Hiding,2013.

[5] J. Fridrich, J. Kodovsky. Steganalysis of LSB Replacement Using Parity-Aware Features[C]. In: Proceedings of the 14th International Conference on Information Hiding, 2013.

[6] 张焱,张敏情,瓮佳佳.基于直方图对的大容量信息隐藏算法[J].计算机应用研究,2013,30(7):2108-2111.

[7] 赵彦涛,李志全,董宇青.基于排序和直方图修改的可逆信息隐藏方法[J].光电子.激光,2010,2(1):102-106.

[8] 杨春芳,刘粉林,罗向阳.基于相对熵的直方图差异与JPEG隐写的定量分析[J].计算机研究与发展, 2011,48(8):1563-1569.

[9] 熊志勇,王江晴.基于差分直方图平移的彩色图像可逆信息隐藏[J].四川大学学报,2011,43(3): 81-89.

[10] Z.H. Wang, C.F. Lee, C.Y. Chang. Histogram-shifting-imitated reversible data hiding[J]. The Journal of Systems and Software, 2013,86(2): 315-323.

[11] X.L. Li, J. Li, B. Li, et al. High-fidelity reversible data hiding scheme based on pixel-value-ordering and prediction-error expansion[J].Signal Processing,2013, 93(1): 198C205.

[12] X.T. Wang, C.C. Chang, T.S. Nguyen, et al. Reversible data hiding for high quality images exploiting interpolation and direction order mechanism[J]. Digital Signal Processing, 2013,23(2): 569C577.

[13] Nabin Ghoshal, Anirban Goswami, H. S. Lallie. Adaptive Steganography for Image Authentication Based on Chromatic Property[C]. In: Proceedings of the International Conference on Frontiers of Intelligent Computing: Theory and Applications (FICTA),2013.

[14]和红杰,张家树.对水印信息篡改鲁棒的自嵌入水印算法[J].软件学报,2009,20(2):437-450.

[15] 唐燕,闾国年,殷奎喜.规范类正交矩阵的信息隐藏算法[J].东南大学学报,2013,43(1):45-49.

[16] T. Zhang, D.J. Mu, S. Ren, et al. Study of reversible information hiding scheme based on CARDBAL2 and DCT[C].Proceedings-2010 3rd IEEE International Conference on Broadband Network and Multimedia Technology (IC-BNMT2010),2010.

[17] T. Zhang, D.J. Mu, S. Ren. A Confidential Communication-Oriented Information Hiding Algorithm based on GHM multi-wavelet and DCT[J].Applied Mathematics & Information Sciences,2013, 7(5): 1803-1807.

[18] H.B. Kekre, P. Halarnkar, K. Dhamejani. Capacity increase for information hiding using maximum edged pixel value differencing[J].Communications in Computer and Information Science,2011, 145(1): 190-194.

[19] 奚玲,平西建,张韬.整数小波域湿纸码自适应信息隐藏算法[J].计算机辅助设计与图形学学报,2011,2(7):1217-1223.

[20] H. Zhao, H.X. Wang, M.K. Khan. Steganalysis for palette-based images using generalized difference image and color correlogram[J].Signal Processing, 2011,91(11): 2595-2605.

[21] A. Lamgunde, A. Kale. Palette based technique for image steganography[J].Communications in Computer and Information Science, 2011,125(2): 364-371.

[22] Y.J. Qiu, H. T. Lu, N. Deng, et al. A robust blind image watermarking scheme based on template in Lab color space[C].2011 International Conference on Computing, Information and Control(ICCIC 2011),2011.

[23] L.H. Tian, N.N. Zheng, J.R. Xue, et al. An intergrated visual saliency-based watermarking approach for synchronous image authentication and copyright protection[J].Signal Processing:Image Communication,2011,31(2): 9-64.

[24] 任帅,张|,慕德俊,等.基于GHM多小波与自适应颜色迁移的信息隐藏算法研究[J].西北工业大学学报,2010,28(2):64-269.

[25] 潘志庚, 孙树森, 李黎.三维模型数字水印综述[J].计算机辅助设计与图形学学报,2006,18(8):1103-1110.

[26] S.H. Lee, K.R. Kwon. VRML animated model watermarking scheme using geometry and interpolator nodes[J].Computer-Aided Design,2011,43(8): 1056-1073.

[27] M. Luo, A.G. Bors. Surface-preserving robust watermarking of 3-D shapes[J].IEEE Transactions on Image Processing, 2011,20(10): 2813-2826.

[28] L. Du, X.C. Cao, M.H. Zhang, et al. Blind Robust Watermarking Mechanism Based on Maxima Curvature of 3D Motion Data[C]. In: Proceedings of the 14th International Conference on Information Hiding,2013.

[29] Z.Q. Yao, R.J. Pan, F.H. Li, et al. A mesh partitioning approach for 3D mesh oblivious watermarking[J].Chinese Journal of Electronics, 2010,19(4): 651-655.

[30] S. Cai, X.K. Shen. Octree-based robust watermarking for 3D model[J].Journal of Multimedia, 2011,6(1): 83-90.

[31] S. Cai, X.K. Shen. OTP-W:Octree partition-based 3D mesh watermarking[C].Second International Workshop on Education Technology and Computer Science,2010.

[32] 廖学良,王屏.一种新的三维模型水印嵌入空域算法[J]. 计算机学报,2008, 31(10): 1848-1856.

[33] K. Wang, G. Lavouéa, F. Denisb, A. Baskurt. Robust and blind mesh watermarking based on volume moments[J].Computers & Graphics,2011, 35(1): 1-19.

[34] I.L. Chung, C.M. Chou, D.C. Tseng. Hiding data in triangle meshes by rearranging representation order[J].International Journal of Innovative Computing, Information and Control,2011, 7(6): 3419-3435.

[35] 胡敏,刘辉.基于特征点的自适应三维网格数字水印算法[J].合肥工业大学学报(自然科学版),2010,33(1):55-59.

[36] M. Hachani, A.Z. Ouled, S. Bahroun. Wavelet based watermarking on 3D irregular meshes[C]. 19th IEEE International Conference on Image Processing(ICIP),2012.

[37] Y.P. Wang, S.M. Hu. Optimization approach for 3D model watermarking by linear binary programming[J].Computer Aided Geometric Design, 2010,27(5): 395-404.

[38]陈力为. 中文信息处理丛书序言[M].北京:清华大学出版社,2000.

[39]俞士汶,朱学锋,贾玉祥. 汉语隐喻自动处理研究之概况[C].第四届文学与信息技术国际研讨会,2008.

[40] 谭良,吴波,刘震,等.一种基于混沌和小波变换的大容量音频信息隐藏算法[J].电子学报,2010,38(8):1812-1819.

[41] 丁玮,闫伟齐,齐东旭.基于置乱与融合的数字图象隐藏技术及其应用[J].中国图象图形学报,2000,5(8):644-649.

[42] 田云凯,贾传荧,王庆武.基于Arnold变换的图像置乱及其恢复[J].大连海事大学学报:自然科学版,2006,32(4):107-109.

[43] 彭万权,张承畅,冯文江,等.多阶幻方卷积码的构造及译码[J].电子学报,2013,41(1):123-130.

篇3

中图分类号:TN919.81 文献标识码:A 文章编号:1004373X(2008)1613003

Research on Video Object Shape Error Concealment Technology

FU Xiang,GUO Baolong,YAN Yunyi

(ICIE Institute,School of Electromechanical Engineering,Xidian University,Xi′an,710071,China)

Abstract:Shape information of Video Object(VO) is most important for correctly decoding.Shape error should be concealed to decode texture data and motion data correctly.Traditional technologies of shape error concealment are summarized in this paper,comparison and discussion are described.When the shape data does not change that much in consecutive time instants,the temporal methods outperform the spatial ones.The spatial methods are the only choice when the previous frame does not contain a shape tat is related to the current shape.Ideally,the decoder should have access to both types of techniques and choose between them or combine them,according to the situation at hand.Finally,the possible research directions of shape error concealment are pointed out.

Keywords:video object;binary shape information;error concealment;spatial method;temporal method

MPEG4标准对每个Video object (VO)单独编码,每个VO由形状信息、运动信息和纹理信息3类信息来描述[1]。由于编码的VO流对信道错误极其敏感,标准规定,如果是纹理部分出错,则只有纹理信息丢失,运动和形状信息可以由周围的信息恢复;如果是形状部分出错,则整个数据包(包含形状、纹理和运动信息)均丢失[2];并且现有的纹理和运动信息错误隐藏技术都是在正确获得形状信息的基础上得到的[3,4],可见VO形状错误隐藏的重要性。

在MPEG4中,VO的形状信息由二值alpha平面表示[5],用黑表示该像素点属于VO,而白表示该点属于背景。形状错误隐藏算法可以分为基于时域[69]和基于空域[4,9,10]的算法。时域方法可以利用前一帧的形状信息来隐藏当前帧丢失的信息,空域算法只利用当前帧的信息进行错误隐藏,适用于帧间场景变化较大,如场景变换的情况;空域算法也是静止图像的错误隐藏的惟一选择;一般情况下帧间变化较小,基于时域的方法可以得到更加好的隐藏结果。

1 空域形状错误隐藏算法

1.1 传统方法

传统空域形状数据隐藏方法主要有3种[11]:最大后验估计法、基于模糊理论的方法以及Bézier曲线拟合法。文献[11]的仿真实验和性能比较表明,Bézier曲线拟合法的隐错性能较好。Chen[9]和Luis[10]分别采用二次和3次Bézier曲线拟合丢失轮廓,由于3次曲线的连续性和平滑性都好于二次曲线,因此Luis算法性能优于Chen算法,本文仅介绍和分析Luis基于3次Bézier曲线的算法。

Luis算法首先得到二值alpha平面的轮廓曲线,由于发生错误,轮廓曲线会变得不完整;然后采用Bézier曲线插值轮廓曲线的丢失部分。其关键技术如下:

(1) 轮廓断点配对。将轮廓曲线的偶数个断点两两配成一对,以便在下一步操作中将每一对断点连接起来,从而形成完整的轮廓曲线。Luis算法利用如下公式进行断点配对:F=∑i|δAi|+|δBi|, i∈P(1) 其中δA和δB如图1所示,表示2个断点A和B处轮廓曲线的切矢与AB连线间的夹角;P表示丢失区域内所有可能的断点配对的集合,选择使代价函数F为最小的配对组合,这种配对方法基于以下假设,即对象的轮廓方向变化较慢。

(2) 确定三次Bézier曲线的4个控制点。生成1段3次Bézier曲线需要4个控制点,需要连接的1对轮廓断点作为首尾控制顶点,因此需要在首尾控制点间增加两个附加控制点。Luis算法首先采用三次参数曲线拟合丢失轮廓两侧的已知轮廓,如图1所示中的SA和SB,减小SA和SB的长度,直到拟合曲线与原始曲线间的最大均方距离小于给定阈值。

图1 Luis算法示意图然后,以SA为例,利用式(2)确定SA对应的4个Bézier曲线控制点:[p1 p2 p3 p4]=

dx13cx+dx13bx+23cx+dxax+bx+cx+dx

dy13cy+dy13by+23cy+d.yay+by+cy+dy(2)其中ax,bx,cx,dx为拟合SA的3次曲线的系数;p1和p4为SA的2个端点;p4即为图1中的点A。为了使错误隐藏的轮廓曲线满足C

(3) 根据确定的控制点,用3次Bézier曲线连接丢失轮廓。

1.2 基于水印的方法

有别于传统方法,文献[4]提出一种基于水印的VO空域形状错误隐藏算法,将形状信息或形状变化作为水印信息嵌入到人们关注较少的背景对象中,该方法对于形状信息严重丢失的情况,修复效果仍然很好。

但是,根据MPEG4的码率分配原则,在网络带宽有限时,用较多的码率传输感兴趣的视频对象,用较少的码率传输人们关注较少的背景对象,甚至不传输背景对象。因此,将形状信息作为水印嵌入背景对象中的方法不实用。

2 时域的形状错误隐藏算法

2.1 基于块的形状错误隐藏方法

基于块的方法常用于纹理信息的错误隐藏,后来被扩展到形状错误隐藏中来。当1个块发生错误时,解码器试图从前一时刻复制一个块作为错误块的替代。常用的基于块的方法共有3种形式:

(1) 简单地复制前一时刻相同位置的形状信息;

(2) 利用误差块上方块的运动矢量,从前一时刻寻找错误块的替代,对错误块进行补偿;

(3) 利用错误块周围正确解码的块,估计错误块的运动矢量,根据运动矢量利用前一帧的信息对错误块进行运动补偿。

显然,第(3)种方式得到的错误隐藏效果较好,与此类似,文献[9]中提出一种称为WSM (Weightd Side Matching)的方法,方式(3)中的方法利用错误块周围的16×16完整块进行运动估计,而WSM法则利用错误块周围4个块的一半加权后进行运动估计,即上下取8×16的块而左右取16×8的块,离丢失块越近的行(或列)分配的权值越大。最后得到一个运动矢量,以此对丢失形状进行错误隐藏。

为了克服运动补偿形状差错掩盖法对局部运动的局限性,文献[7]中提出整体运动补偿与局部修正相结合的时域形状错误隐藏算法。首先对于已知轮廓上的每一点,利用块匹配的方法找出其运动矢量,然后求出alpha平面的全局运动矢量,对当前平面进行全局运动补偿。最后利用错误块周围的已知信息,利用块匹配的方法寻找错误块的局部运动矢量,对其进行局部修正。

2.2 基于轮廓的错误隐藏方法

基于块的方法对单个块丢失的情况可以取得较好的错误隐藏效果,当多个连续块丢失时,效果则不太好,而基于轮廓的方法可以克服上述问题[8]。

Salama等[6]将VO全局运动参数嵌入视频流,在解码端,如果检测到当前帧VO形状需要错误隐藏,则利用码流中嵌入的运动参数,将当前轮廓映射到参考轮廓,然后隐藏错误的轮廓信息。这种方法隐藏效果较好,但它会使码率增加5%,而且其通用性不好,必须要解码器和编码器都支持嵌入了运动参数的编码格式。文献[8]中的MC (Motion Compensated)算法同样基于轮廓,MC算法不增加码率,通用性好,适用于丢失多个块的情况,是时域形状错误隐藏效果较好的方法。

MC算法首先计算当前轮廓上每个点的运动矢量,每个轮廓点的运动矢量v始于前一帧的轮廓点,指向当前帧对应的轮廓点。设当前帧有N个轮廓点,则这些轮廓点的运动矢量组成的运动矢量场应该满足:v.*1,v.*2,…,v.*N=argminv1,v.*2,…,vN∈V1×V2×…×VN∑Nj=2

vj-vj-1.2+α∑Nj=1vj.2(3)其中vj是从参考轮廓点指向当前轮廓点j的运动矢量;Vj是点j所有可能的运动矢量组成的集合。通过计算式(3)的最小值,可以得到2个轮廓间的最优匹配矢量场,即2轮廓间最平滑的矢量场,如图2(a)所示。

将当前轮廓与参考轮廓匹配后,可找到当前轮廓丢失段在参考轮廓上的对应部分,将该对应轮廓段映射到当前轮廓丢失部分,每个点映射的运动矢量vm可通过线性插值求得:vm=M-mM-1vstart+m-1M-1vstop(4)其中vstart和vstop分别表示轮廓丢失段的起始点和终止点与参考轮廓匹配时求得的运动矢量,如图2(a)所示;M是参考轮廓上对应于丢失轮廓的总点数;m表示当前要隐藏的点;当m从1变到M,即完成隐藏过程,隐藏后的轮廓如图2(b)。最后对隐藏的轮廓进行填充,得到隐藏的二值alpha平面,即VO的形状,如图2(c)所示。

图2 MC错误隐藏算法3 空域法和时域法的隐错性能比较

假设当前VO丢失一个包含轮廓的块,如图3(a)所示,其中灰色块表示丢失块。图3(b)是不完整轮廓,需要对其进行错误隐藏。图4(a)和图4(b)分别给出了MC算法得到的运动矢量场和隐藏结果。图5是空域法的隐藏结果,由图4和图5可看出,MC算法的隐藏结果更好地保持了VO的形状。

图3 视频对象发生错误不难看出,如果相邻VO间运动较大,对于MC算法,最平滑的运动矢量场无法映射当前形状到前一帧的相应部分,导致隐藏效果不理想甚至算法失败;而空域法只利用当前帧的信息,隐藏性能稳定,不受VO间的运动影响,这种情况下,只能选择基于空域的形状错误隐藏方法。

图4 MC算法隐藏结果图5 空域法隐藏结果4 结 语

相邻VO间运动较小时,时域法比空域法能更好地保持VO的形状;空域法只利用当前帧的信息,性能稳定,不受VO间的运动影响。当帧间变化较大时,时域法参考VO失去参考价值,在这种情况下,只能选择基于空域的形状错误隐藏方法。时域法需要图像匹配和运动补偿,一般计算量较大;空域法简单易实现。

可见,时域法和空域法各有利弊,一个好的解码器应能实现2种错误隐藏,根据具体情况选择或将两者相结合。在提高空域法的隐藏精度、提高时域法对帧间运动的鲁棒性及提高时域法的运算速度等方面,有待进一步研究。

参 考 文 献

[1]ISO/IEC JTC1/SC29/ WG11 N3908.MPEG4 video verification model version 18.0[S].

[2]Li X H,Katsaggelos A K,Schuster G M.A Recursive Shape Error Concealment Algorithm[C].Proceedings of International Conference on Image Processing,Rochester:IEEE,2002:177180.

[3]Wang Y,Wenger S,Wen J,et al.Error Resilient Video Coding Techniques\.IEEE Signal Processing Magazine Special Issue on Multimedia Communications over Networks,2000,17(4):6182.

[4]付炜,丁倩,孟维娜等.基于水印技术的MPEG4形状错误隐藏[J].现代电子技术,2007,30(11):7173,76.

[5]Shirani S,Erol B,Kossentini F.A Concealment Method for Shape Information in MPEG4 Coded Video Sequences\.IEEE Transactions on Multimedia,2000,2(3):185190.

[6]Salama P,Huang C.Error Concealemt for Shape Coding[C].Proceedings of International Conference on Image Processing,Rochester:IEEE,2002:701704.

[7]Luis D S,Fernando P.Temporal Shape Error Concealment by Global Motion Compensation With Local Refinement\.IEEE Transaction on Image Processing,2006,15(6):1 3311 348.

[8]Schuster G M,Katsaggelos A K.Motion Compensated Shape Error Concealment[J].IEEE Trans.Image Processing,

2006,15(2):501510.

[9]Chen M J,Chi C C,Chi M C.Spatial and Temporal Error Concealment Algorithms of Shape Information for MPEG4 video[J].IEEE Transactions on Circuits Systems for Video Technology,2005,15(6):778783.

[10]Luis D S,Fernando P.Spatial Shape Error Concealment for Objectbased Image and Video Coding[J].IEEE Transaction on Image Processing,2004,13(4):586599.

篇4

中图分类号:TP309.5 文献标识码:A 文章编号:1007-9599 (2012) 10-0000-02

目前,木马已经成为常见的网络攻击技术之一,对网络安全造成了严重的威胁。它具有攻击范围广、隐蔽性强等特点。本文主要针对木马的隐藏技术展开研究。

一、木马定义和特征

木马是指潜伏在电脑中,受到外部用户控制以达到窃取本机信息或控制权为目的的程序。其全称为特洛伊木马,英文叫做“Trojan horse”。它是指利用一段特定的程序(木马程序)来控制另一台计算机。木马通常有两个可执行程序:分别为客户端和服务端,即控制端和被控制端。植入被种者电脑的是“服务器”部分,而所谓的“黑客”正是利用“控制器”进入运行了“服务器”的电脑。一旦运行了木马程序的“服务器”以后,被种者的电脑就会有一个或几个端口被打开,黑客就可以利用这些打开的端口进入电脑系统,用户的个人隐私就全无保障了。木马的设计者采用多种手段隐藏木马以防止木马被发现。随着病毒编写技术的发展,木马程序采用越来越狡猾的手段来隐蔽自己,使普通用户很难发觉。

二、木马的功能

木马的主要功能有:

(一)窃取数据:仅仅以窃取数据为目的,本身不破坏损伤计算机的文件和数值,也不妨碍系统的正常办公。有很多木马有键盘记录功能,会记录服务端每次敲击键盘的动作,所以一旦有木马入侵,数据将很容易被窃取。

(二)篡改文件:对系统的文件有选择地进行篡改,对服务端上的文件有筛选的施行删除,修改,运行等一些系列相关操作。

(三)使系统自毁。利用的方法有很多:比如改变报时的钟频率、使芯片热解体而毁坏、使系统风瘫等。

三、木马的隐藏技术

(一)文件隐藏

木马程序植入目标系统后,就会改变其文件表现形式加以隐蔽,从而欺骗用户。隐藏保护木马文件的方式主要有以下几种:

1.捆绑隐藏

采用此隐蔽手段的木马主要有两种方式:插入到某程序中或者与某程序捆绑到一起,一旦程序运行木马也就会被启动,例如使用压缩的木马程序伪装成jpeg等格式的图片文件,木马程序就有了随时运行的可能。或者与常用程序捆绑到一起,一旦木马被点击就会加载运行,使用户难以防范,例如提供给用户捆绑了木马程序的解压软件,一旦用户运行该软件此程序便被释放并立即运行。

2.伪装隐藏

首先利用自身多变性的外部特征伪装成单独的文件,选定好文件名,然后修改文件系统的相关程序,最后设置文件属性为隐藏或者只读。这样,木马就伪装成了正常的文件或者非可执行文件。

3.替换隐藏

木马将自身的DLL替换为目标文件的同名DLL文件,备份原先的正常系统文件。经过这样的替换后,一般情况下,正常的系统文件,只有当具有木马的控制端向被控制端发出指令后,隐藏的程序才开始运行。

(二)进程隐藏

进程是程序运行在操作系统中的表现行为。主要有以下三种方法:

1.注册为系统服务

在WIN9X系列的操作系统中,在系统进程列表中看不到任何系统服务进程,因此只需要将指定进程注册为系统服务就可以在系统进程列表中隐形此进程。

2.使用HOOK技术

我们可以利用Windows系统提供的挂钩函数,使得被挂钩的进程在自己处理接收到的消息之前,先处理我们的消息处理函数。一般地,这个消息处理函数放在DLL中,让目标进程加载,这就达到了注入代码的目的。

所谓的HOOK技术是指通过特殊的编程手段截取Windows系统调用的API函数,并将其丢掉或者替换。例如在用户查看任务管理器时截取系统遍历进程列表的函数并进行替换,隐藏木马进程。

3.基于DLL的进程隐藏技术

DLL不会在进程列表中出现,是因为它不能独立运行,必须由进程加载并调用。一个以DLL形式的程序,通过某个已经存在进程进行加载,就可实现程序的进程隐藏。主要有以下两种方式:

在注册表中插入DLL。在Windows NT/2000/XP/2003中,有一个注册表键值HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsHKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs。当某个进程加载User32.dll时,这里面所有的DLL都将User32.dll利用LoadLibrary函数加载到该进程空间中。我们可以把自己的代码放在一个DLL中,并加入该键值,这样就可以注入到所有使用User32.dll的进程中了。

远程线程注入。在Windows系统中,每个进程都有自己专门的地址空间,一个进程不能创建本来属于另一个进程的内存指针。远程线程技术就是利用特殊的内核编程手段打破这种限制,访问另一个进程的地址空间,进而达到隐藏自身的目的。所谓远程线性插入DLL技术是指通过在另一个进程中创建远程线程的方法进入其内存空间,然后加载启动DLL程序。

文献[3]提出的基于DLL加载三级跳和线程守护的隐藏技术,增强了木马的隐蔽性与抗毁性。

(三)启动隐藏

木马的最大特点就是它一定要伴随系统的启动而启动,否则就失去了意义。木马启动的方式有以下几种:

免责声明:以上文章内容均来源于本站老师原创或网友上传,不代表本站观点,与本站立场无关,仅供学习和参考。本站不是任何杂志的官方网站,直投稿件和出版请联系出版社。
友情链接
发表咨询 加急咨询 范文咨询 杂志订阅 返回首页