Shellcode分段执行技术详解
需积分: 11 26 浏览量
更新于2024-09-25
收藏 398KB PDF 举报
"Shellcode是一种在程序漏洞利用中常见的恶意代码,用于在目标程序中执行攻击者指定的行为。分段执行技术是Shellcode的一种高级应用,尤其在内存空间有限的情况下,通过将Shellcode拆分成多个小片段(通常称为'eggs'),在内存中寻找这些片段并重组执行。这种技术由荷兰黑客SkyLined提出,他在微软工作期间是Alpha2/Alpha3这类字母数字型Shellcode编码器的开发者,后来转投谷歌。
Shellcode分段执行的核心在于设计每个代码段的结构。每个段包含四部分:字节大小(size)、索引值(index)、标记(marker)和数据内容(data)。标记是一个独特的3字节序列,用于egghunter代码在内存中识别和组合这些片段。egghunter首先遍历用户地址空间,查找标记的代码段,然后按照正确的顺序和位置重建原始的Shellcode。
在执行过程中,egghunter还会设置Structured Exception Handler (SEH)以应对可能出现的访问违例。如果发生访问违例,SEH会修改内存页地址以尝试跳过不可读取的部分,避免搜索过程中的中断。当搜索到的内存地址超过特定阈值(例如0x7FFFFFFF)时,表示已遍历完所有可能的内存区域,此时egghunter会终止搜索并执行重构后的Shellcode。
为了防止因异常处理递归导致栈空间耗尽,egghunter还包括一个`reset_stack`函数,该函数重置栈空间,恢复SEH链表,并继续搜索。具体实现包括清零EAX作为计数器,获取当前SEH链表的指针,遍历SEH结构,直到找到最后一个SEH或者处理完所有异常。
这个技术的使用增加了Shellcode的灵活性和适应性,使得攻击者能在各种复杂环境中有效地实施攻击。然而,这也对安全防御提出了新的挑战,需要更精细的内存管理和更强的异常处理机制来防范此类攻击。"
167 浏览量
364 浏览量
148 浏览量
228 浏览量
2023-07-18 上传
116 浏览量
152 浏览量
点击了解资源详情
216 浏览量
footoor
- 粉丝: 0
- 资源: 3
最新资源
- 高仿百思不得姐demo.zip
- 住宅楼户型设计CAD参考图纸图集(13)
- Java高效排序算法前五位
- 拖动滑块选择数字插件sider.jquery.js
- ClinicManagementSystem:为胸部诊所Borella开发基于Web的信息和管理系统。 提供改善胸部诊所信息收集和管理任务的方法
- 监控别人的行踪
- 互联网
- KeyListPerf.zip
- 网络商城B2C项目商业计划书
- rails_learnings
- 3D 曲线:本书第 7 章中描述的 3D 曲线示例:“CRC 标准曲线和曲面”-matlab开发
- Report-It-Android-Advanced:报告这是一个应用程序,允许其用户报告从垃圾到涂鸦和坑洼的各种问题。 该应用代表了Android高级课程的最终项目(面向程序员的Google Digital Workshop)
- Lojinha-de-lanche:Curso教授Macoratti
- 简单的论坛系统.zip
- awesome-joplin:Jo精选的乔普林主题和工具清单
- CAD墙面浮雕图块装饰素材1(11款)