在那遥远的MSDN上,有那么一只被隐藏的函数,它掌管着Windows内核威力不容小觑~

本教程仅作为学习研究,禁止其他用途!

富强、民主、文明、和谐, 自由、平等、公正、法治, 爱国、敬业、诚信、友善

一、准备工作

首先我们需要准备4只dll:需要引用using System.Runtime.InteropServices;

 [DllImport("ntdll.dll")]
private static extern uint NtSuspendProcess([In] IntPtr processHandle);//冻结术 [DllImport("ntdll.dll")]
private static extern uint NtResumeProcess([In] IntPtr processHandle);//解冻术 [DllImport("kernel32.dll", SetLastError = true)]
private static extern IntPtr OpenProcess(
uint desiredAccess,
bool inheritHandle,
int processId);//打开线程并获取Handle [DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool CloseHandle([In] IntPtr handle);//释放之前的OpenProcess

接下来我们把它封装起来

  public static void SuspendProcess(int processId)
{
IntPtr hProc = IntPtr.Zero;
hProc = OpenProcess(0x800, false, processId);
if (hProc != IntPtr.Zero) {
NtSuspendProcess(hProc);
CloseHandle(hProc);
}
} public static void ResumeProcess(int processId)
{
IntPtr hProc = IntPtr.Zero;
hProc = OpenProcess(0x800, false, processId);
if (hProc != IntPtr.Zero){
NtResumeProcess(hProc);
CloseHandle(hProc);
}
}

二、编码工作

以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 { } }

三、运行调试

千万不能在VisualStudio里调试

千万不能在VisualStudio里调试

千万不能在VisualStudio里调试

因为程序也会冻结VS,而VS关联这程序,所以冻结vs自己也动不了了

但如果你想在vs里调试可以在上方加入if判断

前方高能

好了,我要关电脑了。。。

感兴趣的小伙伴可以自己下载来玩一玩:https://github.com/TwilightLemon/Freeze

"HK"日常之冻结术的更多相关文章

  1. "HK"日常之制作一只QQ刷屏

    刷屏器是什么?可以吃吗?如果可以吃它好吃吗? um. 刷屏器就是可以定时发生信息的东西 刷屏器可以应用于很多方面,例如别人不理你了或者在QQ斗图的时候.警告:本教程仅作为学习研究,禁止其他用途!--- ...

  2. "HK"日常之用C# Process写一只小病毒

    众所周知,Process可以启动和关闭电脑上的进程,命名空间位于 System.Diagnostics,本次的教程就是利用其中的GetProcesses和Kill方法来实现的. 一.编码工作 首先我们 ...

  3. 技术债务(Technical debt)的产生原因及衡量解决

    第一次发布代码,就好比借了一笔钱.只要通过不断重写来偿还债务,小额负债可以加速开发.但久未偿还债务会引发危险.复用马马虎虎的代码,类似于负债的利息.整个部门有可能因为松散的实现,不完全的面向对象的设计 ...

  4. “HK”的日常之ARP断网攻击

    ARP断网攻击是什么?可以吃吗?如果可以吃它好吃吗? ARP断网攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响 ...

  5. .NET框架设计(高级框架架构模式)—钝化程序、逻辑冻结、冻结程序的延续、瞬间转移

    阅读目录: 1.开篇介绍 2.程序书签(代码书签机制) 2.1ProgramBookmark 实现(使用委托来锚点代码书签) 2.2ProgramBookmarkManager书签管理器(对象化书签集 ...

  6. Linux-shell-算术运算{expr、bc、dc、(( ))和[ ]}

    Linux-shell-算术运算{expr.bc.dc.(( ))和[ ]} 摘自: https://www.cnblogs.com/snowsolf/p/3325235.html 在Linux下做算 ...

  7. PostgreSQL 日常数据库维护工作

    日常数据库维护工作定期备份,定期”清理“数据库,周期性的日志文件管理check_postgres可用于检测数据库的健康并报告异常情况 1. 日常清理 PostgreSQL数据库要求周期性的清理维护.对 ...

  8. VERITA Netbackup日常巡检详细说明

    VERITA备份日常监控 一. 相关检查方法.命令 1.1 启动NBU的图形管理界面: /usr/openv/netbackup/bin/jnbSA & 1.2字符界面命令: 1.2.1cat ...

  9. Spring cloud 项目———酷派手机商城 (话术)1.0

     酷派电商网站 描述: 随着电子商务的发展,网上购物正在趋于一种时尚,电子商务网站也逐渐成为企业顺应潮流的标配.大多数人知道可能在电子商务网站前端有查询,注册登录,购物车等等功能.可是您知道建设电子商 ...

随机推荐

  1. 在VMware虚拟机下安装Linux CentOS7

    1.首先下载并安装VMware虚拟机,下载地址:https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluatio ...

  2. 180706-BigDecimal除法的精度问题

    BigDecimal除法的精度问题 在使用BigDecimal的除法时,遇到一个鬼畜的问题,本以为的精度计算,结果使用返回0,当然最终发现还是自己的使用姿势不对导致的,因此记录一下,避免后面重蹈覆辙 ...

  3. SecureCRT 注册

    http://download.csdn.net/download/xia2011214228/9952983 1.下载后解压到安装目录 2.输入自己要注册的:name company 后genera ...

  4. [JSON].connectionValue()

    语法: [JSON].connectionValue() 说明: 将对象的所有键值接连成新的字符串值 返回: [String] 示例: Set a = toJson() c = Array(1,2,3 ...

  5. Java异常处理介绍(Java知识的重点内容)

    Java 异常处理 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error:如果你 ...

  6. 【shell 练习1】编写Shell条件句练习

    实例一.比较两个整数大小 #!/bin/bash while true do read -p "Please input two int nums:" a b >/dev/& ...

  7. 剑指offer-二叉树搜索树与双向链表25

    题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. class Solution: def Convert(self, pRo ...

  8. An Adaptive Color-Based Particle Filter--粒子滤波

    粒子滤波跟踪的具体步骤如下: 1. Resampling the particles to avoid degeneracy 2. Propagate  each particles accordin ...

  9. .Net并行编程 - 并行任务基础知识

    在微软的.NET Framework中,任务是通过System.Threading.Tasks命令空间中的Task类来实现的.它的静态属性Task.Factory是TaskFactory类的一个实例, ...

  10. C++基础和STL,Effective C++笔记

    这个作者总结的c++基础,特别好. 可以看看. http://blog.csdn.net/tham_/article/details/51169792