我想修改某个程序中寄存器的值。 唯一的问题是,我不知道如何访问它。如果有办法,我该如何读/写它? (首选语言C++)
最佳答案
如果你想在程序运行时修改一个特定的寄存器,你可以使用调试器来实现,比如OllyDbg。 .
如果您想在程序未运行时修改代码,以便将来运行该程序时它的行为会有所不同,您可以使用反汇编程序(例如 IDA)查看程序集。 .但是您还需要一些可以根据您的修改重新组装程序的东西,例如 NAsm
您还可以在两个程序都在运行时将一个程序附加到另一个程序,使用 Windows 中的 OpenProcess() 函数。然后,您可以向其他进程读取和写入任意值,包括修改它的代码。设置和正常工作是一件非常棘手的事情……这就是调试器的工作方式,通常是非常复杂的软件。最好使用现有的而不是尝试编写自己的!
关于c++ - 如何使用 C++ 从 .exe 读取/写入 asm 寄存器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32418677/