?? 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 + -