【问题标题】:Executing code when application is killed by TaskManager or CMD当应用程序被 TaskManager 或 CMD 杀死时执行代码
【发布时间】:2017-08-26 01:10:35
【问题描述】:

我正在为我的笔记本电脑制作一个远程管理工具,因此无论何时我都可以通过网络界面访问它。

我想知道当应用程序被任务管理器或 CMD/Powershell 杀死时是否可以执行以下代码:

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create($"http://10.0.0.1/?p=Logout&HOSTNAME={HOSTNAME}&IP={IP}&USERNAME={USERNAME}&HASH={HASH}");
        request.AutomaticDecompression = DecompressionMethods.GZip;
        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse());

(HOSTNAME、IP、USERNAME 和 HASH 是变量)

这将被执行,以便我的笔记本电脑从我的数据库中注销。

P.S 我知道它容易受到 SQL 注入的影响,但我会稍后修复它。

【问题讨论】:

    标签: c# mysql get httpwebrequest


    【解决方案1】:

    取决于您的应用程序被终止的方式,但是您可以涵盖很多内容。我确定它适用于任务管理器,但是 TerminateProcess 并且当然在内核模式下可能会很痛苦,不是那样,我猜就是这种情况。这是一个例子:

    private delegate bool ConsoleEventDelegate(int eventType);
    
    public static Main(string[] args)
    {
                SetConsoleCtrlHandler(ConsoleEventCallback, true);
                AppDomain.CurrentDomain.UnhandledException += Reset;
                AppDomain.CurrentDomain.ProcessExit += Exit;
                AppDomain.CurrentDomain.DomainUnload += Exit;
    }
    
            private static void Exit(object sender, EventArgs e)
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create($"http://10.0.0.1/?p=Logout&HOSTNAME={HOSTNAME}&IP={IP}&USERNAME={USERNAME}&HASH={HASH}");
            request.AutomaticDecompression = DecompressionMethods.GZip;
            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse());
            }
    
            private static void Reset(object sender, UnhandledExceptionEventArgs e)
            {
                Exit(null, null);
            }
    
            private static bool ConsoleEventCallback(int eventType = 0)
            {
                Exit(null, null);
                return false;
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-18
      • 1970-01-01
      • 1970-01-01
      • 2013-09-19
      • 1970-01-01
      • 1970-01-01
      • 2011-06-06
      • 1970-01-01
      相关资源
      最近更新 更多