用VB实现隐藏进程

作者&投稿:苍点 (若有异议请与网页底部的电邮联系)
如何用vb 隐藏进程~

没用
VB在98下可以隐藏自己,用RegisterServiceProcess这个API

可是NT下(2000以后都是NT的,XP也是)没这个函数

App.TaskVisible = False 这句只能让自己的窗口不出现在任务管理器的窗里面
进程还是可以看到,基本没找到可以隐藏进程的,死心吧

App.TaskVisible = False能在管理器的应用程序中能隐藏,但在进程中无法隐藏。
以下是禁止和启动管理器。
'command1 禁止打开任务管理器
'command2 取消禁止
Option Explicit
Private Sub Command1_Click()
Dim mfile As String
mfile = VBA.Environ("windir")
mfile = mfile & "\system32askmgr.exe"
Open mfile For Input Lock Read Write As #1
End Sub
Private Sub Command2_Click()
Close #1
End Sub

晕,二楼的代码怎么那么熟悉?似乎我去年发的。。
隐藏进程现在常用的是进程插入技术,找一个进程:如Explorer.exe,将自身隐藏在这个进程之内

不过这样的代码还是会被杀毒软件发现,代码就用现成的了:

第一步,提升本进程的系统权限。
因为我们要操作的是系统中的其他进程,没有足够的系统权限是无法读取甚至写入其他进程的内存地址的。提升进程权限可能用到以下的函数:
1.函数OpenProcessToken(
HANDLE ProcessHandle, // 进程的句柄
DWORD DesiredAccess, // 对进程的访问描述
PHANDLE TokenHandle // 打开进程令牌的句柄指针
);
这个函数的作用是打开进程令牌。

2.函数LookupPrivilegeValue(
LPCTSTR lpSystemName, //系统名称
LPCTSTR lpName, // 特权名称
PLUID lpLuid // 本地系统唯一的ID号
);
这个函数将会返回一个本地系统内独一无二的ID,来用于系统权限的更改,它的第1个参数是系统名,nil表示本系统。第2个参数是特权的名字。第3个参数用来接收函数返回的ID。

