zoukankan      html  css  js  c++  java
  • 简单的.net反调试,调试检测

    .net下有一款强大的反调试利器:dnspy

    可以直接调试编译出来的.exe程序,查看内存中的值,甚至直接修改源代码;

    那么我们的程序如何检测到自己正在被调试呢?

    在windows中,用户进程全部由任务管理程序“explorer”启动:即 无论双击快捷方式还是cmd/bat命令启动,该进程的父进程都是

    “explorer”

    所以,一个简单的反调试方法是检测当前进程的父进程是否是“explorer”,如果不是,则退出程序,或 执行其他脑洞大开的操作!

    //main方法或者单独使用一个线程
    //保险起见,同时检测explorer的父进程是否为null
    Process Parent= GetParentProcess();
    Process Grandpa= ParentProcessUtilities.GetParentProcess(Parent.Handle);
    if (Grandpa!= null || !Parent.ProcessName.ToLower().Contains("explorer"))
                        Environment.Exit(0);//直接退出
                

    效果:在dnspy调试时直接退出!

    如果传入null参数,则调试时抛异常

    Environment.Exit(null);//抛异常

  • 相关阅读:
    C# 设计模式-状态模式
    C# 设计模式-备忘录模式
    C# 设计模式-命令模式
    本地易优安装总结
    视频自动添加字幕
    百度商桥安装
    百度统计
    模板
    百度地图API
    栅格布局的理解
  • 原文地址:https://www.cnblogs.com/Zdelta/p/14122323.html
Copyright © 2011-2022 走看看