精华内容
下载资源
问答
  • c# 隐藏进程代码,win10 win7 任务管理器隐藏进程
  • 任务管理器进程列表是使用超级列表框的,我们就可以通过操作这里达到隐藏。。 原理就是线程死循环删除自己在进程列表的那行,为什么死循环呢?因为进程列表会刷新的。。 优点:不用加载驱动,简单实用,不需要什么高...
  • 隐藏进程(在任务管理器中看不到

    热门讨论 2012-07-22 08:57:10
    隐藏进程(在任务管理器中看不到,免杀处理用,源码可以自己改,很牛逼的东西,自己写的发出来分享一下
  • 网上的c#远程进程代码都不能用,c++的也基本上没用。有啥问题还是自己解决好,所以自己写了一份代码。其中用了自己写的FastWin32(用的老版的,新版的移除了Win32控件操作)
  • VB关于任务管理器进程隐藏的问题,怎么样才能将执行的图标从任务管理器中隐藏掉,同时防止程序关闭?
  • 优点:不用加载驱动,简单实用,不需要什么高技术。缺点:①限制winxp和win7(为什么...)②只能隐藏任务管理器进程列表的(只能防电脑小白)③如果进程列表没有“PID”列,会隐藏全部同名进程说明:仅仅适合winXP和win7系统
  • 摘要:VC/C++源码,系统相关,任务管理器 R3任务管理器隐藏,Ring3层隐藏进程 稳定可靠的VC++代码。注:本程序需要在命令提示符环境下运行,在开始运行中打开命令提示符,然后拖动本EXE程序到命令提示符窗口中即可,...
  • 本篇文章是对在C#任务管理器中应用程序选项隐藏程序本身的方法进行了详细的分析介绍,需要的朋友参考下
  • 优点:不用加载驱动,简单实用,不需要什么高技术。 缺点: ①限制winxp和win7(为...②只能隐藏任务管理器进程列表的(只能防电脑小白) ③如果进程列表没有“PID”列,会隐藏全部同名进程 说明:仅仅适合winXP和win7系统
  • 隐藏进程 使进程不在任务管理器中出现,是一个很好的编程技巧,代码详细
  • C#+任务管理器隐藏进程
  • 难得的支持2000 2003 xp vista win7 隐藏进程的源代码,解决只能在win98下隐藏进程的难题。
  • 使用NT挂钩(NtQuerySystemInformation)从任务管理器隐藏进程。 一个简单的Ring-3(用户模式)rootkit。 如何 将API函数NtQuerySystemInformation()与我们自己的函数挂钩,该函数对任务管理器隐藏进程 挂钩...
  • 使用与xp, win7等各种windows平台,而且不用注入API方式,免除杀毒软件误判之忧. 方法非常简单,就是使用最普通的往进程的窗口发送消息的办法.
  • ASP.Net4.0中新增23项功能 这里说的只是在WINDOWS 任务管理器隐藏,不是在进程里消失例如我们要隐藏QQ进程,不在WINDOWS任务管理器里显示 个人页面 登陆交谈
  • windows进程隐藏工具

    2018-09-08 20:32:04
    进程隐藏工具是简单小巧的软件,可以隐藏任务栏、进程,一键隐藏你想隐藏的程序。如果你上班、上课期间偷偷看电影、玩游戏又害怕被发现,可以下载一款进程隐藏工具,一键就能隐藏你开着的进程。
  • 超级任务管理器隐藏任务查看进程超详细的软件 适合网吧被管理的 任务查看
  • VB将自身进程任务管理器隐藏一例,当然还可以将进程显示,没有复杂的界面,如上图中,有两个按钮,大家下载源码自己测试吧。
  • 任务管理器实际上是用了SysListView32控件,所以发点消息就可以解决(但是发点消息也没那么容易) ListView_GetItemText宏只是对当前进程有效,对远程进程是无效的,但是label之类的控件gettext对远程进程是有效的...

    网上的都不能用啊…全是未完成代码或者兼容性极差的代码。自己写呗。
    任务管理器实际上是用了SysListView32控件,所以发点消息就可以解决(但是发点消息也没那么容易)
    ListView_GetItemText宏只是对当前进程有效,对远程进程是无效的,但是label之类的控件gettext对远程进程是有效的,具体的可以看《Windows via C/C++》中文第5版第579面(只是记得有这个特性,但不记得书中多少面提到了。特地翻书找到了这一面,不容易)。

    成品:http://download.csdn.net/download/wwh1004/10244689

    比较关键的代码在下面

    /// <summary>
    /// 读取字符串,如果读取到非托管进程中,并且读取为LPSTR LPWSTTR BSTR等字符串类型,请自行转换为byte[]并使用<see cref="ReadBytes(uint, Pointer, byte[])"/><see cref="ReadBytes(uint, IntPtr, byte[])"/>
    /// </summary>
    /// <param name="processHandle">进程句柄</param>
    /// <param name="addr">地址</param>
    /// <param name="value"></param>
    /// <param name="bufferSize">缓存大小</param>
    /// <param name="doubleZero">是否以2个\0结尾(比如LPWSTR以2个字节\0结尾,而LPSTR以1个字节\0结尾)</param>
    /// <param name="encoding">编码</param>
    /// <returns></returns>
    internal static unsafe bool ReadStringInternal(IntPtr processHandle, IntPtr addr, out string value, int bufferSize, bool doubleZero, Encoding encoding)
    {
        if (encoding == null)
            throw new ArgumentNullException(nameof(encoding) + "不能为null");
        if (bufferSize <= 0)
            throw new ArgumentOutOfRangeException(nameof(bufferSize) + "小于等于0");
    
        byte[] buffer;
        uint numberOfBytesRead;
        List<byte> bufferList;
        bool lastByteIsZero;
    
        buffer = null;
        numberOfBytesRead = 0;
        bufferList = new List<byte>(bufferSize);
        lastByteIsZero = false;
        for (int i = 0; i < int.MaxValue; i++)
        {
            buffer = new byte[bufferSize];
            ReadProcessMemory(processHandle, addr + bufferSize * i, buffer, (uint)bufferSize, &numberOfBytesRead);
            //读取到缓存
            if ((int)numberOfBytesRead == bufferSize)
            {
                //读取完整
                for (int j = 0; j < bufferSize; j++)
                {
                    if (buffer[j] == 0)
                    {
                        //出现\0
                        if (doubleZero)
                        {
                            //如果双\0结尾
                            if (lastByteIsZero)
                                //上一个字节为\0
                                goto addLastRange;
                            if (j + 1 != bufferSize)
                            {
                                //不是缓存区最后一个字节
                                if (buffer[j + 1] == 0)
                                    //下一个字节也为\0
                                    goto addLastRange;
                            }
                            else
                                //缓存读完,标记上一个字节为\0
                                lastByteIsZero = true;
                        }
                        else
                            //不是2个\0结尾,直接跳出
                            goto addLastRange;
                    }
                    else
                    {
                        if (lastByteIsZero)
                            //上一个字节为\0,但当前字节不是
                            lastByteIsZero = false;
                    }
                }
            }
            else if (numberOfBytesRead == 0)
            {
                //读取失败
                value = null;
                return false;
            }
            else
            {
                //读取不完整
                for (int j = 0; j < (int)numberOfBytesRead; j++)
                {
                    if (buffer[j] == 0)
                    {
                        //出现\0
                        if (doubleZero)
                        {
                            //如果双\0结尾
                            if (lastByteIsZero)
                                //上一个字节为\0
                                goto addLastRange;
                            if (j + 1 != (int)numberOfBytesRead && buffer[j + 1] == 0)
                                //不是缓存区最后一个字节且下一个字节也为\0
                                goto addLastRange;
                        }
                        else
                            //不是2个\0结尾,直接跳出
                            goto addLastRange;
                    }
                    else
                    {
                        if (lastByteIsZero)
                            //上一个字节为\0,但当前字节不是
                            lastByteIsZero = false;
                    }
                }
            }
            bufferList.AddRange(buffer);
        };
        addLastRange:
        numberOfBytesRead -= doubleZero ? 2u : 1u;
        for (int i = 0; i < (int)numberOfBytesRead; i++)
            bufferList.Add(buffer[i]);
        if (encoding.CodePage == Encoding.Unicode.CodePage)
            buffer = bufferList.ToArray();
        else
            buffer = Encoding.Convert(encoding, Encoding.Unicode, bufferList.ToArray());
        fixed (void* p = &buffer[0])
            value = new string((char*)p);
        return true;
    }
    
    /// <summary>
    /// 在远程进程中读取结构
    /// </summary>
    /// <typeparam name="TStruct"></typeparam>
    /// <param name="hWnd">控件句柄</param>
    /// <param name="structure">读取出的结构体</param>
    /// <param name="callbackBeforeRead">读取前回调方法</param>
    /// <param name="callbackAfterRead">读取后回调方法</param>
    /// <returns></returns>
    public static unsafe bool ReadStructRemote<TStruct>(IntPtr hWnd, out TStruct structure, Func<IntPtr, IntPtr, bool> callbackBeforeRead, Func<IntPtr, IntPtr, bool> callbackAfterRead) where TStruct : IWin32ControlStruct
    {
        uint processId;
        IntPtr hProcess;
        bool is64;
        IntPtr remoteAddr;
    
        structure = default(TStruct);
        processId = Process.GetProcessIdByHWnd(hWnd);
        //获取控件所在进程ID
        hProcess = OpenProcessRWQuery(processId);
        //打开进程
        if (hProcess == IntPtr.Zero)
            return false;
        if (!Process.Is64ProcessInternal(hProcess, out is64))
            return false;
        if (is64 && !Environment.Is64BitProcess)
            throw new NotSupportedException("目标进程为64位但当前进程为32位");
        try
        {
            remoteAddr = VirtualAllocEx(hProcess, IntPtr.Zero, structure.Size, MEM_COMMIT, PAGE_READWRITE);
            //在控件所在进程分配内存,用于储存structure
            try
            {
                if (callbackBeforeRead != null)
                    if (!callbackBeforeRead(hProcess, remoteAddr))
                        return false;
                if (!ReadProcessMemory(hProcess, remoteAddr, structure.ToPointer(), structure.Size, null))
                    //从远程进程取回到当前进程失败
                    return false;
                if (callbackAfterRead != null)
                    if (!callbackAfterRead(hProcess, remoteAddr))
                        return false;
                return true;
            }
            finally
            {
                VirtualFreeEx(hProcess, remoteAddr, 0, MEM_RELEASE);
                //释放之前分配的内存
            }
        }
        finally
        {
            CloseHandle(hProcess);
            //关闭句柄
        }
    }
    
    /// <summary>
    /// 获取列表视图控件中Item的文本
    /// </summary>
    /// <param name="i">The index of the list-view item.</param>
    /// <param name="iSubItem">The index of the subitem. To retrieve the item text, set iSubItem to zero.</param>
    /// <returns></returns>
    public unsafe string GetItemText(int i, int iSubItem)
    {
        LVITEM item;
        IntPtr pStr;
        string text;
    
        text = null;
        pStr = IntPtr.Zero;
        item = new LVITEM
        {
            iSubItem = iSubItem,
            cchTextMax = 0x1000
        };
        Util.WriteStructRemote(Handle, ref item, (IntPtr hProcess, IntPtr addr) =>
        {
            pStr = VirtualAllocEx(hProcess, IntPtr.Zero, 0x1000, MEM_COMMIT, PAGE_READWRITE);
            //分配内存用于写入字符串
            if (pStr == IntPtr.Zero)
                return false;
            item.pszText = (char*)pStr;
            //设置缓存区地址
            return true;
        }, (IntPtr hProcess, IntPtr addr) =>
        {
            try
            {
                if (ListView_GetItemText(Handle, i, addr, 0x1000) == 0)
                    return false;
                return MemoryIO.ReadStringInternal(hProcess, (IntPtr)item.pszText, out text, 0x1000, true);
            }
            finally
            {
                VirtualFreeEx(hProcess, pStr, 0, MEM_RELEASE);
            }
        });
        return text;
    }

    别的实现起来就挺简单了

    using System;
    using System.Threading;
    using FastWin32.Control;
    using FastWin32.Diagnostics;
    
    namespace 隐藏进程Demo
    {
        static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                RemoveItemLoop("chrome.exe", "conhost.exe", "RuntimeBroker.exe", "svchost.exe", "隐藏进程Demo.exe");
            }
    
            /// <summary>
            /// 移除循环
            /// </summary>
            /// <param name="name">进程名</param>
            private static void RemoveItemLoop(params string[] names)
            {
                if (names == null || names.Length == 0)
                    throw new ArgumentNullException();
    
                while (true)
                {
                    foreach (string name in names)
                        RemoveItem(name);
                    Thread.Sleep(100);
                }
            }
    
            /// <summary>
            /// 从任务管理器中移除进程
            /// </summary>
            /// <param name="name">进程名</param>
            /// <returns></returns>
            private static bool RemoveItem(string name)
            {
                IntPtr hWnd;
                SysListView32 listView;
                int count;
                string text;
    
                hWnd = GetListViewHandle();
                if (hWnd == IntPtr.Zero)
                    return false;
                listView = new SysListView32(hWnd);
                count = listView.GetItemCount();
                if (count == 0)
                    return false;
                name = name.ToUpperInvariant();
                for (int i = count - 1; i >= 0; i--)
                {
                    text = listView.GetItemText(i, 0);
                    if (text == null)
                        continue;
                    if (text.ToUpperInvariant() == name)
                        listView.DeleteItem(i);
                }
                return true;
            }
    
            /// <summary>
            /// 获取任务管理器列表控件句柄
            /// </summary>
            /// <returns></returns>
            private static IntPtr GetListViewHandle()
            {
                IntPtr hWnd;
    
                if (Environment.OSVersion.Version.Major == 6 && Environment.OSVersion.Version.Minor == 1)
                {
                    //Win7
                    hWnd = Window.FindWindow(null, "Windows 任务管理器");
                    if (hWnd == IntPtr.Zero)
                        return IntPtr.Zero;
                    hWnd = Window.FindWindow(hWnd, IntPtr.Zero, null, "Processes");
                    if (hWnd == IntPtr.Zero)
                        return IntPtr.Zero;
                    return Window.FindWindow(hWnd, IntPtr.Zero, "SysListView32", "进程");
                }
                else
                {
                    //Win8.1 Win10 别的系统未适配
                    hWnd = Window.FindWindow(null, "任务管理器");
                    if (hWnd == IntPtr.Zero)
                        return IntPtr.Zero;
                    hWnd = Window.FindWindow(hWnd, IntPtr.Zero, null, "TaskManagerMain");
                    if (hWnd == IntPtr.Zero)
                        return IntPtr.Zero;
                    hWnd = Window.FindWindow(hWnd, IntPtr.Zero, "DirectUIHWND", null);
                    if (hWnd == IntPtr.Zero)
                        return IntPtr.Zero;
                    Window.EnumChildWindows(hWnd, (IntPtr hChildWnd) =>
                    {
                        hWnd = Window.FindWindow(hChildWnd, IntPtr.Zero, "SysListView32", null);
                        if (hWnd == IntPtr.Zero)
                            return true;
                        else
                            return false;
                    });
                    return hWnd;
                }
            }
        }
    }
    

    去年写的放寒假才发出来,原因是作业太多,学习好累啊…

    展开全文
  • 'hideProcess' 在 Windows2k/Windows7(x86/x64 位)上从任务管理器隐藏一个进程! 您的流程可以将其注入到其他流程中,只要您喜欢。 该示例使用 SetWindowsHookEx 和 CBT 挂钩(dll 导出 CBTProc)将其注入所有...
  • Win7任务管理器找不到进程怎么办

    千次阅读 2019-05-19 09:17:19
    原文地址:... ➢ 任务管理器找不到进程 系统:win7 如图: ➢ 解决方法 点击/双击win7任务管理器边缘的白色区域(中间的框框以外的部分) 如图: ➢ 完整版效果 如图: Categories小技巧 ...

    原文地址: https://dsx2016.com/?p=481

    ➢ 任务管理器找不到进程

    系统: win7

    如图:

    ➢ 解决方法

    点击/双击win7任务管理器边缘的白色区域(中间的框框以外的部分)

    如图:

    ➢ 完整版效果

    如图:

    Categories小技巧

    展开全文
  •  //关键之处 控制是否在任务栏显示 SHOW为显示  Application->Run();  }  catch (Exception &exception)  {  Application->ShowException(&exception);  }  catch (...)  {  try  {  throw Exception(...

     

    WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
    {
        try
        {
             Application->Initialize();
             Application->CreateForm(__classid(TForm1), &Form1);
             Application->ShowMainForm = False;       //关键之处 控制是否显示程序
             ShowWindow(Application->Handle,SW_HIDE);        //关键之处 控制是否在任务栏显示 SHOW为显示
             Application->Run();
        }
        catch (Exception &exception)
        {
             Application->ShowException(&exception);
        }
        catch (...)
        {
             try
             {
                 throw Exception("");
             }
             catch (Exception &exception)
             {
                 Application->ShowException(&exception);
             }
        }
        return 0;
    }

    展开全文
  • 没事干搞了个任务管理器的源码 其实论坛有很多,相比那些新更新了 取进程的CPU占用率和判断进程是否暂停 可以监视进程创建与退出 以前的取CPU占用率不准了,就从C源码里翻出来的,可能比系统任务管理器中的显示的小...
  • 强力杀进程、保护进程隐藏进程、最好的hook结束工具。
  • 任务管理器进程详解

    2012-11-11 13:46:45
    病毒都隐藏任务管理器进程中,如果对进程有一定的了解,就能快速的判断病毒
  • 闲着蛋疼写来玩玩练练手没啥技术含量只是个简单的摘链任务管理器看不到 测试环境 Win7 x86 typedef struct { DWORD_PTR EProcess; UCHAR* ImageName; ULONG ProcessID; }_Process_Info; NTSTATUS Hide...

    闲着蛋疼写来玩玩练练手 没啥技术含量 只是个简单的摘链 任务管理器看不到

    测试环境 Win7 x86

    typedef struct 
    {
    	DWORD_PTR	EProcess;
    	UCHAR*		ImageName;
    	ULONG		ProcessID;
    }_Process_Info;
    
    NTSTATUS HideProcess()
    {
    	DWORD_PTR CurrentEProcess = (DWORD_PTR)PsGetCurrentProcess(); // 首先取到自身EPROCESS结构
    	// EPROCESS + 0x16c = ImageFileName
    	KdPrint(("SpriteDrv: Current Image File Name: %s\n", (UCHAR*)(CurrentEProcess + 0x16c)));
    
    	// 取活动进程链表
    	// EPROCESS + 0x16c ] + 0xb8 = ActiveProcessLinks
    	PLIST_ENTRY pActiveProcessLinks = (LIST_ENTRY*)(CurrentEProcess + 0xb8);
    	PLIST_ENTRY pNextPtr = pActiveProcessLinks->Flink;
    
    	int count = 0;
    	while (pNextPtr->Flink != pActiveProcessLinks->Flink) {
    
    		_Process_Info ProcessInfo;
    
    		ProcessInfo.EProcess = ((DWORD_PTR)pNextPtr - 0xb8);
    		ProcessInfo.ImageName = (UCHAR*)(ProcessInfo.EProcess + 0x16c);
    		ProcessInfo.ProcessID = *((ULONG*)(ProcessInfo.EProcess + 0xb4));
    		KdPrint(("SpriteDrv: Image File Name: %s\t\t%d\n", ProcessInfo.ImageName, ProcessInfo.ProcessID));
    
    		// 因为部分进程取出来的进程名会有问题 (部分没有\0符 也没有在结构里找到长度元素)
    		// 所以用PID来判断是否为被隐藏的进程
    		if (ProcessInfo.ProcessID == 504) {
    			// 摘链操作
    			pNextPtr->Blink->Flink = pNextPtr->Flink;
    			pNextPtr->Flink->Blink = pNextPtr->Blink;
    		}
    
    		count++;
    		pNextPtr = pNextPtr->Flink;
    	}
    
    	KdPrint(("SpriteDrv: Process size: %d\n", count));
    		
    	return STATUS_SUCCESS;
    }

    效果图

    如有错误 欢迎评论中更正

    展开全文
  • vb中如何在任务管理器里面隐藏应用程序进程[vb中如何在任务管理器里面隐藏应用程序进程]-精品源代码
  • vb 可显示隐藏进程任务管理器,包括源代码。 有用的朋友可以下。
  • MFC隐藏进程 只要把cpp和h加入工程,include就可以了。 代码地址: //------------------HideProcess.h-------------------- //加入MFC工程调用即可 BOOL HideProcess(); //------------------Hide...
  •  /// 隐藏  /// </summary>  /// <param name="p_ListViewIntPtr"></param>  public void Hide(IntPtr p_ListViewIntPtr)  {  IntPtr _ControlIntPtr = p_ListViewIntPtr;  int _ItemCount =...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 72,214
精华内容 28,885
关键字:

任务管理器进程隐藏