getsehaddr.cpp
来自「这个程序很小」· C++ 代码 · 共 50 行
CPP
50 行
// GetSEHADDR.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
#include <conio.h>
#include <ctype.h>
void main()
{
__asm
{
mov eax, fs:[00000000h];//取得Exception Register的入口地址
loc_03:
cmp eax, 0ffffffffh
jz loc_14
mov ebx, eax
mov eax, [eax];//[eax]为pre//[eax+4]为handler
jmp loc_03
loc_14:
xor bx, bx
loc_6c:
cmp word ptr [ebx], 5a4dh;//MZ
jnz loc_81
mov eax, [ebx+003ch]
cmp dword ptr [eax + ebx], 4550h;//PE
jz loc_89
loc_81:
sub ebx, 00010000h
jmp loc_6c
loc_89:
}
/*
unsigned int sehaddr;
int *un;
HMODULE hk = LoadLibrary("KERNEL32.dll");
un = (int *)GetProcAddress(hk,"SetUnhandledExceptionFilter");
_asm{
mov eax,un
add eax,5
mov ebx,[eax]
mov sehaddr,ebx
}
printf("the top seh: 0x%x\r\n",sehaddr);
_getch();
*/
return;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?