ShellCode加载 - SEH机制
1、SEH异常处理
- SEH:是 Windows 的一个机制,它允许程序员为特定的程序错误和异常定义自定义处理程序。
- 在C++中,可以使用
_try
、_except
和_finally
关键字来实现SEH异常处理。_try
块包含可能引发异常的代码;_except
块包含处理异常的代码;而_finally
块包含在任何情况下都应执行的代码,无论是否发生异常
1.1、SEH加载shellcode
#include <stdio.h>
#include <windows.h>
// 这只是一个示例 shellcode,该 shellcode 会触发 MessageBox
char shellcode[] = "\x90\x90..."; // NOP + your actual shellcode here
void exception_trigger() {
__asm {
int 3 // 产生一个断点,触发异常处理程序
}
}
int main() {
__try {
printf("Triggering SEH...\n");
exception_trigger();
}
__except (1) { // 这是 SEH 的部分,在异常发生时会执行此代码
void (*func)();
func = (void (*)()) shellcode; // 指定 shellcode 地址为我们的函数指针
func(); // 执行 shellcode
}
return 0;
}
版权所有:Ljierui'Blog
文章标题:ShellCode加载 - SEH机制
文章链接:https://fuckdog.org/post-27.html
本站文章均为原创,未经授权请勿用于任何商业用途
文章标题:ShellCode加载 - SEH机制
文章链接:https://fuckdog.org/post-27.html
本站文章均为原创,未经授权请勿用于任何商业用途
推荐阅读: