2014-02-06 66 views
1

有没有人如何在Deviare(Python)中使用SkipCall()? 他们会这样说: HRESULT SkipCall() 跳过调用原始函数。 当我尝试这样做时,它不起作用。它在同一个呼叫中循环。我想我也应该在寄存器上做一些东西(比如恢复EBP)。但问题是NktCallInfo.Register集在Python中不起作用。我尝试类似:如何在Deviare挂钩时使用SkippCall?

NktHookCallInfo.Register(ESP, EBP) 

但它不起作用。请帮助 ?

回答

3

我最近看到这个问题。预计不会迟到。 (我是Deviare开发人员)

当您调用SkipCall时,必须使用提供的'INktHookCallInfo'方法设置返回值和可选的Win32 lasterror。如果挂钩的函数在数据库中,它将根据调用约定从堆栈中删除参数。

如果您在不分配函数的情况下挂接任意地址,则必须通过将ESP/RSP寄存器设置为合适的手动进行手动解除。