zhlgf999
驱动牛犊
驱动牛犊
  • 注册日期2005-03-30
  • 最后登录2015-06-17
  • 粉丝0
  • 关注0
  • 积分558分
  • 威望108点
  • 贡献值0点
  • 好评度53点
  • 原创分0分
  • 专家分0分
阅读:2280回复:4

HOOK API的同步问题,急!急!急!

楼主#
更多 发布于:2008-06-01 16:24
最近做的一个东东涉及到HOOK API,需要修改API的前5个字节达到HOOK的目的。整个HOOK流程没问题,但就是碰到了一个线程同步的问题(通过查资料发现是个老问题,但是没找到有什么解决方法):就是在我们写的新API中,如果需要调用原API,需要先将前5个字节恢复,这时如果其它线程调用同样的API时,就会出现漏钩的现象!这个问题该如何解决呢,请各位大虾指点,非常感谢,谢谢!
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2008-06-02 08:41
参考MS的DETOUR,开源的。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
zhlgf999
驱动牛犊
驱动牛犊
  • 注册日期2005-03-30
  • 最后登录2015-06-17
  • 粉丝0
  • 关注0
  • 积分558分
  • 威望108点
  • 贡献值0点
  • 好评度53点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-06-02 10:39
可以解决这个问题嘛?谢谢!我去看看!
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
地板#
发布于:2008-06-02 11:34
DETOURS 中有相关的.它主要就是用来干这个的
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
achillis
驱动牛犊
驱动牛犊
  • 注册日期2008-04-14
  • 最后登录2009-01-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望17点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-07-19 22:54
我的建议是:在调用原API 时不要采用这种先恢复再调用的方法,一方面频繁修改这个位置不太好,另一方面就是你说的漏钩的问题。
解决方法:在自己的代理函数中模拟执行被你替换掉的几句指令,然后直接跳转到apientry+5的地方继续执行,这样就不需要恢复HOOK,也就不会漏钩了,更不会出现同步问题。详细实现方法可百度之
游客

返回顶部