学习:反调试之检测类名与标题名

反调试之检测类名与标题名:通过FindWindow函数来进行反调试

HWND FindWindowA(
  LPCSTR lpClassName,
  LPCSTR lpWindowName
);

返回值
类型:类型:HWND

如果函数成功,则返回值是具有指定类名和窗口名的窗口的句柄。

如果函数失败,则返回值为NULL。要获取扩展的错误信息,请调用GetLastError。

1、这里自己就不重复F9了,还是通过GetProcAddress来间接的给主要的反调试函数下断点,如下
学习:反调试之检测类名与标题名_第1张图片

2、然后F9进行,首先到的是CreateToolhelp32Snapshot,把当前的所有进程都才能到一个句柄中,然后进行返回

3、紧接着是Process32First,在返回句柄中取出第一个条目放到缓冲区
学习:反调试之检测类名与标题名_第2张图片

4、接着就是FindWindow函数断点

5、然后执行到返回,把当前的OD的句柄值放进eax中
学习:反调试之检测类名与标题名_第3张图片

6、如果判断成功的话 那么直接ExitProcess
学习:反调试之检测类名与标题名_第4张图片


反调试之检测类名与标题名的绕过:FindWindow接收两个参数,上面我们可以看到传入的参数为类名,标题名不进行判断
学习:反调试之检测类名与标题名_第5张图片

直接在判断比较的时候 将ZF标志位置1不进行跳转就可以成功绕过了

学习:反调试之检测类名与标题名_第6张图片

学习:反调试之检测类名与标题名_第7张图片

你可能感兴趣的:(学习:反调试之检测类名与标题名)