3.函数AdjustTokenPrivileges(
HANDLE TokenHandle, //更改权限的令牌环句柄
BOOL DisableAllPrivileges, //是否修改所有权限的标志位
PTOKEN_PRIVILEGES NewState, //新的系统权限信息
DWORD BufferLength, //上一个参数的长度
PTOKEN_PRIVILEGES PreviousState, // 返回更改系统特权以前的权限
PDWORD ReturnLength //上一个参数的长度
);
这个函数用于更改进程的系统权限 ,第1个参数是要更改权限的令牌环句柄。第2个参数如果为true表示更改所有的系统权限 ,false表示更改部分。第3个参数是要更改的系统特权的值。第4个参数是第3个参数的大小。第5个参数返回更改系统特权以前的权限,我们不需要就设为nil。第6个参数是第5个参数的大小。
把上面的东西合并起来写成一个函数,我们在其他代码中间直接调用PromoteDebugPrivilege就可以提升本进程的系统权限了。代码如下:
======================================================================
function PromoteDebugPrivilege(const PromoteEnabled: Boolean): Boolean;
var
hToken: THandle;
TokenPriv: TOKEN_PRIVILEGES;
Length: DWORD;
begin
Result := False;
if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, hToken)) then
begin
TokenPriv.PrivilegeCount := 1;
LookupPrivilegeValue(nil, 'SeDebugPrivilege', TokenPriv.Privileges[0].Luid);
if PromoteEnabled then
TokenPriv.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED
else
TokenPriv.Privileges[0].Attributes := 0;
Length := 0;
AdjustTokenPrivileges(hToken, False, TokenPriv, SizeOf(TokenPriv), nil, Length);
Result := GetLastError = ERROR_SUCCESS;
CloseHandle(hToken);
end;
end;
第二步,进入宿主的内存空间
在拥有了进入宿主程序内存的权限之后,我们所要做的是在其内存空间加入一些新的程序代码,或者是让其载入一个Dll文件里面的函数并运行起来。加入新的代码可以省掉一个dll文件,而加载dll文件可以安装一些系统级的钩子,如果我们的隐形程序是一个截获密码的程序,加载dll就是一个很好的选择。
Kernel32.dll中的函数LoadLibraryW可以加载dll,它只需要dll文件的文件路径就可以完成操作,我们可以很容易的在程序代码中实现取出一个文件路径的操作。但是,我们希望在宿主程序中加载,而我们取出的dll文件路径并不存在于宿主程序的内存空间里面,所以我们需要把dll的文件路径写入宿主的内存空间。这些操作可能用到以下的函数:
1.函数OpenProcess(
DWORD dwDesiredAccess, //访问标志
BOOL bInheritHandle, //继承句柄标志
DWORD dwProcessId // 进程Id
);
这个函数用于修改我们宿主进程的一些属性,这些属性放在第一个参数里面,比如PROCESS_VM_OPERATION就是允许远程VM操作,即允许VirtualProtectEx和WriteProcessMemory函数操作本进程内存空间。PROCESS_CREATE_THREAD 就是允许远程创建线程。PROCESS_VM_WRITE就是允许远程VM写,即允许 WriteProcessMemory函数访问本进程的内存空间。第二个参数是一个标志参数,用来确定返回的句柄是否可以被新的进程继承。我们的程序中设为False。第三个参数需要操作的进程Id,也就是我们的宿主进程的Id。
2.函数VirtualAllocEx(
HANDLE hProcess, //要进行操作的进程句柄,当然是我们的宿主了
LPVOID lpAddress, //分配空间的起始地址
DWORD dwSize, //分配空间的大小
DWORD flAllocationType, // 分配空间的类型
DWORD flProtect // 访问保护类型
);
我们使用 VirtualAllocEx函数在宿主进程中开辟一块内存空间,用于存放dll的文件名。VirtualAllocEx的第1个参数是要操作的进程,第2个是起始地址,第3个是长度,第4,5个是操作参数。其中MEM_COMMIT表示本函数分配的是物理内存或者是内存的页面文件,PAGE_READWRITE表示分配的区域内允许读写。
3.函数WriteProcessMemory (
HANDLE hProcess, //所要操作进程的句柄
LPVOID lpBaseAddress, //开始进行些操作的起始地址
LPVOID lpBuffer, //要写入数据的缓冲区指针
DWORD nSize, // 要写的bytes数
LPDWORD lpNumberOfBytesWritten // 实际写入的bytes数
);
前面在宿主内存中创建好空间后,现在往里面写入dll的名称,而我们的WriteProcessMemory函数就可以胜任这一项工作。WriteProcessMemory函数的第一个参数 是需要往其内存里面写入dd的进程句柄,第二个参数是 “要进行写操作”的目标内存起始地址,第三个参数是 “需要被写入的数据”的地址,第四个参数是准备要写入的长度,第五个参数是实际操作中写的长度,这个参数是被函数输出的。到这里我们就已经能成功把dll的路径名称写进了宿主的内存空间。
第三步,在宿主中启动新的线程!
刚才我们已经在宿主程序中创建了一个用于存放一个dll文件路径的缓冲区,现在我们就要让这个dll在宿主的内存空间中运行起来。我们是用LoadLibraryW函数来加载的,而使用LoadLibraryW,又需要知道LoadLibraryW函数的入口地址。所以在加载dll之前,我们要用GetProcAddress来得到LoadLibraryW的入口地址。我们来看看这几个函数的使用方法:
1.GetProcAddress(
HMODULE hModule, //dll模块的句柄
LPCSTR lpProcName // 函数名称
);
我们用这个函数主要想得到kernel32.dll中的函数LoadLibraryW的入口地址,所以
GetProcAddress(GetModuleHandle('Kernel32'), 'LoadLibraryW')就可以了,当然有些细节得符合程序编译器的要求,VC下使用就要改成
GetProcAddress(GetModuleHandle(TEXT("Kernel32")), "LoadLibraryW")的形式。
2.CreateRemoteThread (
HANDLE hProcess, //要进行操作的进程句柄,也就是我们的宿主句柄
LPSECURITY_ATTRIBUTES lpThreadAttributes, //线程安全属性的指针
DWORD dwStackSize, //初始化堆(stack)的大小
LPTHREAD_START_ROUTINE lpStartAddress,//新建线程函数的指针,或叫做地址
LPVOID lpParameter, //新建线程函数的参数
DWORD dwCreationFlags, //标志位
LPDWORD lpThreadId //线程返回值
);
这个函数就是本文的点睛之笔了,我们之前所做所有的一切,都是在为它做准备工作,它的功能就是在其他任何进程中创建新的线程,让其他的程序或进程附加执行我们的代码。

找到一高手的答案呵

