C++ 如何在另一个程序中找到向量边界';记忆

C++ 如何在另一个程序中找到向量边界';记忆,c++,linux,vector,reverse-engineering,C++,Linux,Vector,Reverse Engineering,最近对内存编辑很感兴趣,我决定玩一玩我曾经玩过的一款旧的开源游戏(自由犯罪队) 我的“C/C++/Asm/GeneralMemory”知识充其量是粗略的,但我尝试的最初几件事进展顺利,使用ptrace,我设法找到了指向对象的全局指针,该指针将我引向funds变量和其他各种同样简单的任务。但是我试图改变你和你的队友的技能和属性,并意识到所有的生物 s被存储在向量< /代码>(C++向量)中。 因此,避免问题类/对象如何存储在内存中我的问题是;我能在运行时从另一个程序可靠地找到向量的长度吗?如果可以

最近对内存编辑很感兴趣,我决定玩一玩我曾经玩过的一款旧的开源游戏(自由犯罪队)

我的“C/C++/Asm/GeneralMemory”知识充其量是粗略的,但我尝试的最初几件事进展顺利,使用ptrace,我设法找到了指向对象的全局指针,该指针将我引向
funds
变量和其他各种同样简单的任务。但是我试图改变你和你的队友的技能和属性,并意识到所有的<代码>生物<代码> s被存储在<代码>向量< /代码>(C++向量)中。 因此,避免问题
类/对象如何存储在内存中
我的问题是;我能在运行时从另一个程序可靠地找到向量的长度吗?如果可以,如何找到

澄清我不是在寻找如何从C++程序中找到向量大小,而是从当前正在检查它的内存的另一个程序中寻找答案。 编辑

本练习的目的也是为了进一步了解记忆编辑背后的现实。使用在该上下文中通常不可用的信息(通常我指的是访问源文件或调试符号)对该目的没有用处

另外,我在正确学习C/C++的道路上还很早。虽然可能没有达到同样的热情,但参考书籍/文本/文档仍然是非常宝贵的

额外细节

使用GCC 6.3.1

如果是开源的,为什么不直接检查源文件?用“向量”,你是指C++类的代码<代码>矢量>代码>还是你指的是“通用计算机科学”中的“向量”?还有,你说的“可靠”是什么意思?你是说它在实践中效果很好吗?或者你的意思是保证它一直都能完美工作?研究一下各个编译器是如何管理堆栈的,然后看看特定的
向量是如何工作的implemented@MichaelWalz这个练习的目的是学习更多关于记忆分析的知识,而不是学习更多关于这个项目的知识。我选择了一个开源项目,这样我可以检查我自己的工作。我将编辑这个问题,让它更清楚。“DaviSwiturz是C++类向量的一个实例。就可靠性而言,在实践中工作是可以的。这纯粹是一个个人项目,为了兴趣/知识。如果它是开源的,为什么不检查源文件?通过“向量”,你是指C++类的代码<代码>矢量<代码>,或者你是指“通用计算机科学”中的“向量”?还有,你说的“可靠”是什么意思?你是说它在实践中效果很好吗?或者你的意思是保证它一直都能完美工作?研究一下各个编译器是如何管理堆栈的,然后看看特定的
向量是如何工作的implemented@MichaelWalz这个练习的目的是学习更多关于记忆分析的知识,而不是学习更多关于这个项目的知识。我选择了一个开源项目,这样我可以检查我自己的工作。我将编辑这个问题,让它更清楚。“DaviSwiturz是C++类向量的一个实例。就可靠性而言,在实践中工作是可以的。这纯粹是出于兴趣/知识的个人项目。