<分区>
我需要调用一个未记录的函数,它看起来像 -
struct SomeStruct Func(wchar_t *, bool);
现在的问题是我没有SomeStruct
的定义。我不需要 SomeStruct
的定义,只需要调用函数。
如何调用此函数或计算出 SomeStruct
的大小,以便为 struct
分配内存?
我的假设是,我可以分配一个 struct
,它占用与 SomeStruct
相同的内存,然后我可以调用该函数,返回值可以保存在该临时 结构
。
截至目前,它在调用此函数时崩溃。
为什么我需要这个是因为我想 Hook 这个函数并在发生这种情况时拦截调用。现在要 Hook 一个函数,您需要将完全相同的内存返回给调用者,这样它就不会最终破坏堆栈。
我通过查看进程返回的内存以及一些命中和试验计算出结构大小。
我知道这也可以通过直接从堆栈中读取寄存器来完成,但我现在还不知 Prop 体怎么做。
一旦我弄清楚了,我会在此处发布解决方案。