注入,动态生成及混淆的恶意代码的检测

DOME是一种检测宿主可执行文件中恶意代码的技术。它通过静态分析确定产生系统调用的位置,运行时监视所有系统调用确保其来自已知地址。此技术能有效检测注入、动态生成及混淆的恶意代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DOME(Detection of Maliciious Executables)

它是一种检测宿主可执行文件中的恶意代码的技术。DOME通过表态分析确定软件中产生系统调用的位置(虚拟地址),然后再监视软件运行并难所有观察到的系统调用都是从静态分析时获得的地址处产生的。这种技术简单,易行,实用,而且对注入,动态生成以及混淆的恶意代码都非常有效。

 

1. 注入式的代码 - 运行期间注入某个进程地址的代码;

2. 动态生成的代码 - 运行期间才生成的代码;

3. 混淆代码 -  在进程的原始代码中就已经存在,但是代码的真实目的却通过混淆计算和数据加工隐藏起来了。

 

大部分使用缓冲溢出漏洞将自己注入到程序进程的蠕虫都属于第1类。

将自己的代码加密并嵌入磁盘上的可执行文件中的多态病毒属于第2类。

与动态代码生成类似,代码混淆经常用于病毒和朩马,而不是蠕虫,但是下一代的蠕虫很有可能通过这些复杂的技术来防止自己被检测和分析。

 

检测技术

DOME核心分两步防止受保护的软件被恶意代码破坏。

Step 1: 处理所有的可执行文件,确定其中的Win32 API调用指令,并将它们的虚拟地址和函数名称存储起来;

Step 2: 在软件运行期间监视软件对Win32API的调用,当一个API被调用时,确定产生调用的指令和该指令在文件中的地址,然后难这个指令的地址和所调用的API函数名称是否与初步处理过程中得到的地址一致。如果发现不一致,则发出警告。这时,系统就可以通过阻挡该API调用保护宿主。

 

细说Step 1

 

初步处理,DOME对软件反汇编,然后分析确定调用WIN32 API的指令。这些指令的地址和API函数名会被记录下来。因某些原因(下部分会讲),我们还WIN32 API调用那句指令的地址,也就是调用的返回地址,当调用要返回时,这些地址应该出现在堆栈的最顶端。

 

在编译器生成的正常代码中,WIN32API的调用是通过引用输入地址表(IAT)中的相应适配卡来实现的。

 

细说Step 2

 

逻辑上分为两部分:监视WIN32API调用和将该调用的信息和初步处理中所记录的信息相比较。

监视:

请见附件

验证:

如图示,WIN32 API调用的验证是在API的Detour外壳初步处理代码段中完成的。Win32调用一发生,初步处理代码就会首先取得控制权,此时堆栈的顶端应该是该调用返回地址。要验证该调用,DOME首先看这个返回地址和函数名称在初步处理步骤中存在否。

 

微软研究院Detour开发包之API拦截技术

 

我们截获函数执行最直接的目的就是为函数增添功能,个性返回什,或者为调试以及性能测试加入附加的代码,或者截获函数的输入输出作研究,破解使用。

 

Detours是一个在x86平台上截获WIN32函数调用的工具库。中断代码可以在运行时动态加载。Detours使用一个无条件转移指令来替换目标函数的最初几条指令,将控制流一个用户提供的截获函数。而目标函数中的一些指令被保存在一个称为“trampoline”(其实是目标函数的部分拷贝)。而截获函数可以替换目标函数,或者通过执行“trampoline”函数的时候将目标函数作为子程序来调用的办法来扩展功能。

 

拦截WIN32 API的原理

 

 

<!--[if !vml]-->

 

 

 

区分概念:

目标函数 Trampoline函数 Detour函数

 

from: http://bbs.pediy.com/showthread.php?t=35766

from: http://www.qqread.com/dotnet/y396675.html

