HanDs
管理员

[Delphi文章] 判断API函数是否被Hook 





学习中请遵循国家相关法律法规,黑客不作恶。没有网络安全就没有国家安全

本站需要登陆后才能查看

实现一个判断API 是否被Hook的程序
要判断API是否被Hook了,其实质相当的简单,就是判断一下指定的API地址是否原始的。
于是将原文中的GetAPIAddress()函数直接拿来用一下,就有了这个函数

其中原始的MessageBox函数是直接从user32.dll中取得的
对于已经被Hook的API函数,要判断就应当从原始的出处再获取一次函数指针

procedure TForm1.Button1Click(Sender: TObject);
var
orgMsgBox: Pointer;
h: Cardinal;
begin
h := LoadLibrary('user32.dll');
orgMsgBox := GetProcAddress(h, 'MessageBoxA');
if GetAPIAddress(@MessageBox) <> orgMsgBox then
    // TODO: Hooked
else
    // TODO: NOT Hooked
FreeLibrary(h);
end;

判断API是否被Hook通常用来实现防破解,是一项相当有用的技术


学习中请遵守法律法规,本网站内容均来自于互联网,本网站不负担法律责任
判断 A PI
#1楼
发帖时间:2016-7-9   |   查看数:0   |   回复数:0
游客组
快速回复