kxsystem
驱动牛犊
驱动牛犊
  • 注册日期2006-11-25
  • 最后登录2011-08-29
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望56点
  • 贡献值0点
  • 好评度48点
  • 原创分0分
  • 专家分0分
阅读:1984回复:10

[请教]如何在Inline-Hook的代理函数中阻止原函数执行?

楼主#
更多 发布于:2007-08-12 16:27
好不容易写了一个Inline-HOOK,结果只能记录函数执行而不能阻止原函数执行.大侠们帮忙看看是哪儿出的问题.

// Inline过程.
原函数开头
JMP 0008:MyFunction

// void MyFunction(LPVOID lparam)
{
if(/* 条件判断*/)
{
DbgPrint("Forbid.");
return;  //一个RETURN就蓝屏了.换成_asm ret 4也没戏,如果去掉后就不会蓝屏.
}
JMP_OrgFunction(lparam);
}

__declspec(naked)void JMP_OrgFunction(LPVOID lparam)
{
// 其中下面的区域在DRIVERENTRY时写入了原函数的前七个字节与JMP到原函数第八个字节的指令.
_asm
{
nop
nop
......
}
}

看了下DMP文件,竟然报RAV的驱动memcan.sys与hookapi.sys的错误.在虚拟机中测试时说是内存错误.

已经搞了两天多了,一点点头绪也没.哪位大牛帮忙看看啊....
Odyssey
驱动小牛
驱动小牛
  • 注册日期2004-12-15
  • 最后登录2008-03-29
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望115点
  • 贡献值0点
  • 好评度115点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-08-13 23:48
你确定原来那个函数没有参数的?如果有的话,光用个return,不知道会跳到什么地方哦,呵呵。
dahubaobao
驱动牛犊
驱动牛犊
  • 注册日期2004-09-25
  • 最后登录2012-03-14
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望80点
  • 贡献值0点
  • 好评度44点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-08-14 10:04
你在你的HOOK函数里别调用原函数不就完了?!
kxsystem
驱动牛犊
驱动牛犊
  • 注册日期2006-11-25
  • 最后登录2011-08-29
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望56点
  • 贡献值0点
  • 好评度48点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-08-14 17:05
小声地说一句,被HOOK 的函数是PspExitThread.不调用是找XX啊.
kxsystem
驱动牛犊
驱动牛犊
  • 注册日期2006-11-25
  • 最后登录2011-08-29
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望56点
  • 贡献值0点
  • 好评度48点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-08-14 17:06
见炉子的代码中HOOK掉了PspExitThread,结果成功.我用IS反了一下他的proxy,照原样写.还是出错..
WQXNETQIQI
驱动大牛
驱动大牛
  • 注册日期2006-06-12
  • 最后登录2010-10-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望1076点
  • 贡献值0点
  • 好评度895点
  • 原创分1分
  • 专家分0分
5楼#
发布于:2007-08-14 19:35
PspExitThread never return!
驱动开发者 呵呵
kxsystem
驱动牛犊
驱动牛犊
  • 注册日期2006-11-25
  • 最后登录2011-08-29
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望56点
  • 贡献值0点
  • 好评度48点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-08-14 19:48
MJMM的意思是................
kxsystem
驱动牛犊
驱动牛犊
  • 注册日期2006-11-25
  • 最后登录2011-08-29
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望56点
  • 贡献值0点
  • 好评度48点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-08-14 19:49
按炉子的说法
DECLSPEC_NORETURN void Hook_PspExitThread
{
if(...!=....)
{
JMP...
}
}
一样蓝屏
kxsystem
驱动牛犊
驱动牛犊
  • 注册日期2006-11-25
  • 最后登录2011-08-29
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望56点
  • 贡献值0点
  • 好评度48点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2007-08-14 19:52
反炉子一下.

ee463ad0 55              push    ebp
ee463ad1 8bec            mov     ebp,esp
ee463ad3 e86e0d0000      call    ee464846
ee463ad8 50              push    eax
ee463ad9 ff15205046ee    call    dword ptr ds:[0EE465020h]
ee463adf 3b05306246ee    cmp     eax,dword ptr ds:[0EE466230h]
ee463ae5 740a            je      ee463af1
ee463ae7 8b4508          mov     eax,dword ptr [ebp+8]
ee463aea 50              push    eax
ee463aeb ff15406246ee    call    dword ptr ds:[0EE466240h]
ee463af1 5d              pop     ebp
ee463af2 c20400          ret     4

这些不会蓝屏.
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
9楼#
发布于:2007-08-14 23:44
还是HOOK的毒瘤,看来是百试不爽阿。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
kxsystem
驱动牛犊
驱动牛犊
  • 注册日期2006-11-25
  • 最后登录2011-08-29
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望56点
  • 贡献值0点
  • 好评度48点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2007-08-15 12:06
老大已经把HOOK都玩透了,偶还只是菜鸟...
游客

返回顶部