第 5 章 高级内存取证¶

无论你破解游戏是出于爱好还是作为事业,你最终都会发现自己夹在岩石和……一份难以理解的内存转储之间。无论是与竞争对手的机器人开发者竞速发布热门功能、对抗游戏公司源源不断的更新,还是努力定位内存中的复杂数据结构,你都需要一流的内存取证技能才能取胜。
成功的机器人开发摇摇欲坠地平衡在速度和技能之上,坚韧的黑客必须迎接挑战:迅速发布巧妙的功能、及时响应游戏更新、随时搜索即使是最难以捉摸的数据。然而,要做到这些,需要全面理解常见的内存模式、高级数据结构,以及不同数据块各自的用途。
内存取证的这三个方面也许是你武器库中最有效的武器,本章将教你如何使用它们。首先,我会讨论高级内存扫描,重点是通过理解数据的用途和用法来搜索数据。接下来,我会教你如何使用内存模式应对游戏更新,调整你的机器人,而不必从头重新定位所有地址。最后,我会剖析 C++ 标准库中四种最常见的复杂数据结构(std::string、std::vector、std::list 和 std::map),让你能在内存中识别它们并枚举其内容。到本章结束时,我希望你能深入理解内存取证,能够应对任何与内存扫描相关的挑战。