阅读:1563回复:11
有没有方法拦截住2E中断后,查看一个服务的参数
有没有方法拦截住2E中断后,查看一个服务的参数,如调用服务ZwCreateFile()函数,查看一下这个函数的参数;进一步,在此处跟据参数决定是否调用内核中的函数。
拦截住2E中断的方法已有,但不知如何在挂钩2E中断处作上面的处理。 |
|
最新喜欢:![]() |
沙发#
发布于:2005-03-15 08:26
替换服务分发表
|
|
|
板凳#
发布于:2005-03-15 12:13
学习
|
|
|
地板#
发布于:2005-03-15 15:35
替换服务分发表 对的。 例如: NTSTATUS HookQuerySystemInformation( IN ULONG SystemInformationClass, IN PVOID SystemInformation, IN ULONG SystemInformationLength, OUT PULONG ReturnLength ) { NTSTATUS rc; // 执行旧的ZwQuerySystemInformation函数 rc = OldZwQuerySystemInformation(SystemInformationClass, SystemInformation, SystemInformationLength, ReturnLength); if(!NT_SUCCESS(rc) || ( 5 != SystemInformationClass)) { return(rc); } 传进来的参数就是! |
|
|
地下室#
发布于:2005-03-15 18:24
清仔细看一看问题,不要答非所问。挂钩服务表的方法已有,我的问题是有没有方法拦截住2E中断后,查看一个服务的参数.
|
|
5楼#
发布于:2005-03-15 22:10
清仔细看一看问题,不要答非所问。挂钩服务表的方法已有,我的问题是有没有方法拦截住2E中断后,查看一个服务的参数. 为什么要截住2E中断??你又不是要拦截所有系统服务调用??? |
|
|
6楼#
发布于:2005-03-16 08:52
清仔细看一看问题,不要答非所问。挂钩服务表的方法已有,我的问题是有没有方法拦截住2E中断后,查看一个服务的参数. 拦截住2E中断去修改IDT,不过根本没有必要,2e中断说做的事情不过是把各种调用根据服务分发表分发到各自入口。你既然能替换服务分发表,而且参数个数根据服务分发表是知道的,就可以找到参数。不过参数是一个bulk,要知道具体意义,还得自己研究,从调用它的来源上研究 |
|
|
7楼#
发布于:2005-03-16 09:20
[quote]清仔细看一看问题,不要答非所问。挂钩服务表的方法已有,我的问题是有没有方法拦截住2E中断后,查看一个服务的参数. 拦截住2E中断去修改IDT,不过根本没有必要,2e中断说做的事情不过是把各种调用根据服务分发表分发到各自入口。你既然能替换服务分发表,而且参数个数根据服务分发表是知道的,就可以找到参数。不过参数是一个bulk,要知道具体意义,还得自己研究,从调用它的来源上研究 [/quote] 拦截住2E中断去修改IDT,这个方法不好,因为你只能在2K以前使用,你可以修改2E中断门地址所指的地址,在里面将其JMP到你的代码中,这样至少可以使用于XP,2003 不过XP SP2以后有所不同,你无法拦截来自RING3的调用,不然的话,你还是需要修改拦截SYSENTER所对应的相关MSR才行..... |
|
|
8楼#
发布于:2005-03-16 09:29
[quote][quote]清仔细看一看问题,不要答非所问。挂钩服务表的方法已有,我的问题是有没有方法拦截住2E中断后,查看一个服务的参数. 拦截住2E中断去修改IDT,不过根本没有必要,2e中断说做的事情不过是把各种调用根据服务分发表分发到各自入口。你既然能替换服务分发表,而且参数个数根据服务分发表是知道的,就可以找到参数。不过参数是一个bulk,要知道具体意义,还得自己研究,从调用它的来源上研究 [/quote] 拦截住2E中断去修改IDT,这个方法不好,因为你只能在2K以前使用,你可以修改2E中断门地址所指的地址,在里面将其JMP到你的代码中,这样至少可以使用于XP,2003 不过XP SP2以后有所不同,你无法拦截来自RING3的调用,不然的话,你还是需要修改拦截SYSENTER所对应的相关MSR才行..... [/quote] 是的,xp sp1就将Int 2Eh,改为SYSENTER了 |
|
|
9楼#
发布于:2005-03-16 09:41
是的,xp sp1就将Int 2Eh,改为SYSENTER了
修正为 xp就将Int 2Eh,改为SYSENTER了,而且要求机器是P2 300以上,Intel手册中有这个指令和他的配对指令SYSEXIT的资料 |
|
|
10楼#
发布于:2005-03-16 11:18
其实还是想控制SetWindowsHookEx()的执行,我不知道他在内核中对应函数的原型,就想从此处查看一下参数,然后根据规则修改参数,达到控制其执行的目的。
参见http://www.driverdevelop.com/forum/html_88457.html?1110942725 |
|
11楼#
发布于:2005-03-16 12:42
其实还是想控制SetWindowsHookEx()的执行,我不知道他在内核中对应函数的原型,就想从此处查看一下参数,然后根据规则修改参数,达到控制其执行的目的。 实际写个SetWindowsHookEx(),记下它的参数,再在_NtUserSetWindowsHookEx下断点,看看_NtUserSetWindowsHookEx的参数,比较一下就知道了 |
|
|