-
-
[旧帖]
[求助]菜鸟关于inline hook的一点疑问
0.00雪花
-
发表于:
2011-9-22 20:31
1193
-
[旧帖] [求助]菜鸟关于inline hook的一点疑问
0.00雪花
我用用C写了简单的inline hook
修改前5个字节,让他跳转到自己的函数DetourMyFunction,在其中调用自己另外的一个函数
Myfunc(参数1,参数2),结束后后执行原函数的前五个字节代码,最后跳转到原函数5字节之后运行
我在有些地方看到说,要测量函数头,修改的并不一定是前5字节,也可能是前n个字节。
问题1:
这前n个字节的n是怎么确定的?
我感觉反正最后都要执行原来的代码(说的是还要执行原来函数代码,并不包括只执行自己函数然后返回的情况),至于修改几个字节应该无所谓了吧,够写一个jmp XXXXX就行了吧(5个字节就够了)
DetourMyFunction定义为_declspec(naked)类型的,也就是自己维护堆栈,因此在其中调用了Myfunc(参数1,参数2)后 添加一句 add esp,8来平衡堆栈,但是不行,如果去掉这句就可以了
问题二:
C调用规则不是说由调用函数者平衡堆栈,因此我才加上add esp,8这句,但是错误,去掉才对,这样的话不是和C调用规则不符吗?
_declspec(naked) DetourMyFunction
{
Myfunc(参数1,参数2)
}
我知道自己很菜,大牛想笑就笑吧,帮我解释下就行了
,先谢谢
第一次提问,但愿不要沉
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法