阅读:1517回复:3
有人知道如何将一个已经被HOOK了的API函数的地址还原吗?
如果一个系统API函数已经被某个程序HOOK了,有办法绕过HOOK程序直接调用原API函数吗?
|
|
沙发#
发布于:2004-10-18 17:59
可以的,不过要对系统很熟,apihook的一般过程:
扫描dll文件的head,得到需要挂接的api入口地址,把这个地址的前几个字节改为 jmp之类的命令,转到自己的模块中执行,退出时回写api入口的几个字节,再转跳回来,ok,当然实际过程要复杂一些,比如环境的还原之类的! 如何恢复? 有点麻烦,不过只要对系统熟,不是不可以!我想到的思路: 由于一般api的入口几个字节都是相同的,即使不同,window操作系统只有几个版本,很容易就可以得出来,然后检查api得入口几个字节是否被改写,如果是,回写即可! |
|
板凳#
发布于:2004-10-18 22:40
可以的,不过要对系统很熟,apihook的一般过程: 其实挂接函数又好多种,上述是改写函数的地址, 通用的是采用API函数,SetWindowsHookEx和UnhookWindowsHookEx 不知道楼主采用的是那种? |
|
|
地板#
发布于:2004-10-19 10:08
我也不知道别人的软件是采用什么方式hook的api,比如象瑞星这种杀毒软件就是hook了TerminateProcess()等api
|
|