ILO*_*PIE 7 assembly function ida
当我遇到这样的事情时,我正在寻找IDA中的一个程序,因为我试图弄清楚某个函数是如何工作的:
; C_TestClass::Foo(void)
__text:00000000 __ZN14C_TestClass7FooEv proc near
__text:00000000 jmp __ZN14C_TestClass20Barr ; C_TestClass::Barr(void)
__text:00000000 __ZN14C_TestClass7FooEv endp
__text:00000000
Run Code Online (Sandbox Code Playgroud)
任何人都可以向我解释一下,在这样的情况下,跳到函数会究竟是什么?我猜它是另一个函数的包装器吗?
你是正确的,跳跃通常是一种有效处理未内联的包装函数的方法.
通常,您必须先读取所有函数参数并将其推回堆栈,然后才能调用子函数.
但是当包装函数具有完全相同的原型时:
不需要所有通常的函数调用开销.你可以直接跳到目标.(这些类别可能不是完全必要的,因为在某些其他情况下它仍然可能.)
调用包装函数时设置的所有参数(在堆栈或寄存器中)都已经存在(并且兼容)子函数.
| 归档时间: |
|
| 查看次数: |
208 次 |
| 最近记录: |