gpt4 book ai didi

c++ - 确定内存中函数/ stub /命名空间的大小

转载 作者:行者123 更新时间:2023-11-28 08:31:14 25 4
gpt4 key购买 nike

我在名为 stub 的命名空间中有几个函数。我必须确定 namespace 的确切起始地址和结束地址,至少是内存中 namespace 的大小(将这些函数复制到另一个进程中)。虽然这在 Visual C++ 2008 中通过添加一个

void stub_end() { }

在命名空间的末尾并使用

size_t size = reinterpret_cast<ULONG_PTR>(stub_end) - reinterpret_cast<ULONG_PTR>(stub_start);

确定 stub 的大小。

之所以可行,是因为 Visual C++ 保留了 .cpp 文件中的函数顺序,但在 Visual C++ 2010 中似乎不再如此。

如何使用 pragma 指令、编译器/链接器工具或类似工具找出函数或整个命名空间/ stub 的大小?

最佳答案

随着最近安全方面的新插入(堆随机化、layout randomization 等),我认为这将变得更加困难。您最终可能不得不单独复制每个函数。

关于c++ - 确定内存中函数/ stub /命名空间的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1953364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com