在任务管理器的进程列表中隐藏当前进程
WIN7系统怎样将正在运行的程序隐藏
在使用电脑的时候,如何保证个人的隐私是所有用户都十分关注的一件事。
尤其是在共用电脑上面使用的话,如果需要临时离开的话,那么要先把运行的程序关了等都回来再打开吗?这样做十分的耽误时间的。
那么有没有一个好的方法呢?下面就来看看win7系统将正在运行程序隐藏的方法吧。
可以先下载一个WindowManager软件,然后打开软件把需要隐藏的窗口加密隐藏,等到回来之后解密继续使用。
当软件打开之后,鼠标右键点击软件的图标,这时候选中菜单里面的Open WindowManager dialog选项,直接将窗口打开,如下图所示。
这个打开的窗口里面右键收录了目前全部正在运行程序的窗口名称,选择你需要隐藏的,点击Hide,然后程序就从桌面上消失不见了,窗口也会消失了,之后就可以关闭这个软件了。
如果回来继续使用程序的话,就要将其进行恢复,具体的做法是:右键点击软件图标,Restore window里面直接点击程序的名称就可以了。
不过这种方法其他人也可以将程序恢复,因此我们可以对其进行加密,防止他人操作。
加密的时候鼠标右键点击菜单里面的Settings,选择Security标签,将restoring hidden windows打勾,然后再点击Set Password,设置相关的密码就可以了。
进程隐藏的方法
进程隐藏的方法最基本的隐藏:不可见窗体+隐藏文件木马程序无论如何神秘,但归根究底,仍是Win32平台下的一种程序。
Windows下常见的程序有两种:1.Win32应用程序(Win32 Application),比如QQ、Office等都属于此行列。
2.Win32控制台程序(Win32 Console),比如硬盘引导修复程序FixMBR。
其中,Win32应用程序通常会有应用程序界面,比如系统中自带的"计算器"就有提供各种数字按钮的应用程序界面。
木马虽然属于Win32应用程序,但其一般不包含窗体或隐藏了窗体(但也有某些特殊情况,如木马使用者与被害者聊天的窗口),并且将木马文件属性设置为"隐藏",这就是最基本的隐藏手段,稍有经验的用户只需打开"任务管理器",并且将"文件夹选项"中的"显示所有文件"勾选即可轻松找出木马,于是便出现了下面要介绍的"进程隐藏"技术。
第一代进程隐藏技术:Windows 98的后门在Windows 98中,微软提供了一种能将进程注册为服务进程的方法。
尽管微软没有公开提供这种方法的技术实现细节(因为Windows的后续版本中没有提供这个机制),但仍有高手发现了这个秘密,这种技术称为RegisterServiceProcess。
只要利用此方法,任何程序的进程都能将自己注册为服务进程,而服务进程在Windows 98中的任务管理器中恰巧又是不显示的,所以便被木马程序钻了空子。
要对付这种隐藏的木马还算简单,只需使用其他第三方进程管理工具即可找到其所在,并且采用此技术进行隐藏的木马在Windows 2000/XP(因为不支持这种隐藏方法)中就得现形!中止该进程后将木马文件删除即可。
可是接下来的第二代进程隐藏技术,就没有这么简单对付了。
第二代进程隐藏技术:进程插入在Windows中,每个进程都有自己的私有内存地址空间,当使用指针(一种访问内存的机制)访问内存时,一个进程无法访问另一个进程的内存地址空间,就好比在未经邻居同意的情况下,你无法进入邻居家吃饭一样。
隐藏进程_精品文档
隐藏进程什么是隐藏进程?在操作系统中,进程是指正在运行的程序的执行实例。
正常情况下,操作系统会为每个正在运行的程序创建一个进程,并分配资源给它。
这些进程会被显示在任务管理器或进程管理器中,以便用户可以监控和管理它们。
然而,有时候会有一些恶意软件或黑客攻击会隐藏自己的进程,以逃避用户或系统管理员的监控和控制。
隐藏的进程可以执行各种恶意行为,如损坏文件、窃取敏感信息、攻击网络等。
隐藏进程常常被用于恶意软件中,如计算机病毒、木马和恶意软件。
它们通过各种技术手段来隐藏自己的存在,使自己难以被检测和清除。
隐藏进程的常见技术RootkitRootkit 是一种恶意软件,它通过操纵操作系统的功能来隐藏自己。
Rootkit 可以修改操作系统的核心组件,如内核模块、驱动程序等,以便隐藏进程和其他恶意活动。
Rootkit 通常会修改系统函数调用,使它们返回虚假的结果,以掩盖自己的存在。
它还可以修改进程列表、进程状态和文件系统,来隐藏进程和文件。
HookingHooking 是一种技术,通过修改函数调用表或中断向量表来劫持系统的正常行为。
恶意软件可以使用 Hooking 技术来修改操作系统的函数调用,从而隐藏自己的进程。
通常,Hooking 会劫持一些与进程管理相关的函数,如寻找和遍历进程列表的函数。
当用户或系统管理员尝试查看进程列表时,这些被劫持的函数会返回虚假的结果,隐藏恶意进程的存在。
用户模式隐藏用户模式隐藏是一种技术,恶意软件使用它来隐藏自己的进程。
在用户模式下,操作系统提供了一组 API,用于管理进程和线程。
恶意软件可以使用这些 API 来隐藏自己的进程。
恶意软件可以通过修改自身进程的属性和访问权限来隐藏自己。
例如,它可以将自己的进程标记为“隐藏”或修改进程列表,使自己不可见。
驱动程序隐藏驱动程序是操作系统中的一种特殊类型的软件,它们用于控制硬件设备和提供操作系统功能。
恶意软件可以使用驱动程序来隐藏自己的进程。
WinNTWin2K下实现进程的完全隐藏.net-电脑资料
WinNTWin2K下实现进程的完全隐藏.net-电脑资料面对众多的计算机高手,考虑许久,终于还是决定出来献丑一下,文章内尽量使用最简洁易懂的词汇及例子来介绍,希望能够对一些初学与进阶者有所帮助,。
关于进程的隐藏,98下的例子数不胜数。
WinNT/Win2K下的隐藏方法,西祠的高手shotgun在去年的6月就已经在网面对众多的计算机高手,考虑许久,终于还是决定出来献丑一下,文章内尽量使用最简洁易懂的词汇及例子来介绍,希望能够对一些初学与进阶者有所帮助。
关于进程的隐藏,98下的例子数不胜数。
WinNT/Win2K下的隐藏方法,西祠的高手shotgun在去年的6月就已经在网上发布出实例《揭开木马的神秘面纱<四designtimesp=21638>》,我也多次拜读他的文章,对他的计算机水平及热心帮助朋友的作风十分敬佩。
这里也可算是对shotgun的文章的补充与深入介绍吧,好了,闲话少说。
在WinNT下"真正隐藏进程"这一说法,可以讲是根本不可能实现,只要我们的程序是以进程内核的形式运行,都是不可能逃离CTRL+ALT+DEL的法眼。
那么奇怪了,这岂不是与我们的标题《WinNT & Win2K下实现进程的完全隐藏》相矛盾吗?是的,实际上应该是:以非进程方式执行目标代码,而逃避进程查看器的检查,从而达到"进程隐藏"的目的。
我们这里用的,是在宿主进程中,以线程的方式执行我们的代码。
实现起来非常简单。
首先,我们先建立一个不执行任何语句的线程DWORD stdcall ThreadProc(LPVOID *lpVoid){return 0;}然后,将线程代码拷备至宿主进程所能够执行的任何地方(即页面属性为PAGGE_EXECUTE_READWRITE),如:共享内存影射区、宿主进程内。
这里我们选择宿主进程,拷备的时侯,我们需要先在宿主进程中使用VirtualAllocEx函数申请一段内存,然后再使用WriteProcessMemory将线程体写入宿主进程中。
如何隐藏进程
在WINDOWS操作系统下,当我们无法结束或者不知道怎样结束一个程序的时候,或者是懒得去找“退出”按钮的时候,通常会按“CTRL+ALT+DEL”呼出任务管理器,找到想结束的程序,点一下“结束任务”就了事了,呵呵,虽然有点粗鲁,但大多数情况下都很有效,不是吗?设想一下,如果有这么一种软件,它所要做的工作就是对某个使用者在某台电脑上的活动作一定的限制,而又不能被使用者通过“结束任务”这种方式轻易地解除限制,那该怎么做?无非有这么三种方法:1.屏蔽“CTRL+ALT+DEL”这个热键的组合;2.让程序不出现在任务管理器的列表之中;3.让任务管理器无法杀掉这个任务。
对于第一种方法,这样未免也太残酷了,用惯了“结束任务”这种方法的人会很不习惯的;对于第二种方法,在WINDOWS 9X下可以很轻易地使用注册服务进程的方法实现,但是对于WINDOWS NT 架构的操作系统没有这个方法了,进程很难藏身,虽然仍然可以实现隐藏,但实现机制较为复杂;对于第三种方法,实现起来比较简单,我的作品:IPGate 网址过滤器就是采用的这种方式防杀的,接下来我就来介绍这种方法。
任务管理器的“结束任务”实际上就是强制终止进程,它所使用的杀手锏是一个叫做TerminateProcess()的Win32 API函数,我们来看看它的定义:BOOL TerminateProcess(HANDLE hProcess, // 将被结束进程的句柄UINT uExitCode // 指定进程的退出码);看到这里,是不是觉得不必往下看都知道接下来要做什么:Hook TerminateProcess()函数,每次TerminatePro cess()被调用的时候先判断企图结束的进程是否是我的进程,如果是的话就简单地返回一个错误码就可以了。
真的是这么简单吗?先提出一个问题,如何根据hProcess判断它是否是我的进程的句柄?答案是:在我的进程当中先获得我的进程的句柄,然后通过进程间通讯机制传递给钩子函数,与hProcess进行比较不就行了?错!因为句柄是一个进程相关的值,不同进程中得到的我的进程的句柄的值在进程间进行比较是无意义的。
hidetoolz 用法
hidetoolz 用法
hidetoolz是一款常用的隐藏进程工具,可以有效地保护您的电脑安全。
下面是 hidetoolz 的使用方法:
1. 下载并安装 hidetoolz 软件。
2. 打开 hidetoolz 软件后,选择“Hide Process”选项卡。
3. 在列表中选择你要隐藏的进程,并点击“Hide”按钮,即可将该进程隐藏起来。
4. 若要取消隐藏某个进程,点击“Unhide”按钮即可。
5. 在“Advanced”选项卡中,可以选择将隐藏进程设为系统进程、隐藏进程文件等高级操作。
6. 在“Settings”选项卡中,可以设置自动隐藏某些进程、开机自启动等选项。
需要注意的是,hidetoolz 可能会引起某些杀毒软件的警报,建议在使用时先关闭杀毒软件,并谨慎使用该软件。
以上就是 hidetoolz 的使用方法,希望对大家有所帮助。
- 1 -。
电脑进程隐藏方法
电脑进程隐藏方法
1、方法比较简单,首先,你需要在网上搜索相关的隐藏进程的第三方软件工具。
这里就以HideToolz为例子,你在浏览器上输入“HideToolz”就会出现相关的官方下载界面,下载并将这个软件安装到你的电脑当中。
2、下载完后,电脑桌面上就会显示出一个HideToolz的压缩包,鼠标选中这个压缩包,双击打开这个压缩包。
然后在压缩包中找到该软件的应用程序,就能够进入到这个软件了。
通过这个软件,你可以看到目前电脑正在运行的软件有哪些、一共有多少软件是电脑当下所在运行的。
3、做完上面的步骤后,现在就开始隐藏电脑的进程。
找到电脑键盘上Ctrl + Alt +【启动任务管理器】,这几个按键,同时按下去,接着在HideToolz软件上面找到你即将要将其隐藏的运行程序,鼠标放在你要进行隐藏的程序上面,然后点击右键,选择隐藏。
做完这个步骤后,你可以进入到人物管理器里面,看看程序是否已经成功隐藏了。
被成功隐藏的程序是不会出现在任务管理器里面的。
4、最后,在隐藏了相关的运行程序之后,如果你想要将隐藏的程序再次调处来,那么你则需要再次打开HideToolz这个软件,在里面找到已经隐藏的程序,并且鼠标放在隐藏的程序上,单击右键,选择“显示”这个按钮,那么随后你就又能在任务管理器中看到该运行
的进程了!
5、除了利用上面说的第三方软件进行隐藏进程,其他不利用第三方软件隐藏进程的方法也有。
但是相对来说步骤复杂一些。
进程隐藏的若干方法
一、最为古老的DLL注入方法。
虽说古老,但也经历了不少变动,最初的win9X的系统没有Psapi,没有进程快照,所以一般是三级跳。
跳啊跳……NT下可以直接用OpenProcess打开进程(打不开的话,提权到Debug 权限),利用LoadLibrary,并且申请远程地址空间,然后把DLL注入到目标EXE进程当中,可谓省时省力,这也是目前应用作为普遍的方法之一。
典型代码:Delphi(Pascal) codefunction AttachToProcess(const HostFile, GuestFile: string; const PID: DWORD = 0): DWORD;varhRemoteProcess: THandle;dwRemoteProcessId: DWORD;cb: DWORD;pszLibFileRemote: Pointer;iReturnCode: Boolean;TempVar: DWORD;pfnStartAddr: TFNThreadStartRoutine;pszLibAFilename: PwideChar;beginResult := 0;EnabledDebugPrivilege(True);Getmem(pszLibAFilename, Length(GuestFile) * 2 + 1);StringToWideChar(GuestFile, pszLibAFilename, Length(GuestFile) * 2 + 1);if PID > 0 thendwRemoteProcessID := PIDelseFindAProcess(HostFile, False, dwRemoteProcessID);hRemoteProcess := OpenProcess(PROCESS_CREATE_THREAD + {允许远程创建线程}PROCESS_VM_OPERATION + {允许远程VM操作}PROCESS_VM_WRITE, {允许远程VM写}FALSE, dwRemoteProcessId);cb := (1 + lstrlenW(pszLibAFilename)) * sizeof(WCHAR);pszLibFileRemote := PWIDESTRING(VirtualAllocEx(hRemoteProcess, nil, cb, MEM_COMMIT, PAGE_READWRITE));TempVar := 0;iReturnCode := WriteProcessMemory(hRemoteProcess, pszLibFileRemote, pszLibAFilename, cb, TempVar);if iReturnCode thenbeginpfnStartAddr := GetProcAddress(GetModuleHandle('Kernel32'), 'LoadLibraryW'); TempVar := 0;Result := CreateRemoteThread(hRemoteProcess, nil, 0, pfnStartAddr, pszLibFileRemote, 0, TempVar);end;Freemem(pszLibAFilename);end;二、EXE注入。
任务管理器看不到进程怎么办.doc
谢谢欣赏
谢谢欣赏Win7任务管理器看不到进程怎么办
具体的故障现象如下图所示:
解决方法:
先说说怎么关闭这个任务管理器吧:
1、鼠标点击一下这个任务管理器的任意位置(为了保证显示在最前端)
2、ALT+F4关闭
如何调出进程列表
双击任务管理器边缘的白色区域,就是中间的框框以外的部分,就可以出现了双击前:
双击后
好了问题解决了。
下面来更深的研究一下
先把任务管理器调到进程列表
然后双击边缘的白框,你会发现,只剩下进程列表,其他栏没有了:
下次打开任务管理器也是这样。
解决方法也就是上面那个。
隐藏进程
而早期后门技术里,还有一个最基本的行为就是隐藏文件,与今天的各种隐藏手段相比,它可谓是“不入流”级别了——这里提到的“隐藏”,就是简单 的将文件属性设置为“隐藏”而已,除此之外,再无别的保护手段了,然而,由于系统设计时为了避免初学者胡乱删除文件而默认“不显示系统和隐藏文件”的做法 (到了Windows 2000/xp时代,这个做法更升级到“隐藏受保护的系统文件”了),却恰好给这些病毒提供了天然的隐身场所——大部分对电脑操作不熟悉的用户根本不知道 “隐藏文件”的含义,更别提设置为“显示所有文件”了,在那个安全软件厂商刚开始探索市场的时代,用户更是不会留意太多安全产品及其实际含义,因而这个时 期成了各种初期木马技术发展的重要阶段,利用这种手段制作的木马被统称为“第一代木马”。
与“线程注射”离不开的是“hook”技术,这个“hook”,又是什么呢?其官方定义如下:
钩子(hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。
using System;
using Systing ponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
任务管理器的“应用程序”项里列出来的“任务”,是指进程在桌面上显示出来的窗口对象,例如用户打开word 2003撰写文档,它的进程“winword.exe”会创建一个在桌面上显示的前台窗口,这个窗口就是任务管理器里看得见的“任务”了,而实际上真正在 运行的是进程“winword.exe”。并不是所有的进程都会在任务管理器里留下“任务”的,像QQ、msn 和所有后台程序,它们并不会在任务列表里出现,但是你会在进程列表里找到它们,如果要它们在任务列表里出现该怎么办呢?只要让它们产生一个在桌面上出现的 窗体就可以了,随便打开一个好友聊天,就会发现任务列表里终于出现了qq的任务。因此,真正科学的终止程序执行方案是针对“进程”来结束程序的运行,而不 是在任务列表里关闭程序,因为木马作者们是不会让自己的木马在任务列表里出现的,但是进程列表里一般人都是逃不过的。
进程隐藏
进程隐藏进程隐藏技术用得最多的地方就是在病毒和木马中,因为这些不适合出现在阳光下的程序,越隐蔽生存率就越高。
在当今Windows环境下,病毒和木马流传得越来越广泛,让读者适当了解这方面的技术可以在防治方面起到积极的作用,技术这种东西就是这样,大家都知道的“秘技”也就不再是“秘技”了,所以,大家都知道了进程隐藏是怎么一回事,进程隐藏起来也就不那么隐蔽了。
13.4.1 在Windows 9x中隐藏进程在Windows 9x系列操作系统中,可以通过Kernel32.dll中的一个未公开函数来完成隐藏功能,这个函数就是RegisterServiceProcess,该函数的功能是将一个进程注册为系统服务进程,由于Windows的任务管理器并不列出系统服务进程,所以可以用它来隐藏进程,不过该函数在Windows NT系列中并不存在。
;______________________________________________________________________________ RegisterServiceProcess函数的使用方法是:invoke RegisterServiceProcess,dwProcessID,dwFlag;______________________________________________________________________________ dwProcessID指明目标进程的进程ID,参数dwFlag指定是注册还是撤销,指定TRUE 的话,进程被注册为系统服务进程,如果指定为FALSE,则进程的属性恢复为普通进程属性。
Kernel32.lib导入库中并没有这个函数的导入信息,如果要使用这个函数,程序需要自己装入库文件并使用GetProcAddress函数获取入口地址后使用(方法请复习第11章)。
所附光盘的Chapter13\HideProcess9x目录中的例子程序演示了该函数的使用方法。
进程隐藏技术
进程隐藏技术作者:史永林潘进庞雄昌谢青松来源:《电脑知识与技术·学术交流》2008年第30期摘要:从原理上介绍了进程隐藏的几种方法,如通过API拦截和修改系统活动进程列表等方法,并对各种技术进行了优缺点分析。
关键词:进程;隐藏中图分类号:TP309文献标识码:A文章编号:1009-3044(2008)30-0740-02Windows Process Hiding MethodSHI Yong-lin,PAN Jin,PANG Xiong-chang,XIE Qing-song(Department one of Xi'an Communication Institute, Xi'an 710016,China)Abstract: This paper gives a detail explanation of how to hide process on windows, it introduces three ways to achieve the goal.It also tell the strong and weak point of the different methods.Key words: process;hiding进程隐藏,也就在用户不知情的情况下,悄悄执行自己的代码。
这一直是病毒、木马程序设计者不断探求的重要技术,因为这些程序都是见不得光的,都需要较好的隐藏和保护自己。
了解进程隐藏技术,是开发防病毒和木马软件的基础,一般来讲,一个程序如果采用进程隐藏技术隐藏自己,那大多情况下其一定是一个病毒或木马等恶意程序。
但有些情况下,进程隐藏也是某些类型程序所需要的功能,如某些安全控制程序,例如上网控制系统,其功能要求只能上单位局域网,不能上internet,这种程序需要常驻系统,不能停止和卸载,这则要求进程能有效保护和隐藏自己,以防止用户恶意删除和卸载。
在任务栏中隐藏进程
另外,还有一部分黑软是通过ShowWindowAsync()函数启动一个新的线程来显示一个新窗口的。该函数的原形为:
BOOL ShowWindowAsync(HWND hWnd,int nCmdShow);
而黑软正是钻了该函数的第二个参数可以设置窗体显示状态的空子,在设置成SW_HIDE时就可以使目标窗体(黑软)从任务列表中隐藏。
LONG SetWindowLong(HWND hWnd,int nIndex,LONG dwNewLong);
另一种很简便的是MFC的写法:在程序框架类的预创建窗口函数里通过直接对CREATESTRUCT结构对象的逻辑操作而将程序属性进行改变:
cs.style=WS_POPUP;
cs.dwExStyle|=WS_EX_TOOLWINDOW;
DWORD RegisterServiceProcess(DWORD dwProcessId,DWORD dwType);
其第一个参数指定为一个服务进程的进程标识,如果是0则注册当前的进程;第二个参数指出是注册还是注销当前的进程,其状态分别为:
RSP_SIMPLE_SERVICE和RSP_UNREGISTER_SERVICE。黑软一般是在程序启动isterServiceProcess()函数加载到内存,然后再通过该函数将程序从任务列表中隐藏:
//从Kernel32.dll中加载RegisterServiceProcess()
HMODULE m_hKernel=::GetModuleHandle("Kernel32.DLL");
RSP m_rsp=(RSP)::GetProcAddress(m_hKernel,"RegisterServiceProcess");
WIN7电脑中的任务管理器窗口没有进程这一栏怎么办?
很多时候,咱们的操作都是需要通过任务管理器窗口来完成的,例如电脑被卡住的时候,咱们可以通过任务管理器窗口来关闭掉无响应的程序,然电脑恢复原状,有的时候,咱们也可以在任务管理器中查看到底是哪些程序占用了咱们的CPU,还可以在任务管理器窗口中将没用的进程全部关闭掉,以此让咱们的电脑运行的更快,但是最近有朋友发现了一个奇怪的现象,在win7旗舰版打开的任务管理器窗口中竟然没有进程这一栏,这种问题要如何解决呢?
其实出现这种情况,有两种比较好的解决方法,都给大家介绍一下吧!看哪种比较实用,这个大家就自己选择了!
第一种:在打开的任务管理器窗口中,大家将鼠标移动到边缘的白色区域并双击,就简单的一个步骤,没有显示出来的进程一栏就会出现了。
第二种:咱们依次点击开始菜单-所有程序-附件-命令提示符,然后右键以管理员身份运行,在弹出来的运行窗口中输入sfc/scannow并单击回车,运行完毕之后,咱们重启一下电脑就好了。
可能相比之下第一种方法比较简单,但是第二种确实比较长久的方法额!。
枚举和修改活动进程链表来检测和隐藏进程
枚举和修改活动进程链表来检测和隐藏进程枚举和修改活动进程链表来检测和隐藏进程1. 介绍EPROCESS块(进程执行块)每个进程都由一个EPROCESS块来表示。
EPROCESS块中不仅包含了进程相关了很多信息,还有很多指向其他相关结构数据结构的指针。
例如每一个进程里面都至少有一个ETHREAD块表示的线程。
进程的名字,和在用户空间的PEB(进程环境)块等等。
EPROCESS中除了PEB成员块在是用户空间,其他都是在系统空间中的。
2. 查看EPROCESS结构kd> !processfields!processfieldsEPROCESS structure offsets:Pcb: 0x0ExitStatus: 0x6cLockEvent: 0x70LockCount: 0x80CreateTime: 0x88ExitTime: 0x90LockOwner: 0x98UniqueProcessId: 0x9cActiveProcessLinks: 0xa0QuotaPeakPoolUsage[0]: 0xa8QuotaPoolUsage[0]: 0xb0PagefileUsage: 0xb8CommitCharge: 0xbcPeakPagefileUsage: 0xc0PeakVirtualSize: 0xc4VirtualSize: 0xc8Vm: 0xd0DebugPort: 0x120 ExceptionPort: 0x124 ObjectTable: 0x128 Token: 0x12c WorkingSetLock: 0x130 WorkingSetPage: 0x150 ProcessOutswapEnabled: 0x154 ProcessOutswapped: 0x155 AddressSpaceInitialized: 0x156 AddressSpaceDeleted: 0x157 AddressCreationLock: 0x158 ForkInProgress: 0x17c VmOperation: 0x180 VmOperationEvent: 0x184 PageDirectoryPte: 0x1f0 LastFaultCount: 0x18c VadRoot: 0x194 VadHint: 0x198 CloneRoot: 0x19c NumberOfPrivatePages: 0x1a0 NumberOfLockedPages: 0x1a4 ForkWasSuccessful: 0x182 ExitProcessCalled: 0x1aa CreateProcessReported: 0x1ab SectionHandle: 0x1ac Peb: 0x1b0 SectionBaseAddress: 0x1b4 QuotaBlock: 0x1b8 LastThreadExitStatus: 0x1bc WorkingSetWatch: 0x1c0InheritedFromUniqueProcessId: 0x1c8GrantedAccess: 0x1ccDefaultHardErrorProcessing 0x1d0LdtInformation: 0x1d4VadFreeHint: 0x1d8VdmObjects: 0x1dcDeviceMap: 0x1e0ImageFileName[0]: 0x1fcVmTrimFaultValue: 0x20cWin32Process: 0x214Win32WindowStation: 0x1c43. 什么是活动进程链表EPROCESS块中有一个ActiveProcessLinks成员,它是一个PLIST_ENTRY机构的双向链表。
vb在任务管理器里面隐藏应用程序进程
'该模块用于在任务管理器中隐藏进程Private Const STATUS_INFO_LENGTH_MISMATCH =&HC0000004 Private Const STATUS_ACCESS_DENIED =&HC0000022Private Const STATUS_INVALID_HANDLE =&HC0000008Private Const ERROR_SUCCESS = 0&Private Const SECTION_MAP_WRITE =&H2Private Const SECTION_MAP_READ =&H4Private Const READ_CONTROL =&H20000Private Const WRITE_DAC =&H40000Private Const NO_INHERITANCE = 0Private Const DACL_SECURITY_INFORMATION =&H4Private Type IO_STATUS_BLOCKStatus As LongInformation As LongEnd TypePrivate Type UNICODE_STRINGLength As IntegerMaximumLength As IntegerBuffer As LongEnd TypePrivate Const OBJ_INHERIT =&H2Private Const OBJ_PERMANENT =&H10Private Const OBJ_EXCLUSIVE =&H20Private Const OBJ_CASE_INSENSITIVE =&H40Private Const OBJ_OPENIF =&H80Private Const OBJ_OPENLINK =&H100Private Const OBJ_KERNEL_HANDLE =&H200 Private Const OBJ_VALID_ATTRIBUTES =&H3F2Private Type OBJECT_ATTRIBUTESLength As LongRootDirectory As LongObjectName As LongAttributes As LongSecurityDeor As Long SecurityQualityOfService As LongEnd TypePrivate Type ACLAclRevision As ByteSbz1 As ByteAclSize As IntegerAceCount As IntegerSbz2 As IntegerEnd TypePrivate Enum ACCESS_MODENOT_USED_ACCESSGRANT_ACCESSSET_ACCESSDENY_ACCESSREVOKE_ACCESSSET_AUDIT_SUCCESSSET_AUDIT_FAILUREEnd EnumPrivate Enum MULTIPLE_TRUSTEE_OPERATIONNO_MULTIPLE_TRUSTEETRUSTEE_IS_IMPERSONATEEnd EnumPrivate Enum TRUSTEE_FORMTRUSTEE_IS_SIDTRUSTEE_IS_NAMEEnd EnumPrivate Enum TRUSTEE_TYPETRUSTEE_IS_UNKNOWNTRUSTEE_IS_USERTRUSTEE_IS_GROUPEnd EnumPrivate Type TRUSTEEpMultipleTrustee As LongMultipleTrusteeOperation As MULTIPLE_TRUSTEE_OPERATION TrusteeForm As TRUSTEE_FORMTrusteeType As TRUSTEE_TYPEptstrName As StringEnd TypePrivate Type EXPLICIT_ACCESSgrfAccessPermissions As LonggrfAccessMode As ACCESS_MODEgrfInheritance As LongTRUSTEE As TRUSTEEEnd TypePrivate Type AceArrayList() As EXPLICIT_ACCESSEnd TypePrivate Enum SE_OBJECT_TYPESE_UNKNOWN_OBJECT_TYPE = 0SE_FILE_OBJECTSE_SERVICESE_PRINTERSE_REGISTRY_KEYSE_LMSHARESE_KERNEL_OBJECTSE_WINDOW_OBJECTSE_DS_OBJECTSE_DS_OBJECT_ALLSE_PROVIDER_DEFINED_OBJECTSE_WMIGUID_OBJECTEnd EnumPrivate Declare Function SetSecurityInfo Lib "advapi32.dll"(ByVal Handle As Long, ByVal ObjectType As SE_OBJECT_TYPE, ByVal SecurityInfo As Long, ppsidOwnerAs Long, ppsidGroup As Long, ppDacl As Any, ppSacl As Any) As LongPrivate Declare Function GetSecurityInfo Lib "advapi32.dll"(ByVal Handle As Long, ByVal ObjectType As SE_OBJECT_TYPE, ByVal SecurityInfo As Long, ppsidOwnerAs Long, ppsidGroup As Long, ppDacl As Any, ppSacl As Any, ppSecurityDeor As Long) As LongPrivate Declare Function SetEntriesInAcl Lib "advapi32.dll" Alias "SetEntriesInAclA"(ByVal cCountOfExplicitEntries As Long, pListOfExplicitEntries AsEXPLICIT_ACCESS, ByVal OldAcl As Long, NewAcl As Long) As LongPrivate Declare Sub BuildExplicitAccessWithName Lib "advapi32.dll" Alias "BuildExplicitAccessWithNameA"(pExplicitAccess As EXPLICIT_ACCESS, ByValpTrusteeName As String, ByVal AccessPermissions As Long, ByVal AccessMode As ACCESS_MODE, ByVal Inheritance As Long)Private Declare Sub RtlInitUnicodeString Lib "NTDLL.DLL"(DestinationString As UNICODE_STRING, ByVal SourceString As Long)Private Declare Function ZwOpenSection Lib "NTDLL.DLL"(SectionHandle As Long, ByVal DesiredAccess As Long, ObjectAttributes As Any) As LongPrivate Declare Function LocalFree Lib "kernel32"(ByVal hMem As Any) As LongPrivate Declare Function CloseHandle Lib "kernel32"(ByVal hObject As Long) As Long Private Declare Function MapViewOfFile Lib "kernel32"(ByVal hFileMappingObject As Long, ByVal dwDesiredAccess As Long, ByVal dwFileOffsetHigh As Long, ByValdwFileOffsetLow As Long, ByVal dwNumberOfBytesToMap As Long) As LongPrivate Declare Function UnmapViewOfFile Lib "kernel32"(lpBaseAddress As Any) As LongPrivate Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory"(Destination As Any, Source As Any, ByVal Length As Long)Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As LongPrivate Type OSVERSIONINFOdwOSVersionInfoSize As LongdwMajorVersion As LongdwMinorVersion As LongdwBuildNumber As LongdwPlatformId As LongszCSDVersion As String* 128End TypePrivate verinfo As OSVERSIONINFOPrivate g_hNtDLL As LongPrivate g_pMapPhysicalMemory As LongPrivate g_hMPM As LongPrivate aByte(3) As BytePublic Sub HideCurrentProcess()'在进程列表中隐藏当前应用程序进程'转载请注名来自爱软件()阿江编注。
C#程序在任务管理器中隐藏
C#在任务管理器里隐藏这里说的只是在WINDOWS 任务管理器里隐藏,不是在进程里消失例如我们要隐藏QQ进程,不在WINDOWS任务管理器里显示使用方法private WindowsAPI.HideTaskmgrList _List = new WindowsAPI.HideTaskmgrList();private void Form1_Load(object sender, EventArgs e){_List.ProcessName = "QQ.exe";_List.Star();}下面是全部的类view plaincopy to clipboardprint?namespace WindowsAPI{/// <summary>/// 在WINDOWS任务管理器里不显示进程/// qq:116149/// zgke@sina.copm/// </summary>public class HideTaskmgrList{private System.Timers.Timer m_Time = new System.Timers.Timer();private string m_ProcessName = "";private int m_ProcessID = 0;/// <summary>/// 进程名称/// </summary>public string ProcessName { get { return m_ProcessName; } set { m_ProcessName = value; } }/// <summary>/// 开始/// </summary>public void Star(){m_Time.Enabled = true;}/// <summary>/// 停止/// </summary>public void Stop(){m_Time.Enabled = false;}public HideTaskmgrList(){m_Time.Interval = 1;m_Time.Elapsed += new System.Timers.ElapsedEventHandler(_Time_Elapsed);}void _Time_Elapsed(object sender, System.Timers.ElapsedEventArgs e){HideTaskmgrListOfName(m_ProcessName);}/// <summary>/// 获取所有控件/// </summary>/// <param name="p_Handle"></param>/// <param name="p_Param"></param>/// <returns></returns>private bool NetEnumControl(IntPtr p_Handle, int p_Param){WindowsAPI.Win32API.STRINGBUFFER _TextString = new WindowsAPI.Win32API.STRINGBUFFER();WindowsAPI.Win32API.GetWindowText(p_Handle, out _TextString, 256);WindowsAPI.Win32API.STRINGBUFFER _ClassName = new WindowsAPI.Win32API.STRINGBUFFER();WindowsAPI.Win32API.GetClassName(p_Handle, out _ClassName, 255);if (_TextString.szText == "进程" && _ClassName.szText == "SysListView32"){Hide(p_Handle);return false;}return true;}/// <summary>/// 隐藏/// </summary>/// <param name="p_ListViewIntPtr"></param>public void Hide(IntPtr p_ListViewIntPtr){IntPtr _ControlIntPtr = p_ListViewIntPtr;int _ItemCount = WindowsAPI.Win32API.SendMessage(p_ListViewIntPtr, 0x1004, 0, 0);WindowsAPI.Win32API.ProcessAccessType _Type;_Type = WindowsAPI.Win32API.ProcessAccessType.PROCESS_VM_OPERATION | WindowsAPI.Win32API.ProcessAccessType.PROCESS_VM_READ | WindowsAPI.Win32API.ProcessAccessType.PROCESS_VM_WRITE;IntPtr _ProcessIntPtr = WindowsAPI.Win32API.OpenProcess(_Type, 1, (uint)m_ProcessID);IntPtr _Out = IntPtr.Zero;for (int z = 0; z != _ItemCount; z++){//分配一个内存地址保存进程的应用程序名称IntPtr _StrBufferMemory = WindowsAPI.Win32API.VirtualAllocEx(_ProcessIntPtr, 0, 255, WindowsAPI.Win32API.MEM_COMMIT.MEM_COMMIT, WindowsAPI.Win32API.MEM_PAGE.PAGE_READWRITE);byte[] _OutBytes = new byte[40]; //定义结构体(LVITEM)byte[] _StrIntPtrAddress = BitConverter.GetBytes(_StrBufferMemory.ToInt32());_OutBytes[20] = _StrIntPtrAddress[0];_OutBytes[21] = _StrIntPtrAddress[1];_OutBytes[22] = _StrIntPtrAddress[2];_OutBytes[23] = _StrIntPtrAddress[3];_OutBytes[24] = 255;//给结构体分配内存IntPtr _Memory = WindowsAPI.Win32API.VirtualAllocEx(_ProcessIntPtr, 0, _OutBytes.Length, WindowsAPI.Win32API.MEM_COMMIT.MEM_COMMIT, WindowsAPI.Win32API.MEM_PAGE.PAGE_READWRITE);//把数据传递给结构体(LVITEM)WindowsAPI.Win32API.WriteProcessMemory(_ProcessIntPtr, _Memory, _OutBytes, (uint)_OutBytes.Length, out _Out);//发送消息获取结构体数据WindowsAPI.Win32API.SendMessage(p_ListViewIntPtr, 0x102D, z, _Memory);//获取结构体数据WindowsAPI.Win32API.ReadProcessMemory(_ProcessIntPtr, _Memory, _OutBytes, (uint)_OutBytes.Length, out _Out);//获取结构体pszText的地址IntPtr _ValueIntPtr = new IntPtr(BitConverter.ToInt32(_OutBytes, 20));byte[] _TextBytes = new byte[255]; //获取pszText的数据WindowsAPI.Win32API.ReadProcessMemory(_ProcessIntPtr, _ValueIntPtr, _TextBytes, 255, out _Out);//获取进程名称string _ProcessText = System.Text.Encoding.Default.GetString(_TextBytes).Trim(new Char[] { '\0' });//释放内存WindowsAPI.Win32API.VirtualFreeEx(_ProcessIntPtr, _StrBufferMemory, 0, WindowsAPI.Win32API.MEM_COMMIT.MEM_RELEASE);WindowsAPI.Win32API.VirtualFreeEx(_ProcessIntPtr, _Memory, 0, WindowsAPI.Win32API.MEM_COMMIT.MEM_RELEASE);if (_ProcessText == m_ProcessName){WindowsAPI.Win32API.SendMessage(p_ListViewIntPtr, 0x1008, z, 0);}}}/// <summary>/// 在WINDOWS任务管理器里隐藏一行需要一直调用会被任务管理器刷新出来/// </summary>/// <param name="p_Name">名称如QQ.exe</param>public void HideTaskmgrListOfName(string p_Name){System.Diagnostics.Process[] _ProcessList = System.Diagnostics.Process.GetProcessesByName("taskmgr");for (int i = 0; i != _ProcessList.Length; i++){if (_ProcessList[i].MainWindowTitle == "Windows 任务管理器"){m_ProcessID = _ProcessList[i].Id;WindowsAPI.Win32API.EnumWindowsProc _EunmControl = new WindowsAPI.Win32API.EnumWindowsProc(NetEnumControl);WindowsAPI.Win32API.EnumChildWindows(_ProcessList[i].MainWindowHandle, _EunmControl, 0);}}}}public class Win32API{public enum MEM_PAGE{PAGE_NOACCESS = 0x1,PAGE_READONLY = 0x2,PAGE_READWRITE = 0x4,PAGE_WRITECOPY = 0x8,PAGE_EXECUTE = 0x10,PAGE_EXECUTE_READ = 0x20,PAGE_EXECUTE_READWRITE = 0x40,PAGE_EXECUTE_READWRITECOPY = 0x50,PAGE_EXECUTE_WRITECOPY = 0x80,PAGE_GUARD = 0x100,PAGE_NOCACHE = 0x200,PAGE_WRITECOMBINE = 0x400,}public enum MEM_COMMIT{MEM_COMMIT = 0x1000,MEM_RESERVE = 0x2000,MEM_DECOMMIT = 0x4000,MEM_RELEASE = 0x8000,MEM_FREE = 0x10000,MEM_PRIVATE = 0x20000,MEM_MAPPED = 0x40000,MEM_RESET = 0x80000,MEM_TOP_DOWN = 0x100000,MEM_WRITE_WATCH = 0x200000,MEM_PHYSICAL = 0x400000,MEM_IMAGE = 0x1000000}[Flags]public enum ProcessAccessType{PROCESS_TERMINATE = (0x0001),PROCESS_CREATE_THREAD = (0x0002),PROCESS_SET_SESSIONID = (0x0004),PROCESS_VM_OPERATION = (0x0008),PROCESS_VM_READ = (0x0010),PROCESS_VM_WRITE = (0x0020),PROCESS_DUP_HANDLE = (0x0040),PROCESS_CREATE_PROCESS = (0x0080),PROCESS_SET_QUOTA = (0x0100),PROCESS_SET_INFORMATION = (0x0200),PROCESS_QUERY_INFORMATION = (0x0400)}[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]public struct STRINGBUFFER{[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 512)]public string szText;}public delegate bool EnumWindowsProc(IntPtr p_Handle, int p_Param);[DllImport("kernel32.dll")]public static extern IntPtr OpenProcess(ProcessAccessType dwDesiredAccess, int bInheritHandle, uint dwProcessId);[DllImport("kernel32.dll")]public static extern Int32 CloseHandle(IntPtr hObject);[DllImport("kernel32.dll")]public static extern Int32 ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, [In, Out] byte[] buffer, UInt32 size, out IntPtr lpNumberOfBytesRead);[DllImport("kernel32.dll")]public static extern Int32 WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, [In, Out] byte[] buffer, UInt32 size, out IntPtr lpNumberOfBytesWritten);[DllImport("kernel32.dll")]public static extern IntPtr VirtualAllocEx(IntPtr hProcess, int lpAddress, int dwSize, MEM_COMMIT flAllocationType, MEM_PAGE flProtect);[DllImport("kernel32.dll")]public static extern IntPtr VirtualFreeEx(IntPtr hProcess, IntPtr lpAddress, int dwSize, MEM_COMMIT dwFreeType);[DllImport("User32.dll", CharSet = CharSet.Auto)]public static extern int GetWindowText(IntPtr hWnd, out STRINGBUFFER text, int nMaxCount);[DllImport("User32.dll", CharSet = CharSet.Auto)]public static extern int GetClassName(IntPtr hWnd, out STRINGBUFFER ClassName, int nMaxCount);[DllImport("user32.dll", CharSet = CharSet.Auto)]public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);[DllImport("user32.dll", CharSet = CharSet.Auto)]public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, IntPtr lParam);[DllImport("user32.dll")]public static extern int EnumChildWindows(IntPtr hWndParent, EnumWindowsProc ewp, int lParam);}}。
隐藏进程原理
隐藏进程原理《隐藏进程原理:深入探究计算机中的“神秘访客”》1. 引言嘿,你有没有想过,在计算机这个看似透明的数字世界里,会不会有一些偷偷摸摸运行着的进程,就像隐藏在黑暗角落里的小怪兽,你根本看不到它们,但它们却在默默地做着一些事情呢?今天呀,我们就来一起探索隐藏进程的原理,让你搞清楚这些看不见的进程到底是怎么一回事。
在这篇文章里,我们会从基本概念说起,分析它的运行机制,看看它在日常生活和高级技术中的应用,还会纠正一些常见的误解,最后再聊聊和它相关的有趣知识哦。
2. 核心原理2.1基本概念与理论背景首先呢,我们得知道什么是进程。
说白了,进程就像是计算机里正在干活的小工人,每个运行的程序都有自己的进程。
那隐藏进程呢,就是那些被特殊手段弄得你看不到的进程。
这概念其实是从计算机安全领域发展来的。
在早期的计算机系统里,大家都是比较单纯地运行程序,后来随着网络的发展,一些坏家伙就想偷偷搞事情,于是就开始研究怎么把自己的进程隐藏起来,这样就不容易被发现了。
比如说,病毒程序或者一些恶意的监控程序,它们不想被杀毒软件或者系统管理员发现,就会采用隐藏进程的技术。
2.2运行机制与过程分析那这些隐藏进程是怎么运作的呢?我们可以把计算机的系统比作一个大公司,进程就像公司里的员工。
正常的员工都是光明正大地在公司里工作,大家都能看到他们。
但是隐藏进程就像是那些偷偷潜入公司,还伪装起来的间谍。
一种常见的隐藏进程的方法是通过修改系统的进程链表。
系统要管理进程,就有一个像员工名单一样的进程链表。
恶意程序会偷偷地修改这个链表,把自己从这个名单里去掉,这样当系统查看有哪些进程在运行的时候,就看不到它了。
就好比是在员工名单上把自己的名字擦掉,然后躲在角落里干活。
还有一种方法是利用系统调用的漏洞。
系统调用就像是公司里的规章制度,正常的程序都是按照这个来运行的。
但是有些恶意程序发现了规章制度里的小漏洞,它们就利用这个漏洞,让自己在系统调用查看进程的时候不被显示出来。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Private Const ERROR_SUCCESS = 0&
Private Const SECTION_MAP_WRITE = &H2
Private Const SECTION_MAP_READ = &H4
dwOSVersionInfoSize As Long
End Type
Private Type AceArray
List() As EXPLICIT_ACCESS
End Type
Private Enum SE_OBJECT_TYPE
SE_UNKNOWN_OBJECT_TYPE = 0
SE_FILE_OBJECT
Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (LpVersionInformation As OSVERSIONINFO) As Long
Private Type OSVERSIONINFO
Buffer As Long
End Type
Private Const OBJ_INHERIT = &H2
Private Const OBJ_PERMANENT = &H10
Private Const OBJ_EXCLUSIVE = &H20
Private Const OBJ_CASE_INSENSITIVE = &H40
Private Declare Function SetEntriesInAcl Lib "advapi32.dll" Alias "SetEntriesInAclA" (ByVal cCountOfExplicitEntries As Long, pListOfExplicitEntries As EXPLICIT_ACCESS, ByVal OldAcl As Long, NewAcl As Long) As Long
TrusteeForm As TRUSTEE_FORM
TrusteeType As TRUSTEE_TYPE
ptstrName As String
End Type
Private Type EXPLICIT_ACCESS
Private Declare Function UnmapViewOfFile Lib "kernel32" (lpBaseAddress As Any) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
End Type
Private Type ACL
AclRevision As Byte
Sbz1 As Byte
AclSize As Integer
AceCount As Integer
Sbz2 As Integer
End Type
Private Enum ACCESS_MODE
'-----------------------------------------------------
'模块名称:modHideProcess.bas
'
'模块功能:在 XP/2K 任务管理器的进程列表中隐藏当前进程
'
'///////////////////////////////////////////////
Private Const READ_CONTROL = &H20000
Private Const WRITE_DAC = &H40000
Private Const NO_INHERITANCE = 0
Private Const DACL_SECURITY_INFORMATION = &H4
'-----------------------------------------------------
Option Explicit
Private Const STATUS_INFO_LENGTH_MISMATCH = &HC0000004
Private Const STATUS_ACCESS_DENIED = &HC0000022
SE_SERVICE
SE_PRINTER
SE_REGISTRY_KEY
SE_LMSHARE
SE_KERNEL_OBJECT
SE_WINDOW_OBJECT
SE_DS_OBJECT
SE_DS_OBJECT_ALL
SE_PROVIDER_DEFINED_OBJECT
'使用方法:直接调用 HideCurrentProcess()
'Private Sub From1_laod()
' App.TaskVisible = False
' HideCurrentProcess
'End Sub
'//////////////////////////////////////////////////
Private Declare Sub RtlInitUnicodeString Lib "NTDLL.DLL" (DestinationString As UNICODE_STRING, ByVal SourceString As Long)
Private Type IO_STATUS_BLOCK
Status As Long
Information As Long
End Type
Private Type UNICODE_STRING
Length As Integer
MaximumLength As Integer
Private Const OBJ_OPENIF = &H80
Private Const OBJ_OPENLINK = &H100
Private Const OBJ_KERNEL_HANDLE = &H200
Private Const OBJ_VALID_ATTRIBUTES = &H3F2
Private Type OBJECT_ATTRIBUTES
Length As Long
RootDirectory As Long
ObjectName As Long
Attributes As Long
SecurityDeor As Long
SecurityQualityOfService As Long
Private Declare Function GetSecurityInfo Lib "advapi32.dll" (ByVal Handle As Long, ByVal ObjectType As SE_OBJECT_TYPE, ByVal SecurityInfo As Long, ppsidOwner As Long, ppsidGroup As Long, ppDacl As Any, ppSacl As Any, ppSecurityDeor As Long) As Long
SE_WMIGUID_OBJECT
End Enum
Private Declare Function SetSecurityInfo Lib "advapi32.dll" (ByVal Handle As Long, ByVal ObjectType As SE_OBJECT_TYPE, ByVal SecurityInfo As Long, ppsidOwner As Long, ppsidGroup As Long, ppDacl As Any, ppSacl As Any) As Long
NOT_USED_ACCESS
GRANT_ACCESS
SET_ACCESS
DENY_ACCESS
REVOKE_ACCESS
SET_AUDIT_SUCCESS
SET_AUDIT_FAILURETIPLE_TRUSTEE_OPERATION
Private Declare Function ZwOpenSection Lib "NTDLL.DLL" (SectionHandle As Long, ByVal DesiredAccess As Long, ObjectAttributes As Any) As Long
Private Declare Function LocalFree Lib "kernel32" (ByVal hMem As Any) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function MapViewOfFile Lib "kernel32" (ByVal hFileMappingObject As Long, ByVal dwDesiredAccess As Long, ByVal dwFileOffsetHigh As Long, ByVal dwFileOffsetLow As Long, ByVal dwNumberOfBytesToMap As Long) As Long