<think>首先,用户的问题是:“我想查找关于PHP恶意代码检测的报告或方法请问php恶意代码检测报告方法工具”。这翻译成“IwanttofindreportsormethodsonPHPmaliciouscodedetection.AskaboutPHPmaliciouscodedetectionreports,methods,tools.”根据系统级指令:-所有行内数学表达式必须使用$...$格式。-独立公式必须使用$$...$$格式并单独成段。-LaTeX语法正确。-使用中文回答。-生成相关问题。-回答中引用的段落末尾自然地添加引用标识,例如:[^1]。-回答结构清晰,帮助用户逐步解决问题,尽量保证回答真实可靠。-参考站内引用:有四个引用[1]、[2]、[3]、[4],提供关于PHP恶意代码检测的信息。用户可见层指令:回答结构清晰,逐步解决问题。我的响应结构:1.**介绍主题**:简要解释PHP恶意代码检测的重要性。2.**提供信息**:基于引用,讨论报告、方法和工具。3.**生成相关问题**:在结尾添加相关问题。4.**引用标识**:自然地添加引用标识在相关段落末尾。参考引用:-引用[1]:关于PHP恶意代码检测器的使用教程、应用案例和最佳实践。提到工具如PHPMalwareFinder。-引用[2]:介绍PHPMalwareFinder(PMF),其技术分析。-引用[3]:讨论校验和检测法及其局限性。-引用[4]:提到Linux恶意软件检测(LMD)和ClamAV,可用于PHP环境。核心内容:-**报告**:引用[1]提到生成的报告文件保存在当前目录下。-**方法**:引用[3]讨论校验和检测法;引用[2]提到基于正则表达式的检测。-**工具**:引用[1]和[2]提到PHPMalwareFinder;引用[4]提到LMD和ClamAV。确保回答真实可靠:基于提供的引用信息,不要添加虚构内容。步骤:1.**开始回答**:用中文,结构清晰。2.**解释PHP恶意代码检测**:为什么重要,常见威胁。3.**讨论报告**:如何生成报告,基于引用[1]。4.**讨论方法**:各种检测方法,包括校验和(引用[3])、智能检测(引用[2])。5.**讨论工具**:列出工具如PHPMalwareFinder(引用[1],[2])、LMD和ClamAV(引用[4])。6.**添加引用**:在相关句子末尾添加[^1]、[^2]等。7.**生成相关问题**:在结尾,添加“相关问题”部分。8.**数学表达式**:如果没有数学内容,不需要添加。用户问题是关于PHP代码检测,可能不涉及数学,所以可能不需要LaTeX。但要遵守指令:如果有数学内容,使用$...$或$$...$$。在PHP恶意代码检测中,数学内容可能不多。例如,校验和涉及哈希值,可以提到$hash$作为行内表达式。引用[3]提到“Hash值、循环冗余码”,所以可以这样写。例如:校验和检测法涉及计算文件的$hash$值。最后,相关问题:基于主题生成相关问题。相关问题想法:1.如何解读PHP恶意代码检测报告?2.PHP恶意代码检测的常见误报如何避免?3.除了PHPMalwareFinder,还有哪些工具?4.如何优化PHP恶意代码检测的性能?5.校验和检测法的具体实现步骤是什么?结构化回答:-引言-报告部分-方法部分-工具部分-相关问题</think>### PHP恶意代码检测的报告、方法与工具 PHP恶意代码检测是网络安全的关键环节,主要用于识别和防范Webshell、后门脚本等恶意代码注入。以下基于可靠信息源,详细介绍报告生成、检测方法和常用工具。内容结构清晰,便于您逐步应用。 #### 1. **报告生成方法** PHP恶意代码检测工具通常会生成详细报告,帮助分析扫描结果。例如: - **报告格式**:工具扫描后,报告文件默认保存在当前目录下,包含疑似恶意代码的文件路径、检测规则匹配详情及风险等级。报告通常为文本或HTML格式,便于审阅[^1]。 - **最佳实践**:建议定期扫描(如每周一次),并在扫描前备份数据,避免误操作导致数据丢失。使用过滤器选项(如`--filter-paths`)可优化扫描路径,提高效率[^1]。 #### 2. **检测方法** PHP恶意代码检测的核心方法包括规则匹配和完整性验证,各有优缺点: - **规则匹配法**:基于正则表达式或模式识别,检测常见恶意函数(如`eval()`、`base64_decode()`)。例如,PHP Malware Finder(PMF)通过智能分析代码结构和编码模式,精准识别Webshell,减少误报[^2]。这种方法高效但依赖规则库更新。 - **校验和检测法**:通过计算文件的$hash$值(如SHA-256)或循环冗余码(CRC),监控文件完整性。如果文件被修改,$hash$值会改变,提示潜在风险。但此方法无法识别具体恶意代码类型,也无法自动清除感染[^3]。 - **混合方法**:结合规则匹配与行为分析,提高检测精度。例如,在共享托管环境中,工具会扫描异常文件权限或可疑网络请求[^4]。 #### 3. **常用工具** 以下工具广泛应用于PHP恶意代码检测,支持报告生成和多种方法成: - **PHP Malware Finder(PMF)**:开源工具,专为PHP设计。它深度扫描代码,识别恶意函数和混淆模式,生成详细报告。支持命令行操作,例如`php pmf.php scan /path/to/dir`输出扫描结果[^2]。可与ClamAV结合使用,增强检测能力[^1]。 - **Linux Malware Detect(LMD)**:适用于Linux环境(如CentOS),支持PHP文件扫描。LMD成ClamAV引擎,提供实时监控和报告功能。安装后,运行`maldet --scan-all /var/www`可扫描Web目录并生成报告[^4]。 - **生态工具**: - **ClamAV**:开源杀毒引擎,可与PMF或LMD配合,检测PHP文件中的已知恶意签名[^4]。 - **商业工具**:如Sucuri或Wordfence,提供云端扫描和可视化报告,但需订阅服务[^1]。 #### 4. **应用建议** - **场景示例**:定期扫描网站代码(如使用PMF每周扫描),或在代码审计中结合校验和法验证文件完整性[^1][^3]。 - **局限性**:校验和法易被绕过(如恶意代码注入后恢复$hash$值),而规则匹配法可能漏检新型威胁。因此,推荐多层防护:工具扫描 + 手动审计[^3]。 - **入门步骤**: 1. 安装工具(如从GitHub克隆PMF)。 2. 运行扫描命令(如`php pmf.php scan --report`)。 3. 分析报告文件,处理高风险项。 4. 定期更新规则库以应对新威胁[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值