APIHOOK 公式疑问(回帖奖励)
本帖最后由 Love 梦想 于 2011-11-30 12:05 编辑获取假冒的API函数地址公式:
假冒的API地址 = 假冒的API地址 - (真正的API地址+5)
这个公式该怎么理解? 我发现很多关于这个关键部分的代码都是用汇编写的... 有没有可以直接用C写的呢~~~
先回个贴拿鱼币
假冒API?dll注入?还是dll替换?:dizzy: +5据我所了解的是因为最多能修改5字节还是5位.......(因为要修改地址)
实在有点不知道了,因为关于HOOK的资料的确很少.... 我是回帖来拿鱼币的 我只知道API前5个字节是固定格式
7C80B741 8B FF mov edi,edi
7C80B743 55 push ebp
7C80B744 8B EC mov ebp,esp
本帖最后由 biackese 于 2012-8-21 16:34 编辑
= =不是LS说的那些
因为 HOOK就是 把他要调用函数的时候先跳到自己的
然后 过程就简单了
比如 执行API
push 参数 了
然后call ffffffff= =函数
= =就是这么个意思 然后
我们要做的是先要把这个跳到我们的函数处理过里面的参数在去调用原来的API
所以 我们要把call 函数改成 jmp 我们自己的函数 参数压到堆栈就先调自己的函数 去处理参数 或实现其他一些
所以 地址计算 是 自己的函数-真正的函数-5
call 地址一共占5个字节
比如 call的地址 4E0000
我们的4F0000
然后 写的话 JMP实际跳转的是偏移
就是 4E0000到 4F0000的偏移
就是这条指令到我们的假的 中间的差在减5为什吗减5呢 因为真的那个callXXX占了5个字节
其实是从callXX后一条指令到我们假的值就是偏移
然后就是 fffb
然后写进去的内存就是callxxx被写成我们的例子 jmp 0000fffb
当然OD里看到了 就是jmp 4F0000= =因为OD都是把偏移的计算到实际位置的 方便人的观看
先回个贴拿鱼币 luguo看一看 还能回复?{:1_1:} 回个贴拿鱼币 漂亮的解释回答 见贴必回。
+5据我所了解的是因为最多能修改5字节还是5位.......(因为要修改地址)
实在有点不知道了,因为关于HOOK的资料的确很少.... 先回个贴拿鱼币 回帖拿鱼币 回帖拿鱼币 {:10_275:} 回帖 我来看看
页:
[1]
2