吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7325|回复: 13
收起左侧

[其他转载] Hook Api lib 0.5

[复制链接]
Hmily 发表于 2009-9-7 19:03
/*
//////////////////////////////////////////////////////////////////////////
HookApi 0.5

thanks to xIkUg ,sucsor

by 海风月影[RCT] , eIcn#live.cn
2008.04.15

//////////////////////////////////////////////////////////////////////////
//更新内容
2008.04.15 0.5

1,重新写了Stub,换了一种模式,使hook更加自由,将hookbefore和hookafter合并
HookProc的定义方式与以前有所不同:

HookProc的函数类型和原来的api一样,只是参数比原API多2个
DWORD WINAPI HookProc(DWORD RetAddr ,__pfnXXXX pfnXXXX, ...);

//参数比原始的API多2个参数
RetAddr //调用api的返回地址
pfnXXX //类型为__pfnXXXX,待hook的api的声明类型,用于调用未被hook的api

详见My_LoadLibraryA
原始的LoadLibraryA的声明是:

HMODULE WINAPI LoadLibraryA( LPCSTR lpLibFileName );

那么首先定义一下hook的WINAPI的类型
typedef HMODULE (WINAPI __pfnLoadLibraryA)(LPCTSTR lpFileName);

然后hookproc的函数声明如下:
HMODULE WINAPI My_LoadLibraryA(DWORD RetAddr,
__pfnLoadLibraryA pfnLoadLibraryA,
LPCTSTR lpFileName
);

比原来的多了2个参数,参数位置不能颠倒,在My_LoadLibraryA中可以自由的调用未被hook的pfnLoadLibraryA
也可以调用系统的LoadLibraryA,不过要自己在hookproc中处理好重入问题

另外,也可以在My_LoadLibraryA中使用UnInstallHookApi()函数来卸载hook,用法如下:
将第二个参数__pfnLoadLibraryA pfnLoadLibraryA强制转换成PHOOKENVIRONMENT类型,使用UnInstallHookApi来卸载

例如:
UnInstallHookApi((PHOOKENVIRONMENT)pfnLoadLibraryA);


至于以前版本的HookBefore和HookAfter,完全可以在自己的HookProc里面灵活使用了


2,支持卸载hook
InstallHookApi()调用后会返回一个PHOOKENVIRONMENT类型的指针
需要卸载的时候可以使用UnInstallHookApi(PHOOKENVIRONMENT pHookEnv)来卸载

在HookProc中也可以使用UnInstallHookApi来卸载,参数传入HookProc中的第二个参数

注意:当HookProc中使用UnInstallHookApi卸载完后就不能用第二个参数来调用API了~~,切记!

2008.04.15 0.41
1,前面的deroko的LdeX86 有BUG,678b803412 会算错
换了一个LDX32,代码更少,更容易理解

2,修复了VirtualProtect的一个小BUG


0.4以前
改动太大了,前面的就不写了
*/

Hook API Lib 0.5.rar

6.9 KB, 下载次数: 86, 下载积分: 吾爱币 -1 CB

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

he550106909 发表于 2009-9-27 11:59
UNPACK找了半天
wei123 发表于 2009-9-28 18:59
ZeNiX 发表于 2009-9-29 11:55
更新一下
這個版本是 0.51 (2009 年) 的.

HookAPILib_0.51.rar

6.76 KB, 下载次数: 35, 下载积分: 吾爱币 -1 CB

asdfslw 发表于 2009-9-30 17:36
暂时还看不懂。先收藏着吧。
oopww 发表于 2009-10-24 00:25
具体能给个实例吗?
zsl01 发表于 2010-7-14 12:03
暂时还看不懂。先收藏着吧
飘渺风 发表于 2010-8-16 09:53
先收藏,哈哈
曹无咎 发表于 2010-9-8 19:24
好东西,果断拿走了,谢谢
hahanibc 发表于 2011-6-22 05:29
[RCT][RCT][RCT][RCT][RCT][RCT][RCT][RCT][RCT][RCT][RCT][RCT][RCT][RCT]
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 06:20

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表