如何从同一进程中钩接函数并获取调用函数的地址
How to hook a function from the same process and get the address of the caller function?
我需要这样做,以避免从注入代码调用进程的函数。
所以想要钩住这个函数来检查调用是来自当前模块还是来自外部模块,然后我比较执行调用的指令的地址与模块的地址范围。
谢谢
MSVC有一个内在的_ReturnAddress,它给出了函数调用者的返回地址,因此,您可以在protected function的最开始调用它,并将其与指定的模块(base, length)进行比较,以检测是否允许执行函数的左部分。
相关文章:
- constexpr 函数获取常量字符*
- 在 C++ 中将函数获取和设置为虚拟函数
- 函数获取参数的变量列表并将它们转换为一系列字节?
- 如何在C++中从Lua函数获取返回表?
- C++使用第二个函数获取字符数组的长度
- 在编译时通过 constexpr 或模板函数获取多维 std::array 的大小
- 包装 C API 通过C++接受迭代器的函数获取原始指针
- 如何指定创建文件函数获取未缓存的结果?
- 从函数获取 char* 后的条件 gdb 断点
- 如何在不使用返回的情况下从函数获取变量的地址(指针)
- RCPP:将布尔值传递在列表中从R到C 函数的错误,该函数获取RCPP ::列表
- 从 Rcpp c++ 函数获取 r 函数参数
- 如何从子例程函数获取到 main 函数的返回值
- 使用 getline 函数获取分段错误
- 如何使用getForegroundWindow函数获取模块
- C++,无法使用 .size() 函数获取有效的矢量大小
- 如何从调用的函数获取返回值,该函数在 TBB 中的另一个线程中执行
- 如何使用C或C++函数获取特定文件夹中的文件数
- 如何在 c++ 中从函数获取返回值而不为其变量赋值
- 如何使用strlen函数获取字符串的长度