挺简单的一个小玩意,可以通过ContinueCall去执行想要执行的函数,执行结束后会返回到指定的SavedContext。逆向分析的时候对ContinueCall或者NtContinue进行F8步过的话直接会跟丢,或者程序会挂掉。(这个思路没见有人说过啊,我估计这也是很鸡肋的东西,对反调试的帮助应该不算很大,也就发着玩玩了,大火看个乐)
不仅可以用GetSavedContext获取context,也可以自定义构造,那样的话就灵活更多了。
测试例子1
测试例子2
测试例子3
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
yy虫子yy NtContinue相当于jmp,F8就会直接跟丢 用NtContinue来实现call调用,调用完还要通过CONTEXT返回 效率会比较低,不过对于程序接口防止第三方调用稍微有点作用
不是很懂,调试器为什么会跟丢,为什么jmp不会丢,好像协程库也不会丢,为什么NtContinue会丢
Caim Astraea F7也会跟丢,和jmp还是有点区别。效率方面,如果把CONTEXT返回变成三环过程,应该就和SEH改流程之类的没什么分别
qj111111 cpu有个单步执行模式,我记得是flag标志位修改,这样肯定不会跟丢,调试器F7的原理是把下一步要执行的汇编处改成CC断点,都不走那步流程下断也没用啊
。。。