"HK"平常之凍結術

 

在那遙遠的MSDN上,有那麼一隻被隱藏的函數,它掌管着Windows內核威力不容小覷~git

本教程僅做爲學習研究,禁止其餘用途!github

富強、民主、文明、和諧, 自由、平等、公正、法治, 愛國、敬業、誠信、友善函數

1、準備工做

首先咱們須要準備4只dll:須要引用using System.Runtime.InteropServices;學習

 1 [DllImport("ntdll.dll")]
 2         private static extern uint NtSuspendProcess([In] IntPtr processHandle);//凍結術
 3 
 4         [DllImport("ntdll.dll")]
 5         private static extern uint NtResumeProcess([In] IntPtr processHandle);//解凍術
 6 
 7         [DllImport("kernel32.dll", SetLastError = true)]
 8         private static extern IntPtr OpenProcess(
 9  uint desiredAccess,
10             bool inheritHandle,
11             int processId);//打開線程並獲取Handle
12 
13         [DllImport("kernel32.dll", SetLastError = true)]
14         [return: MarshalAs(UnmanagedType.Bool)]
15         private static extern bool CloseHandle([In] IntPtr handle);//釋放以前的OpenProcess

接下來咱們把它封裝起來ui

 1  public static void SuspendProcess(int processId)
 2         {
 3             IntPtr hProc = IntPtr.Zero;
 4             hProc = OpenProcess(0x800, false, processId);
 5             if (hProc != IntPtr.Zero) { 
 6                 NtSuspendProcess(hProc);
 7                 CloseHandle(hProc);
 8             }
 9         }
10 
11         public static void ResumeProcess(int processId)
12         {
13             IntPtr hProc = IntPtr.Zero;
14             hProc = OpenProcess(0x800, false, processId);
15             if (hProc != IntPtr.Zero){
16                 NtResumeProcess(hProc);
17                 CloseHandle(hProc);
18             }
19         }

2、編碼工做

以C#WinForm爲例,將這段代碼放在Form的Loaded或Button_Click事件裏編碼

var data = Process.GetProcesses();//獲取全部進程
foreach (var p in data) { try { if (p.ProcessName != "Freeze") //注意不要把本身凍結了!!此處「Freeze」能夠換成你的進程名,通常就是項目名稱
                            ProcessMgr.SuspendProcess(p.Id);//[滑稽]凍結大法
                         } catch { } }

 3、運行調試

千萬不能在VisualStudio裏調試

千萬不能在VisualStudio裏調試

千萬不能在VisualStudio裏調試

由於程序也會凍結VS,而VS關聯這程序,因此凍結vs本身也動不了了spa

但若是你想在vs裏調試能夠在上方加入if判斷線程

 

前方高能調試

好了,我要關電腦了。。。code

 

感興趣的小夥伴能夠本身下載來玩一玩:https://github.com/TwilightLemon/Freeze

相關文章
相關標籤/搜索