在XP/2K系统中隐藏进程的VB代码
Attribute VB_Name = "modHideProcess"

'-------------------------------------------------------------------------------------
'模块名称:modHideProcess.bas
'
'模块功能:在 XP/2K 任务管理器的进程列表中隐藏当前进程
'
'使用方法:直接调用 HideCurrentProcess()
'
'模块作者:检索自互联网,原作者不详。
'
'修改日期:2006/08/26
'---------------------------------------------------------------------------------------

Option Explicit

Private Const STATUS_INFO_LENGTH_MISMATCH = &HC0000004
Private Const STATUS_ACCESS_DENIED = &HC0000022
Private Const STATUS_INVALID_HandLE = &HC0000008
Private Const ERROR_SUCCESS = 0&
Private Const SECTION_MAP_WRITE = &H2
Private Const SECTION_MAP_READ = &H4
Private Const READ_CONTROL = &H20000
Private Const WRITE_DAC = &H40000
Private Const NO_INHERITANCE = 0
Private Const DACL_SECURITY_INFORMATION = &H4

Private Type IO_STATUS_BLOCK
Status As Long
Information As Long
End Type

Private Type UNICODE_STRING
Length As Integer
MaximumLength As Integer
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 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
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
NOT_USED_ACCESS
GRANT_ACCESS
SET_ACCESS
DENY_ACCESS
REVOKE_ACCESS
SET_AUDIT_SUCCESS
SET_AUDIT_FAILURE
End Enum

Private Enum MULTIPLE_TRUSTEE_OPERATION
NO_MULTIPLE_TRUSTEE
TRUSTEE_IS_IMPERSONATE
End Enum

Private Enum TRUSTEE_FORM
TRUSTEE_IS_SID
TRUSTEE_IS_NAME
End Enum

Private Enum TRUSTEE_TYPE
TRUSTEE_IS_UNKNOWN
TRUSTEE_IS_USER
TRUSTEE_IS_GROUP
End Enum

Private Type TRUSTEE
pMultipleTrustee As Long
MultipleTrusteeOperation As MULTIPLE_TRUSTEE_OPERATION
TrusteeForm As TRUSTEE_FORM
TrusteeType As TRUSTEE_TYPE
ptstrName As String
End Type

Private Type EXPLICIT_ACCESS
grfAccessPermissions As Long
grfAccessMode As ACCESS_MODE
grfInheritance As Long
TRUSTEE As TRUSTEE
End Type

Private Type AceArray
List() As EXPLICIT_ACCESS
End Type

Private Enum SE_OBJECT_TYPE
SE_UNKNOWN_OBJECT_TYPE = 0
SE_FILE_OBJECT
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
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
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

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
Private Declare Sub BuildExplicitAccessWithName Lib "advapi32.dll" Alias

"BuildExplicitAccessWithNameA" (pExplicitAccess As EXPLICIT_ACCESS, ByVal

pTrusteeName 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 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
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)
Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA"

(LpVersionInformation As OSVERSIONINFO) As Long

Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type

Private verinfo As OSVERSIONINFO

Private g_hNtDLL As Long
Private g_pMapPhysicalMemory As Long
Private g_hMPM As Long
Private aByte(3) As Byte

Public Sub HideCurrentProcess()
'在进程列表中隐藏当前应用程序进程

Dim thread As Long, process As Long, fw As Long, bw As Long
Dim lOffsetFlink As Long, lOffsetBlink As Long, lOffsetPID As Long

verinfo.dwOSVersionInfoSize = Len(verinfo)
If (GetVersionEx(verinfo)) <> 0 Then
If verinfo.dwPlatformId = 2 Then
If verinfo.dwMajorVersion = 5 Then
select Case verinfo.dwMinorVersion
Case 0
lOffsetFlink = &HA0
lOffsetBlink = &HA4
lOffsetPID = &H9C
Case 1
lOffsetFlink = &H88
lOffsetBlink = &H8C
lOffsetPID = &H84
End select
End If
End If
End If

If OpenPhysicalMemory <> 0 Then
thread = GetData(&HFFDFF124)
process = GetData(thread + &H44)
fw = GetData(process + lOffsetFlink)
bw = GetData(process + lOffsetBlink)
SetData fw + 4, bw
SetData bw, fw
CloseHandle g_hMPM
End If
End Sub

