首页
社区
课程
招聘
[分享]西裤哥的 Hook Api Lib 0.2 For C
发表于: 2007-3-21 15:11 19061

[分享]西裤哥的 Hook Api Lib 0.2 For C

2007-3-21 15:11
19061

对xIkUg的hook lib for delphi研究了一番,尤其是里面的GetOpCodeSize是好东西 ,但不太会用delphi,因此转成 VC代码 共享出来。

转好后发现GetOpCodeSize()有点小BUG,草草修正后发上来

先贴代码,然后再说明

if ((dh & 0x10) == 0)
{
    dh ^= 6;   // 这里不能异或6,是异或1,而且不是所以情况都要异或
    t &= 0xFFFFFF00;
    t |= dh;
}
if (dh & 0x40) //是否是 0x6x
    dh ^= 1;   // 当dh = 0x2x 这里计算多2,当=62的时候却是 异或1

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 7
支持
分享
最新回复 (22)
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
2
DELPHI转换C有什么工具?

还是人工转换的?

弱弱的问

MASKTABLE只有512的大小,是否不支持3BYTE OPCODE的长度计算?
2007-3-21 15:38
0
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
3
最初由 笨笨雄 发布
DELPHI转换C有什么工具?

还是人工转换的?

弱弱的问

MASKTABLE只有512的大小,是否不支持3BYTE OPCODE的长度计算?


手工改的

MASKTABLE据xIkUg说是掩码,我不懂,也没改

我修改完后测试过了,没发现计算错误的OpCode
2007-3-21 16:30
0
雪    币: 1969
活跃值: (46)
能力值: (RANK:550 )
在线值:
发帖
回帖
粉丝
4
学习
2007-3-21 17:19
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
学习,支持深加工!!
2007-3-21 18:00
0
雪    币: 372
活跃值: (31)
能力值: ( LV12,RANK:410 )
在线值:
发帖
回帖
粉丝
6
只能膜拜~~
2007-3-21 19:50
0
雪    币: 236
活跃值: (11)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
7

先收了,回头慢慢研究。
2007-3-21 22:01
0
雪    币: 150
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
估计能看到头大~
2007-3-22 18:47
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
没看懂怎么用..
2007-3-22 23:44
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
确实需要慢慢研究
2007-3-23 08:01
0
雪    币: 214
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
11
看不懂..只能收藏...
2007-3-23 11:04
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
12
asproooot
2007-3-23 13:53
0
雪    币: 405
活跃值: (10)
能力值: ( LV9,RANK:1130 )
在线值:
发帖
回帖
粉丝
13
不明白哦。hook api感觉像是用在游戏外挂方面比较多
2007-3-23 18:09
0
雪    币: 2134
活跃值: (14)
能力值: (RANK:170 )
在线值:
发帖
回帖
粉丝
14
mark一下 〉。。。。。。。。。
2007-3-23 20:10
0
雪    币: 488
活跃值: (2749)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
15
谁能整个ASM版的
2007-3-24 03:55
0
雪    币: 325
活跃值: (97)
能力值: ( LV13,RANK:530 )
在线值:
发帖
回帖
粉丝
16
其实搂主应该认真看看detour的代码 个人认为肯定是比你得代码好的多
而且考虑了多处理器多线程的问题,已经同步的问题。Api Hook 的方式也提供了多种。是非常值得借鉴的。。。。

一般只知道C--〉Delphi今天到好 看到D->C的了。。
就和把VB转C差不多吧。。罕见咯~
2007-3-24 18:15
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
17
原来MS已经提供了功能这么完整的代码了

刚下了detour的代码看了disasm.cpp部分。指令长度计算方面跟LZ给的代码差不多。

查两张256的表。。感觉跟LZ给的差不多
2007-3-24 20:07
0
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
18
请问,哪里能下载detour的代码,想学习一下

BTW:上面的代码都不是我写的,是xIkUg写的。
我只是将DELPHI版转成了VC版,修改了一下计算指令长度的那个函数
2007-3-26 09:00
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
19
http://research.microsoft.com/sn/detours
2007-3-26 14:26
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
先收下慢慢看
2007-3-26 15:56
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
感谢,好东西啊,我正需要这样的东东。 我写了一个库通过改写API头部指令实现挂接,但同一个API在2K/XP/2K3上的头部都不一样,所以必须事先记录需要挂接的API头部有几个字节指令要被覆盖,现在有了这个函数,我可以直接分析头部了。
    再次感谢!!!
2007-3-27 10:03
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
强啊楼主,学习中!
2007-3-28 12:09
0
雪    币: 314
活跃值: (15)
能力值: ( LV12,RANK:410 )
在线值:
发帖
回帖
粉丝
23
好,留个记号,以后再来看
2007-3-28 14:15
0
游客
登录 | 注册 方可回帖
返回
//