反调试手法之CreateProcess反调试
反调试手法之CreateProcess反调试
在学习Win32 创建进程的时候.我们发现了有一个进程信息结构体. STARTUPINFO. 这个结构体可以实现反调试.
具体CreateProcess可以参考上一篇博客.: https://www.cnblogs.com/iBinary/p/9571577.html
一丶实现反调试需要的东西.
假设我们要实现反调试. 那么我们需要一个API
GetStartupInfo (STARTUPINFO) 使用此API可以在进程启动的时候获取启动信息结构体
二丶实现反调试的具体思路
1.我们的程序中调用Getstartupinfo API来获取启动时的启动信息.
2.判断启动信息结构体的值.是否是我们预期的.如果不是在调用 ExitProcess结束进程.
3.如果是调试器启动我们的程序.那么启动信息结构体的信息肯定是不同了.我们可以做实验.
测试:
如果是桌面管理器打开.
如果是调试器打开.
三丶编码实现反调试
代码很简单.如下.
#include <stdio.h> #include <stdlib.h> #include <Windows.h> int main() { STARTUPINFO si; si.cb = sizeof(si); GetStartupInfo(&si); if (si.dwFlags != 1) { ExitProcess(0); } printf("程序没有被反调试\r\n"); system("pause"); return 0; }
测试. 没有反调试的时候打开.
调试器打开. PS: 调试器打开会退出. 并且不会输出内容. 这个属于简单的反调试.如果不知道有可能也过不了. 当然攻防对抗.看谁的基础扎实. 谁更厉害了.
作者:IBinary
坚持两字,简单,轻便,但是真正的执行起来确实需要很长很长时间.当你把坚持两字当做你要走的路,那么你总会成功. 想学习,有问题请加群.群号:725864912(收费)群名称: 逆向学习小分队 群里有大量学习资源. 以及定期直播答疑.有一个良好的学习氛围. 涉及到外挂反外挂病毒 司法取证加解密 驱动过保护 VT 等技术,期待你的进入。
详情请点击链接查看置顶博客 https://www.cnblogs.com/iBinary/p/7572603.html
本文来自博客园,作者:iBinary,未经允许禁止转载 转载前可联系本人.对于爬虫人员来说如果发现保留起诉权力.https://www.cnblogs.com/iBinary/p/9571694.html
欢迎大家关注我的微信公众号.不定期的更新文章.更新技术. 关注公众号后请大家养成 不白嫖的习惯.欢迎大家赞赏. 也希望在看完公众号文章之后 不忘 点击 收藏 转发 以及点击在看功能. QQ群: