(新型病毒都学会了用进程来隐藏自己),有谁知道这句话说的是什么意思?最好能解释的详细点。
展开全部
根据题干中的“进程”——如果你指的是计算机病毒的话,那么一种简单的理解是注入技术。
A病毒先把自己整个注入到系统服务进程中,例如csrss.exe。然后它自身带有不停向某个文件目录复制自己的功能(或是先检测,被删除后再复制自己)。
于是你就能看到一个目录中,你删除一个文件,突然它又跳了出来,如此反复。。。
这种隐藏根据细节的不同有容易被检测的,也有难以被检测的。
更多追问追答
追问
(病毒先把自己整个注入到系统服务进程中),这句话我没理解。程序执行不都是一次性的将完整的程序装入内存的吗?你说的“注入”是什么意思?
追答
病毒的设计者让病毒在系统服务进程中模拟可执行文件加载的过程。
以Windows为例,首先你要知道一个可执行文件的本质是什么——是PE结构为代表的所有模块(PE模块可以是exe文件,dll文件和驱动.sys文件等文件,它是一种通用格式、类似linux上的ELF)。
然后你要了解PE在双击时是如何真正执行的。这个简单来说可以分为四步:
1.在系统内核层面创建内核对象(结构体)
2.把硬盘上的静态文件二进制数据加载到内存中
3.将PE默认静态状态下的文件对齐粒度转化为内存对齐粒度并按照不同情况修正PE中的关键数据结构。
4.在PE格式中规定的入口处设置线程让进程真正开始运转(没有线程的进程可以说不算是真正运行的进程)
上面四步看看就好,需要大量相关基础知识才能理解。
知道这四步后只要用一个程序把另一个程序或者该程序自己当前已经存在在内存中的整个文件模块全部通过函数写入系统服务进程中并进行相应设置就能实现“让一个进程在其他进程中运行”。
这只是注入技术中的一种,在Windows系统的3环注入中算是稍微复杂点的。我把它称为动态内存写入注入法。
当然实际要研究注入就会发现比这复杂的多——从注入的种类到注入的手法包括高级规避技术等等。例如上述的方法指的是一种模块注入——只是我没有注入DLL,而是注入exe。还有一些方法不注入整个文件模块,只注入一小段代码——类似这种都属于shellcode注入。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询