单步步入(F7)
    单步步过(F8)
    每个软件的快捷键不同,这里以DTDebug为例。

    单不步入与单步步过在没有遇到call之前作用相同,不同的是
    当遇到call时
    单步步入会进入call的调用一步一步执行
    单步步过会将调用的指令当成一步执行

    断点 0xCC
    阻断程序继续运行
    int 3指令也可以实现相同的操作
    设置EFL的DF位可以实现F7
    而F8是在下一条指令处下一个断点,所以当执行完call之后能在断点处继续执行指令。
    所以如果在call执行后调用的是改变栈顶数据的指令mov dword pdr sd:[0]
    此时用F8会跟丢程序,达到反调试的目的。此方法当使用F7时失效。
    但是如果我们一个call套两个call两个call中再套call,在把真正的指令写在任何一个call中,其他的call中写大量无用指令,此时用F7不现实,而用F8又可能找不到真正的程序,达到反调试的目的。