如何在DOS环境下利用INT 3实现代码反向执行?
DOS时代反向执行代码技术的疑问
- 我从一篇博客中了解到,DOS时代存在一种反向执行代码的技术(不确定NT系统下是否可行),其核心思路是先执行操作N,再利用
INT 3修改指令指针以实现反向执行。 - 我尝试搜索相关信息但未找到相近内容,目前能找到的汇编代码大多针对32位和64位架构,不确定这些内容是否有参考价值。
- 我已明确
INT 3的作用:
调试器使用该中断在被调试程序中设置断点。通常做法是用单字节的INT 3指令替换程序中的一个字节,调试器通过INT 3获得控制权后会恢复程序的原始字节。
基于以上信息,我有个猜想:这个被替换的“原始字节”会不会是JUMP指令,且第二个字节为指令偏移量?程序是否可以通过修改存储的原始字节,替换为不同偏移量来实现反向执行?这个猜想是否合理?
内容的提问来源于stack exchange,提问作者Nicholas Humphrey
相关产品推荐
相关产品推荐

