"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

相关文章
相关标签/搜索