📄 getsehaddr.cpp
字号:
// 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -