最近一直对内存编辑感兴趣我决定玩一个旧的开源游戏我曾经玩过一些(自由犯罪小组)。
我的" C / C ++ / Asm / GeneralMemory"知识是最好的,但我尝试的前几件事情顺利进行,使用ptrace我设法找到一个指向对象的全局指针,它引导我进入funds
变量和其他各种同样简单的任务。但后来我试图改变你/你的队友的技能和属性,并意识到所有Creature
都存储在vector<Creature*>
(C ++向量)中。
因此,我的问题是避免问题how are classes/objects stored in memory
以后的问题;我可以在运行时从另一个程序中可靠地找到向量的长度,如果是这样的话?
澄清我不是要求如何在C ++程序中找到矢量大小的答案,而是从目前正在检查它的内存的另一个程序中寻找答案。
修改
本练习的目的是进一步了解内存编辑背后的现实。使用在该上下文中通常不可用的信息(通常我的意思是访问源文件或调试符号)对此没有用。
我也很早就开始正确地学习C / C ++。虽然可能没有达到相同水平的热情,书籍/文本/文件可供参考仍然是非常宝贵的。
使用GCC 6.3.1