首页
社区
课程
招聘
[原创]必备绝技——hook大法( 中 )
2007-4-9 23:37 192905

[原创]必备绝技——hook大法( 中 )

Lvg 活跃值
5
2007-4-9 23:37
192905
收藏
点赞7
打赏
分享
最新回复 (189)
雪    币: 223
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ljseven 2007-4-12 09:37
26
0
学习,顺便问个问题,如何得到原始的SSDT函数的地址?
雪    币: 235
活跃值: (29)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
Lvg 5 2007-4-12 10:06
27
0
从Ntoskrnl.exe文件中获取入口表
雪    币: 223
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ljseven 2007-4-12 11:09
28
0
并不是所有的ssdt 函数在ntoskrnl.exe都有导出吧,象NtSystemDebugControl
雪    币: 235
活跃值: (29)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
Lvg 5 2007-4-12 11:31
29
0
参阅“如何获取Windows 系统的内核变量”
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Ajampie 2007-4-12 11:47
30
0
还是一个新手,,堪布明白
雪    币: 164
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
河边渔者 1 2007-4-12 12:01
31
0
强!什么时候学的、怎么学的?介绍一哈。
雪    币: 235
活跃值: (29)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
Lvg 5 2007-4-12 13:26
32
0
不知如何回答兄弟的问题,我也是个初学者,以下只代表我个人的想法,我们的学习方向也许不一样,千万别被我误导!
一,语言
1.汇编:调试分析必备

2.C语言:驱动大部分都是C写的

二,各种调试的相关内容
应用层:OD  核心层:SI WinDbg
三,windows内核框架(还没转到Linux/unix)
1.<<windows 2000 内部揭秘>> 有中文版

最新的<<windows internals>>无中文版

2.<<Undocumented NT>>有中文版
3.<<Undoccument windows 2000 secrets>>有中文版
四,驱动模型(进入核心层的途径)
1.<<windows 驱动模型设计>>有中版


2.<<windows nt 文件系统>>
3.<<Rootkits: Subverting the Windows Kernel>>无中版


以上是我打算学习的内容,到现在一成的内容都没领会 ,望路过大牛门多多指点,以免我们这些初学者迷失了方向。
上传的附件:
雪    币: 375
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
xPLK 3 2007-4-12 16:25
33
0
我也去找找这些书!
3.<<Undoccument windows 2000 secrets>>有中文版
现在看着这个~~
 遇到问题就向你请教了……
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
刀剑如梦 2007-4-12 17:28
34
0
学习中......谢谢啦
雪    币: 293
活跃值: (110)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
堕落天才 10 2007-4-13 15:55
35
0
文章确实不错

但是感觉楼主只是直接翻译了<<Rootkits: Subverting the Windows Kernel >> 第四章The Age-Old Art of Hooking 的 Kernel Hooks !很多东西都是直接搬过来,代码一摸一样!我想这该是翻译而不是原创,因为少了一点楼主自己的东西! INT 0x2E 进入SSDT是win2k之前的事 winXP后是sysenter,楼主不如来一个拦截键盘中断 实现键盘记录之类的.
sysenter hook的例子很简单地说明了原理,但实际应用要考虑的东西比较多,比如最简单的在MyKiFastCallEntry()添加一个DbgPrint 也不是直接放上去就行的.所以我觉得 如果楼主能根据自己的理解再使用自己的实用例子来解析就更好

说句实话 如有不敬 楼主见谅

另外说一句 <<Rootkits: Subverting the Windows Kernel >> 确实是一本不可多得的好书
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
开锁匠 2007-4-13 17:22
36
0
资料整理得还可以
雪    币: 235
活跃值: (29)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
Lvg 5 2007-4-13 17:23
37
0
但是感觉楼主只是直接翻译了<<Rootkits: Subverting the Windows Kernel >> 第四章The Age-Old Art of Hooking 的 Kernel Hooks !很多东西都是直接搬过来,代码一摸一样!我想这该是翻译而不是原创,因为少了一点楼主自己的东西!

堕诺天才说的没错,文章里的知识全是来自<<Rootkits: Subverting the Windows Kernel >> 一书的。写好要发出来时,心里也在想,是发到翻译版,但是说翻译,也根本没有完全按照书上的英文照着译,是我认真读后,理解了,用自己的语言和逻辑组织成。里面的例子全部也来自该书,但我发现该书的每个例子都那么的简单明了,很像教科书中的经典例题。要是让我自己写,就反而见拙了。
INT 0x2E 进入SSDT是win2k之前的事 winXP后是sysenter,楼主不如来一个拦截键盘中断 实现键盘记录之类的.

这个建议很不错,这样一来就比像再拦截int 2e那么有意义。
说句实话 如有不敬 楼主见谅

呵呵,没什么。我现在想,不管它是什么,只要能帮助我好好的学习和理解更多的知识就好了。也谢谢天才兄弟的提出。

另外说一句 <<Rootkits: Subverting the Windows Kernel >> 确实是一本不可多得的好书


的确是本很好的书,他让我学到了很多知识。
雪    币: 214
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
仙剑太郎 2 2007-4-13 18:06
38
0
天才兄来解释一下why...
雪    币: 235
活跃值: (29)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
Lvg 5 2007-4-13 18:48
39
0
再次感谢堕诺天才用总充满了善意的言语来提出这个问题。天才在内核方面的理解,远超过于我,希望以后多多指点。
雪    币: 293
活跃值: (110)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
堕落天才 10 2007-4-13 18:51
40
0
用来传递服务ID 参数 标记等 寄存器都改变了 直接放上去不死机就怪
一般可以这样
        pushad
        push fs
        push 0x30
        pop fs

        //其他操作

        pop fs
        popad
        jmp [d_origKiFastCallEntry]
雪    币: 293
活跃值: (110)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
堕落天才 10 2007-4-13 18:52
41
0
楼主确实大量
雪    币: 235
活跃值: (29)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
Lvg 5 2007-4-13 21:18
42
0
呵呵,天才兄也用的书上的方法

__declspec(naked) MyKiSystemService()

{

__asm{

pushad

pushfd

push fs

mov bx,0x30

mov fs,bx

push ds

push es

// Insert detection or prevention code here.

Finish:

pop es

pop ds

pop fs

popfd

popad

jmp KiRealSystemServiceISR_Ptr; // Call the real function

}

}
雪    币: 235
活跃值: (29)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
Lvg 5 2007-4-13 21:21
43
0
许多方法都是通用的,而且也只能这么用
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
断风 2007-4-14 10:29
44
0
阅读学习中!
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
poincarele 2007-4-15 13:25
45
0
subverting xxx kernel/
雪    币: 216
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
sertty 1 2007-4-15 15:28
46
0
强贴。。。学习了! 感谢楼主!
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
龙腾天下 2007-4-15 22:13
47
0
好文章,收藏学习
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Ajampie 2007-4-17 13:36
48
0
现在我看这些东西还有点早,,,
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
thyqg 2007-4-18 09:11
49
0
学习下,谢谢了
雪    币: 202
活跃值: (136)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
菜菜小J 2007-4-26 17:06
50
0
必备绝技——hook大法( 上上上 )
游客
登录 | 注册 方可回帖
返回