如何检测程序是否被调试

原创 2007年09月11日 20:22:00
 如何检测程序是否被调试,其实很简单,几行代码就行了,常应用于软件防破解等方面,但对于某些调试器而言无效(比如改进的OllyDbg--OllyICE)。
下面是C+asm代码,大家可以试试。
#include <stdio.h>
#include <conio.h>
int IsDebugged()
{
    __asm
    {
        mov eax, fs: [30h] //获取线程环境块中对应的进程环境块的地址
        movzx eax, byte ptr[eax + 2h] //获取BebingDebugged标志的值
        or al, al  //测试BebingDebugged标志的值
        jz FLAG1
        mov eax, 1
        jmp END
 FLAG1:
        mov eax, 0 //推荐使用xor eax,eax语句
 END:
    }
}

int main()
{
    if (IsDebugged())
    {
        printf("有调试器!/n");
    }
    else
    {
        printf("无调试器!/n");
    }
    getch();
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C/C++检测进程是否被调试

程序使用API SetUnhandledExceptionFilter 来注册一个未处理异常的函数1,如果进程没有被调试,那么会触发一个未处理异常,导致操作系统会将控制权交给函数1。如果进程被调试,则...

HTML5之启动篇-检测浏览器是否支持HTML5与第一个H5程序

通过编写javaScript了解浏览器是否支持HTML5

不影响服务器处理的前提下,检测客户端程序是否被强制终了

【需求】 不影响服务器处理的前提下,检测客户端程序是否被强制终了。 【现状】 服务器端和客户端的Socket都设定了keepalive属性。 服务器端设定了探测次数等参数,客户端、服务器只是打...

C# 检测程序是否已经运行

写了个工具类库,因为基本上每个程序都会用到。 直接上码: using System; using System.Collections.Generic; using System.Text; usin...

检测主机tcp端口是否开放的程序

1,做网络安全有几个月时间了,每天都在忙于事物性工作搞技术研究的时间相对比较少。但是还是接触了不少网络安全知识。       工作中经常要用到扫描工具对主机漏洞进行扫描或端口扫描。所以自己也想写个主...

程序猿之---C语言细节7(检测两个整型相加是否溢出)

主要内容:检测两个整型相加是否溢出 #include #include int main(int argc, char *argv[]) { /* * a和b为非负整型变量,检测a+b是...

GTK 程序 检测 网线是否连接 本地网络状态 C语言实现

思路:         主程序创建一个进程, 每2秒查看一下网络状态,然后打印输出          通过检查文件         /sys/class/net/w...

关于“如何检测节点网络中是否存在闭环之java实现”的程序bug修复

修复“如何检测节点网络中是否存在闭环之java实现”的程序bug

关于GetActiveObject,如何判断所取得对象的类型、、、可以用来检测某个程序是否运行

关于GetActiveObject,如何判断所取得对象的类型   可以用来检测某个程序是否运行  Search Office Business Applicat...

用Linux守护进程检测某个程序是否运行

用Linux守护进程检测某个程序是否运行 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:Fedor...
  • jdh99
  • jdh99
  • 2012-02-28 09:05
  • 7833
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)