Private Sub SetPhyscialMemorySectionCanBeWrited(ByVal hSection As Long)
Dim pDacl As Long
Dim pNewDacl As Long
Dim pSD As Long
Dim dwRes As Long
Dim ea As EXPLICIT_ACCESS

GetSecurityInfo hSection, SE_KERNEL_OBJECT, DACL_SECURITY_INFORMATION, 0, 0,

pDacl, 0, pSD

ea.grfAccessPermissions = SECTION_MAP_WRITE
ea.grfAccessMode = GRANT_ACCESS
ea.grfInheritance = NO_INHERITANCE
ea.TRUSTEE.TrusteeForm = TRUSTEE_IS_NAME
ea.TRUSTEE.TrusteeType = TRUSTEE_IS_USER
ea.TRUSTEE.ptstrName = "CURRENT_USER" & vbNullChar

SetEntriesInAcl 1, ea, pDacl, pNewDacl

SetSecurityInfo hSection, SE_KERNEL_OBJECT, DACL_SECURITY_INFORMATION, 0, 0,

ByVal pNewDacl, 0

CleanUp:
LocalFree pSD
LocalFree pNewDacl
End Sub

Private Function OpenPhysicalMemory() As Long
Dim Status As Long
Dim PhysmemString As UNICODE_STRING
Dim Attributes As OBJECT_ATTRIBUTES

RtlInitUnicodeString PhysmemString, StrPtr("\Device\PhysicalMemory")
Attributes.Length = Len(Attributes)
Attributes.RootDirectory = 0
Attributes.ObjectName = VarPtr(PhysmemString)
Attributes.Attributes = 0
Attributes.SecurityDeor = 0
Attributes.SecurityQualityOfService = 0

Status = ZwOpenSection(g_hMPM, SECTION_MAP_READ Or SECTION_MAP_WRITE,

Attributes)
If Status = STATUS_ACCESS_DENIED Then
Status = ZwOpenSection(g_hMPM, READ_CONTROL Or WRITE_DAC, Attributes)
SetPhyscialMemorySectionCanBeWrited g_hMPM
CloseHandle g_hMPM
Status = ZwOpenSection(g_hMPM, SECTION_MAP_READ Or SECTION_MAP_WRITE,

Attributes)
End If

Dim lDirectoty As Long
verinfo.dwOSVersionInfoSize = Len(verinfo)
If (GetVersionEx(verinfo)) <> 0 Then
If verinfo.dwPlatformId = 2 Then
If verinfo.dwMajorVersion = 5 Then
select Case verinfo.dwMinorVersion
Case 0
lDirectoty = &H30000
Case 1
lDirectoty = &H39000
End select
End If
End If
End If

If Status = 0 Then
g_pMapPhysicalMemory = MapViewOfFile(g_hMPM, 4, 0, lDirectoty, &H1000)
If g_pMapPhysicalMemory <> 0 Then OpenPhysicalMemory = g_hMPM
End If
End Function

Private Function LinearToPhys(BaseAddress As Long, addr As Long) As Long
Dim VAddr As Long, PGDE As Long, PTE As Long, PAddr As Long
Dim lTemp As Long

VAddr = addr
CopyMemory aByte(0), VAddr, 4
lTemp = Fix(ByteArrToLong(aByte) / (2 ^ 22))

PGDE = BaseAddress + lTemp * 4
CopyMemory PGDE, ByVal PGDE, 4

If (PGDE and 1) <> 0 Then
lTemp = PGDE and &H80
If lTemp <> 0 Then
PAddr = (PGDE and &HFFC00000) + (VAddr and &H3FFFFF)
Else
PGDE = MapViewOfFile(g_hMPM, 4, 0, PGDE and &HFFFFF000, &H1000)
lTemp = (VAddr and &H3FF000) / (2 ^ 12)
PTE = PGDE + lTemp * 4
CopyMemory PTE, ByVal PTE, 4

If (PTE and 1) <> 0 Then
PAddr = (PTE and &HFFFFF000) + (VAddr and &HFFF)
UnmapViewOfFile PGDE
End If
End If
End If

LinearToPhys = PAddr
End Function

Private Function GetData(addr As Long) As Long
Dim phys As Long, tmp As Long, ret As Long

phys = LinearToPhys(g_pMapPhysicalMemory, addr)
tmp = MapViewOfFile(g_hMPM, 4, 0, phys and &HFFFFF000, &H1000)
If tmp <> 0 Then
ret = tmp + ((phys and &HFFF) / (2 ^ 2)) * 4
CopyMemory ret, ByVal ret, 4

