首页
论坛
课程
招聘
Hook API lib (含源码)
2005-8-11 03:45 40764

Hook API lib (含源码)

2005-8-11 03:45
40764
新增 Delphi 的版本
Delphi 版本更新至 1.1
修正了备分原 API 开头时,遇到 B8(call), B9(jmp) 没修改后面的偏移值

按这里进入 Delphi.KTop 观看.
VC 的话,可直接用 MASM 的 obj 即可.

自己写的 hook api lib
可重覆 hook api
共两个 function

1. HookAPI
2. UnhookAPI

要 hook user32.MessageBoxA 的话,就是
invoke HookAPI,CTEXT("User32.dll"),CTEXT("MessageBoxA"),offset myMessageBox

详细例子在附档中有..附件:hooklib.zip

[注意] 欢迎加入看雪团队!base上海,招聘安全工程师、逆向工程师多个坑位等你投递!

收藏
点赞0
打赏
分享
最新回复 (42)
雪    币: 231
活跃值: 活跃值 (89)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
liuyilin 活跃值 2005-8-11 08:34
2
0
谢谢,讲具体点好吗?
雪    币: 200
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
WindElf 活跃值 2005-8-11 09:14
3
0
实现这样的功能很简单,但是很少见到这样的代码库
雪    币: 1141
能力值: (RANK:460 )
在线值:
发帖
回帖
粉丝
monkeycz 活跃值 11 2005-8-11 11:03
4
0
不错!
雪    币: 205
活跃值: 活跃值 (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
Skyer 活跃值 2 2005-8-11 15:10
5
0
较详细的说明(图解)在文章的 Delphi.KTop 有..

HookAPI lib 的确不难
不过我花了快一星期在上面 QQ

另外有专业级的 madCodeHook 的 API Hook Lib
http://www.madshi.net/

for Delphi/BCB/VC
个人使用免费,商业使用要钱
雪    币: 223
活跃值: 活跃值 (43)
能力值: ( LV9,RANK:450 )
在线值:
发帖
回帖
粉丝
netsowell 活跃值 11 2005-8-11 16:37
6
0
支持...
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
duzaizhe 活跃值 2005-8-11 16:43
7
0
V lI Thx
雪    币: 205
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
aboil 活跃值 2005-8-11 17:35
8
0
好,学习中
雪    币: 114
活跃值: 活跃值 (10)
能力值: ( LV9,RANK:530 )
在线值:
发帖
回帖
粉丝
lnn1123 活跃值 13 2005-8-11 17:50
9
0
支持,并学习
雪    币: 234
活跃值: 活跃值 (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ijia 活跃值 2005-8-17 16:34
10
0
在win2k3下无法2次hook
示例就只能弹出一个对话框
雪    币: 205
活跃值: 活跃值 (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
Skyer 活跃值 2 2005-8-17 21:36
11
0
因为 2 次 hook 同一个 API, 所以一个对话框是正常的
因为当呼叫 MessageBoxA 后,会先到 callback2。callback2 呼叫 origApi2 时,则到 callback1,callback1 呼叫 origApi1 时,才回到原本的 MessageBoxA..


callback2 取代原 MessageBoxA 的 TEXT
callback1 取代原 MessageBoxA 的 Title
雪    币: 190
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
playar 活跃值 2005-8-18 21:38
12
0
不能跨进程。。感觉没啥用
雪    币: 205
活跃值: 活跃值 (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
Skyer 活跃值 2 2005-8-19 00:07
13
0
这是可以应用的
配合 SetWindowsHookEx 就可以作跨进程的 API Hook

这个 lib 只单纯 Hook 一个 process 中的 dll function
配合 Windows Hook 就可以写一个 DLL inject 到任一个 process 了.

欢迎提供更方便的全局 API Hook 方式
雪    币: 19
活跃值: 活跃值 (10)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
pendan2001 活跃值 4 2005-8-19 17:52
14
0
雪    币: 234
活跃值: 活跃值 (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ijia 活跃值 2005-8-20 09:03
15
0
最初由 Skyer 发布
因为 2 次 hook 同一个 API, 所以一个对话框是正常的
因为当呼叫 MessageBoxA 后,会先到 callback2。callback2 呼叫 origApi2 时,则到 callback1,callback1 呼叫 origApi1 时,才回到原本的 MessageBoxA..


callback2 取代原 MessageBoxA 的 TEXT
........

明白了,是自己没看清
另外问一下,包中带的 Catchy32.asm 是不是可以用来反汇编?
雪    币: 205
活跃值: 活跃值 (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
Skyer 活跃值 2 2005-8-20 11:05
16
0
那个 Catchy32.asm 是 Length Disassembler Engine 32bit
只能算每个 instuction 长度而以,没办法反汇编的
像 (call xxxxxxxx [E8 xx xx xx xx] 经 Catchy32 就是 5)

反汇编代码的话,本版或 OllyDBG 都有提供
雪    币: 215
活跃值: 活跃值 (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
auser 活跃值 2005-9-8 16:49
17
0
很是不错!
雪    币: 538
活跃值: 活跃值 (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Saver 活跃值 2005-9-26 22:31
18
0
保存..研究
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
analog 活跃值 2 2005-10-22 23:11
19
0
good,谢谢分享
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
底层飞鹰 活跃值 2007-1-21 14:37
20
0
不论何时,apihook,shellcode,都是经典技术,都是值得我们为其发疯,狂热
追求的目标, 同志们,希望大家早日知道这一点,共同推进apihooh技术的大发展。

                              -------底层飞鹰呈上
雪    币: 229
活跃值: 活跃值 (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
walkier 活跃值 2007-5-3 12:41
21
0
thankz!
------------------
雪    币: 203
活跃值: 活跃值 (10)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
clide2000 活跃值 7 2007-5-8 10:17
22
0
关于说明中
"注:上面等於 Delphi 的
var
oldMessageBox: Pointer;
begin
oldMessageBox = HookAPI('user32.dll', 'MessageBoxA', @myMessageBox);"

问个不明白的地方.
我若是在myMessageBox函数中,再次调用MessageBoxA的,是否就成死循环了?
雪    币: 150
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
chinatme 活跃值 2007-5-8 13:35
23
0
好东西不能下沉,顶一下~
雪    币: 205
活跃值: 活跃值 (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
Skyer 活跃值 2 2007-5-8 15:08
24
0
陈年老帖被翻上来了

对.. 会变成死循环
雪    币: 150
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
chinatme 活跃值 2007-5-8 20:56
25
0
在钩子卸载的时候怎么老是内存读错误~,郁闷~调不出来,老兄你这个东西怎么弄的??给个提示~
游客
登录 | 注册 方可回帖
返回