反调试之Fake F8

F7和F8称为单步步入与单步步过

F7可以一步一步跟入call指令,F8则是在call指令下一行代码设置断点

call指令分为两步骤,第一个步骤是将EIP的值修改为调用函数的地址,第二个步骤是将下一行代码地址存入堆栈中

retuen指令也分为两步骤,把堆栈的值取出来放入EIP中,同时ESP+4

此反调试方法是让F8不能在下一行断点,并使其找不到程序往哪跑
找一个函数
在这里插入图片描述
进入函数中,用一行代码将ESP中存储的下一行代码的地址修改掉

在这里插入图片描述
此时F8该函数就会直接跟飞掉程序,只有用F7跟入函数中才能破解
针对此情况可以通过大量的没有意义的call函数,消耗反调试人员的耐心
让其失去耐心放弃用F7一步步跟入,直接F8跳过,使其找不到是通过哪个call指令跳到需要的程序,就能达到反调试的目的,这是较为基础的反调试方法

发布了10 篇原创文章 · 获赞 0 · 访问量 182

猜你喜欢

转载自blog.csdn.net/flowwaterdog/article/details/104906318