首页
社区
课程
招聘
[原创]Hook Api Library 0.2[Ring0]& LDE32引擎[Ring0] For Delphi
发表于: 2008-4-29 21:43 23186

[原创]Hook Api Library 0.2[Ring0]& LDE32引擎[Ring0] For Delphi

2008-4-29 21:43
23186
写Ring0 inline hook的时候正好需要一个Opcode Length Engine
不想用Ms-Rem大牛的OLD的~因为总是一大堆错误。。许多东西都不能判断。无奈之下。。。
自己找一个成熟的引擎吧。。。
关于反汇编引擎的设计以后将会专门开篇描述。。。这里就单纯说说
Hook Api library吧。。。
感谢z0mbie[前29A]牛!

关于Hook Api相比也有许多了。。。这里完全用Delphi写了一个。。。通用Hook库
与其他的不一样的地方是
说明:
  1.利用堆栈跳转
  没有使用传统的jmp xxxx 长跳转,使用容易理解的push xxxx+ret
  仔细看代码容易理解...封装完好.

  2.内存补丁结构:
  补丁1:|push xxx--钩子处理过程|ret|
  补丁2:|保存原始补丁地址|保存原始地址代码长度|原始地址的代码|push xxxxxx|ret|

{
  Hook Api Library 0.2 [Ring3] By Anskya
  Email:Anskya@Gmail.com
  ring3 inline hook For Api

Thank:
  前29A高手也一直都是我的偶像...z0mbie大牛...这里膜拜一下
  使用的LDE32引擎是翻译他老人家的...C->Delphi...


说明:
  1.利用堆栈跳转
  没有使用传统的jmp xxxx 长跳转,使用容易理解的push xxxx+ret
  仔细看代码容易理解...封装完好.

  2.内存补丁结构:
  补丁1:|push xxx--钩子处理过程|ret|
  补丁2:|保存原始补丁地址|保存原始地址代码长度|原始地址的代码|push xxxxxx|ret|

更新说明:
  0.2:
    支持Ring0 Inline Hook
  0.1:
    Ring3 Inline Hook
}


关于反汇编引擎:
由于LDE32没什么明显的BUG虽然支持的指令集不是很多。但是基本上足够用了
想必SDK和DDK中使用MMX,SSE....等指令估计很少见吧...
所以LDE32就派上用场了....
{
  LDE32.pas: Z0MBiE DISASM ENGINE[LDE32]
  LDE32 Delphi Coded By Anskya
  Email: Anskya@Gmail.com

更新说明:
  procedure GetInstLenght(myiptr0: Pointer; osizeptr: PULONG);
  function GetProcLength(myiptr0: Pointer): ULONG;

0.2:
  增加 GetProcLength函数.用于获取一个函数过程的长度.

0.1:
  翻译

  Thank: z0mbie
}


代码见附件:

[课程]Android-CTF解题方法汇总!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (29)
雪    币: 7309
活跃值: (3778)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
2
不懂delphi,学习
2008-4-29 23:37
0
雪    币: 347
活跃值: (25)
能力值: ( LV9,RANK:420 )
在线值:
发帖
回帖
粉丝
3
这个是一定要收藏的
2008-4-30 00:06
0
雪    币: 215
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
跟班长一块学习
2008-4-30 00:11
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不喜欢这种hook方式
2008-4-30 00:18
0
雪    币: 732
活跃值: (192)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
好东东,收藏了,谢谢
2008-5-8 08:19
0
雪    币: 301
活跃值: (300)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
7
没想到这么久才注意到,这样的东西定要收藏学习的
2008-7-12 01:29
0
雪    币: 290
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
不懂delphi啊。哎。
2009-5-6 08:52
0
雪    币: 243
活跃值: (169)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
delphi~支持一下
2009-5-7 09:51
0
雪    币: 1253
活跃值: (1575)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
无意中发现,下载收藏,感谢分享
2009-5-13 13:16
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
正需要DELPHI的
谢谢
2009-5-13 18:38
0
雪    币: 218
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
好东东,学习,再学习。
2009-5-14 12:53
0
雪    币: 452
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
13
这么好的东东才发现,顶呀~
2009-5-14 13:30
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
thanks alot, very nice library
2009-6-6 20:57
0
雪    币: 52
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
这个好象只能hook本程序的api,如何hook全局API
2009-6-11 07:41
0
雪    币: 220
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
嗯,一会儿测试下,看全局的能用不
2009-6-14 22:13
0
雪    币: 220
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
经过严格的测试,是可以全局的hook的,不过有些小问题需要自己改
2009-6-28 22:47
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
同问如何hook 全局 api
不知道是不是通过hook所有的进程来实现?
2010-4-6 10:01
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
全局,注入啊,注入之后hook创建进程的函数,然后临界处理下
2010-4-9 22:23
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ccj
20
Vista和win7不支持,怎么修改下
2010-4-28 00:33
0
雪    币: 2190
活跃值: (981)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21

谢谢 顺便膜拜一下
2010-4-28 08:24
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
在win7下发现有些apihook(比如send)后,调用api原先的地址会出现错误,也有可能跟OS版本没关系,而是我要hook的api已经被别人先hook了,因为原先的api代码第一句就是jmp xxxx。
在api已经被别的进程(比如防病毒软件)hook了之后,在用这个unit提供的方法hook,很有可能发生异常,也有可能是算代码长度那里有些bug?
各位有否尝试用在win7下hook winsock的send,recv,connect等api?我发现在win7开通了防火墙+360安全卫士的情况下,hook了send就出现上述问题。
希望老大提供一个更完善的hook方案。
2010-6-16 16:20
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
石沉大海了,我有空的时候自己研究下。
2010-6-17 21:48
0
雪    币: 367
活跃值: (20)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
24
hook的一般规则:用最短代码实现.
大家都用jmp这种5字节处理,楼主用push/ret这种6字节处理,这是不可取的,这会导致hook链崩溃.
2010-6-26 09:20
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
下来学习学习
2010-7-6 18:03
0
游客
登录 | 注册 方可回帖
返回
//