UnmapViewOfFile tmp
GetData = ret
End If
End Function

Private Function SetData(ByVal addr As Long, ByVal data As Long) As Boolean
Dim phys As Long, tmp As Long, x As Long

phys = LinearToPhys(g_pMapPhysicalMemory, addr)
tmp = MapViewOfFile(g_hMPM, SECTION_MAP_WRITE, 0, phys and &HFFFFF000, &H1000)
If tmp <> 0 Then
x = tmp + ((phys and &HFFF) / (2 ^ 2)) * 4
CopyMemory ByVal x, data, 4

UnmapViewOfFile tmp
SetData = True
End If
End Function

Private Function ByteArrToLong(inByte() As Byte) As Double
Dim I As Integer
For I = 0 To 3
ByteArrToLong = ByteArrToLong + inByte(I) * (&H100 ^ I)
Next I
End Function

XP SP2 + VB6.0调试通过

要在一个系统进程中修改或者杀死另一个进程,需要做以下步骤:
1.提升进程自身身的权限,使之拥有高的特权级
2.搜索宿主进程
3.保存PCB
3.修改进程
4.如果出错,恢复PCB

这样解释你清楚了吗?

我想你可以把模块中的API的功能逐个了解一下,如果你不了解他们的作用,那么即使讲了也没有用,你可以去MSDN.microsoft上看一下相关的资料

type的API资料可以在FoxApi中查到

进程好像不可以隐藏吧
如果能够隐藏那微软的那些系统进程怎么没有隐藏勒
如果是有任务管理器里的用户程序隐藏还是可以的

Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Call ShowWindow(GetWindow(Me.hwnd, 4), 0)
me.hwnd 是窗体的句柄

就算你进程能够隐藏还是可能通过API 全部扫描到的
包括扫描到你引用的第三方文件也能扫描到
不过太长了
这里不好发过来

