我目前正在研究调试器。我读过调试器有软件断点(显然这些是最常用的断点)。这些通过将操作码的第一个字节替换为 Int 3(操作码 0xcc)来工作。
我已经读过程序的文本(/code)段是只读的(如果这个段不需要只读的话,就是停止代码修改自己的指令,自我修改代码)。我的问题是调试器如何修改只读指令。我在这里错过了什么吗。对此的任何评论或对此理论的指针表示赞赏。
谢谢。
我目前正在研究调试器。我读过调试器有软件断点(显然这些是最常用的断点)。这些通过将操作码的第一个字节替换为 Int 3(操作码 0xcc)来工作。
我已经读过程序的文本(/code)段是只读的(如果这个段不需要只读的话,就是停止代码修改自己的指令,自我修改代码)。我的问题是调试器如何修改只读指令。我在这里错过了什么吗。对此的任何评论或对此理论的指针表示赞赏。
谢谢。