lghtly
驱动牛犊
驱动牛犊
  • 注册日期2004-10-14
  • 最后登录2005-11-29
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1563回复:11

有没有方法拦截住2E中断后,查看一个服务的参数

楼主#
更多 发布于:2005-03-14 18:48
有没有方法拦截住2E中断后,查看一个服务的参数,如调用服务ZwCreateFile()函数,查看一下这个函数的参数;进一步,在此处跟据参数决定是否调用内核中的函数。

拦截住2E中断的方法已有,但不知如何在挂钩2E中断处作上面的处理。

最新喜欢:

aasa2aasa2
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-03-15 08:26
替换服务分发表
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
idaxsy
驱动大牛
驱动大牛
  • 注册日期2004-12-09
  • 最后登录2006-03-17
  • 粉丝0
  • 关注0
  • 积分386分
  • 威望54点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-03-15 12:13
学习
[b]万水千山总是情,回个帖子行不行?[/b]
wywwwl
驱动大牛
驱动大牛
  • 注册日期2002-08-16
  • 最后登录2018-04-07
  • 粉丝1
  • 关注0
  • 积分-10分
  • 威望135点
  • 贡献值6点
  • 好评度76点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于: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);
}

传进来的参数就是!
琢磨悟真知
lghtly
驱动牛犊
驱动牛犊
  • 注册日期2004-10-14
  • 最后登录2005-11-29
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-03-15 18:24
清仔细看一看问题,不要答非所问。挂钩服务表的方法已有,我的问题是有没有方法拦截住2E中断后,查看一个服务的参数.
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
5楼#
发布于:2005-03-15 22:10
清仔细看一看问题,不要答非所问。挂钩服务表的方法已有,我的问题是有没有方法拦截住2E中断后,查看一个服务的参数.

为什么要截住2E中断??你又不是要拦截所有系统服务调用???
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-03-16 08:52
清仔细看一看问题,不要答非所问。挂钩服务表的方法已有,我的问题是有没有方法拦截住2E中断后,查看一个服务的参数.

拦截住2E中断去修改IDT,不过根本没有必要,2e中断说做的事情不过是把各种调用根据服务分发表分发到各自入口。你既然能替换服务分发表,而且参数个数根据服务分发表是知道的,就可以找到参数。不过参数是一个bulk,要知道具体意义,还得自己研究,从调用它的来源上研究
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
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才行.....
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
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了
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-03-16 09:41
是的,xp sp1就将Int 2Eh,改为SYSENTER了
修正为
xp就将Int 2Eh,改为SYSENTER了,而且要求机器是P2 300以上,Intel手册中有这个指令和他的配对指令SYSEXIT的资料
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
lghtly
驱动牛犊
驱动牛犊
  • 注册日期2004-10-14
  • 最后登录2005-11-29
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-03-16 11:18
其实还是想控制SetWindowsHookEx()的执行,我不知道他在内核中对应函数的原型,就想从此处查看一下参数,然后根据规则修改参数,达到控制其执行的目的。
参见http://www.driverdevelop.com/forum/html_88457.html?1110942725
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-03-16 12:42
其实还是想控制SetWindowsHookEx()的执行,我不知道他在内核中对应函数的原型,就想从此处查看一下参数,然后根据规则修改参数,达到控制其执行的目的。
参见http://www.driverdevelop.com/forum/html_88457.html?1110942725

实际写个SetWindowsHookEx(),记下它的参数,再在_NtUserSetWindowsHookEx下断点,看看_NtUserSetWindowsHookEx的参数,比较一下就知道了
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
游客

返回顶部