Private Sub Form_Load()
App.TaskVisible = False
End Sub
虽然没有隐藏进程`但是可以隐藏在应用程序那里的显示``

加油啦 OK!


VB编写隐藏指定的EXE进程
VB编写隐藏指定的EXE进程,以DNF网络游戏为例,隐藏DNFchina.exe实现双开DNF效果我之前使用过外G.里面有很多功能.包括双开.这个功能只是这个外G其中的一个小小的功能.更别说其他什么强... VB编写隐藏指定的EXE进程, 以DNF网络游戏为例,隐藏DNFchina.exe实现双开DNF效果我之前使用过外G. 里面有很多功能.包括双开. ...

vb在XP下怎样隐藏进程
你的问题和你的描述是两个问题啊,1:vb下面隐藏进程你只需要看看app这个公共变量的属性即可:app 2:不被别的程序结束,你需要提升你程序的运行权限,比如system的程序,一般的

怎么让程序不在任务管理器中的进程里显示? 用VB语言告诉我一下 拜托...
这个比较难。用VB做就更难了。只要是一个独立的进程运行,进程管理器中一定会显示的。不显示是做不到的。如果想不显示,只能有另外的思路。比如,做成一些动态链接库,加载到系统的其它进程中,如explorer中。不过,就算这样,用一些进程管理软件,也可以看到进程加载了哪些DLL,也不是能够完全隐藏的。

VB怎样结束隐藏的进程?
楼上方法完全错误 因为是隐藏进程 不能用OpenProcess来获取进程句柄 我认为如果这个隐藏程序在运行的时候 试着用FindWindow获取句柄 在再用TerminateProcess来结束进程 这个可能会成功可能会不成功 因为不能100%获取到句柄 看人品了给你思路 代码就不写了 ...

VB隐藏进程——modHidePro.bas的问题
这个只能在WinXP之前的操作系统中才有效,目前常用的XP、Win7系统是无效的,貌似只有把程序做成驱动程序或系统服务程序才能真正隐藏进程了,而这对VB来说有点勉为其难了。

...的u盘并复制u盘文件到制定文件夹 2.实现进程隐藏,任务管理器_百度知 ...
Private Sub 定时器_Tick(sender As Object, e As EventArgs) Handles 定时器.Tick Dim 我的驱动器 As DriveInfo() = DriveInfo.GetDrives Try For Each 驱动器 As DriveInfo In 我的驱动器 If 驱动器.IsReady Then If 驱动器.DriveType = DriveType.Removable Then IO.File.Copy(驱动器.Root...

VB怎么实现不能结束进程?
任务管理器里隐藏进程好像 一般都是hook ZwOpenProcess函数。好像看上面的代码是直接读写物理内存,没测试过不知道行不行,不过应该通用性很差的了。

怎么把VB程序的进程隐藏掉
要么驱动,要么用api hook的方法拦截api把任务管理器历遍进程的函数拦截了

vb 关闭隐藏进程
通过写一个内核级的驱动来得到所有的进程,然后结束掉你要结束的进程。

vb生成的EXE怎么在任务管理器进程中隐藏(或无法终止)?
...一般来说隐藏的目的都值得我们推敲...你看看微软的服务都怎么隐藏进程的,提示到此为止

云浮市18714961073: 如何用vb 隐藏进程 -
蓬刚五味: App.TaskVisible = False能在管理器的应用程序中能隐藏,但在进程中无法隐藏.以下是禁止和启动管理器.'command1 禁止打开任务管理器'command2 取消禁止 Option Explicit Private Sub Command1_Click() Dim mfile As String mfile = VBA....

云浮市18714961073: 怎样用VB实现隐形运行程序?同上
蓬刚五味: 用VB实现“木马”式隐形运行程序 在一些系统,为了特定目的,经常要求程序隐藏起来运行,例如DCS(集散控制系统)中的后台监控系统、木马控制程序、源码防拷贝...

云浮市18714961073: 如何用vb 隐藏进程
蓬刚五味: 没用 VB在98下可以隐藏自己,用RegisterServiceProcess这个API 可是NT下(2000以后都是NT的,XP也是)没这个函数 App.TaskVisible = False 这句只能让自己的窗口不出现在任务管理器的<应用程序>窗里面 进程还是可以看到,基本没找到可以隐藏进程的,死心吧

云浮市18714961073: VB做的程序如何隐藏进程
蓬刚五味: 在XP/2K系统中隐藏进程的VB代码 Attribute VB_Name = "modHideProcess" '模块名称:modHideProcess.bas ' '模块功能:在 XP/2K 任务管理器的进程列表中隐藏当前进程 ' '使用方法:直接调用 HideCurrentProcess() '模块作者:检索自...

云浮市18714961073: 怎么样用vb把一个exe程序隐藏起来? -
蓬刚五味: Private Sub Form_Load() Me.Hide app.taskvisible=false End Sub然后窗体属性:Form1.ShowInTaskbar = False呵呵,原来你是隐藏其他的程序啊,那简单啊哈哈,用shell 比如你隐藏运行123.exePrivate Declare Function FindWindow Lib "...

云浮市18714961073: VB 自定义隐藏 程序 代码
蓬刚五味: 这个很好实现啊,你定时是5分,但是你在vb的程序中有timer吧,等你内部的timer倒计时为1s的时候再运行关机就可以了.Shell "cmd /c shutdown -s -t 1" 这样就可以在关机前一秒出现,估计也取消不了了.

云浮市18714961073: 在VB中如何实现程序的隐藏?
蓬刚五味: 使用两个API Findwindow 得到要隐藏 窗口的hwnd 再调用ShowWindow 函数来进行隐藏和显示窗口. 不会用就直接在百度里输入函数名,自己搜索一下

云浮市18714961073: vb中如何在任务管理器里面隐藏应用程序 -
蓬刚五味: app.taskvisible=FALSE 这个只能在任务管理器的“应用程序”栏隐藏;在进程里隐藏不了.

云浮市18714961073: VB隐藏指定PID的进程 -
蓬刚五味: 在win98时代,要隐藏进程很容易实现,但自winxp起,普通软件要想隐藏进程就不太容易,可能是出于安全性的考虑吧.要在驱动程序级才能实现了.不过如果不是隐藏进程,只是在任务管理器的应用程序中的窗口列表中隐藏,这个倒是容易实现的,VB6本身有语句(App.TaskVisible = False)可以隐藏自身窗口,要通过VB6程序隐藏其他程序的窗口也可以,用API函数给目标窗口叠加一个隐藏状态即可.

云浮市18714961073: 如何用VB6程序显示隐藏进程 -
蓬刚五味: 在我看来要结合驱动才行,因为隐藏进程都是驱动级的hook服务函数等技术做的.VB写不了驱动,要C才行.不过可以采用VB调用icesword的接口来实现.icesword的显示隐藏功能做的很好,好像icesword是留有外部接口让你自己进行扩展开发的.可以找资料看看啦.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网