一个相当理论的问题:假设内存中有恶意软件。该恶意软件的目标是检测合法应用程序是否要删除内存内容。
如果被识别,恶意软件会将尚未删除的部分复制到已被删除的其他位置,从而有效地逆转删除过程。
我的问题是:恶意软件如何注意到启动了删除操作。恶意软件能否以某种方式识别删除过程的地址?
其中一个考虑删除是用常数值(0或1)覆盖现有内存,删除一个大文件应该降低内存内容的熵。但是,我认为这不是一个合理的方法。
一个相当理论的问题:假设内存中有恶意软件。该恶意软件的目标是检测合法应用程序是否要删除内存内容。
如果被识别,恶意软件会将尚未删除的部分复制到已被删除的其他位置,从而有效地逆转删除过程。
我的问题是:恶意软件如何注意到启动了删除操作。恶意软件能否以某种方式识别删除过程的地址?
其中一个考虑删除是用常数值(0或1)覆盖现有内存,删除一个大文件应该降低内存内容的熵。但是,我认为这不是一个合理的方法。
有更多可见的“仅内存恶意软件”的实例,我认为从实际的角度来看,你会让自己发疯,试图在大海捞针中找到它。你可能会寻找什么?Page_Execute_ReadWrite调用?互斥体?不仅是那个问题(需要寻找),而且当恶意软件开始与其他进程挂钩时,您会看到很多与合法进程相冲突的问题被欺骗做某事(误报)以及尝试一致地分析运行(更改) 内存调用、例程、子例程、打开、关闭等
所以你问:“恶意软件怎么会注意到删除操作已启动”,我提出:“这会有所不同,每个恶意软件编写者都是不同的,永远不可能有静态方法来做到这一点。” 攻击者可以链接多个变量以确保它们始终运行,而不必担心是否有人会删除它。例如:
(伪代码)
home=c:\Users\someone\appdata\hidden_folder\here
if [ $home >= 0 ]
then
call this other {app, dll, cab, zip, etc}
run other
fi
“检查我是否存在,如果我不打开什么东西让我回家”
这将存在于另一个最小应用程序/调用中的活动进程之外。无需将其编程到恶意软件本身中。有点像滴管。滴管不是恶意软件本身,只是达到目的的一种手段(出去下载恶意文件)。