- 浏览: 15030 次
最新评论
vb 如果让系统不能结束你的进程
2009年12月25日
这个可以用双进程守护实现,代码如下:
我保证可以实现 ,而且cpu使用率正常,不会像其他人写的双进程保护,占用了大量的资源
新建工程1,添加command1和timer控件,直接复制代码,将这个程序保存为csrss.exe
Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
Private Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function Module32First Lib "kernel32" (ByVal hSnapshot As Long, lppe As MODULEENTRY32) As Long
Private Declare Function Module32Next Lib "kernel32" (ByVal hSnapshot As Long, lppe As MODULEENTRY32) As Long
Private Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szExeFile As String * 260
End Type
Const TH32CS_SNAPPROCESS = &H2
Const TH32CS_SNAPmodule = &H8
Private Type MODULEENTRY32
dwSize As Long
th32ModuleID As Long
th32ProcessID As Long
GlblcntUsage As Long
ProccntUsage As Long
modBaseAddr As Byte
modBaseSize As Long
hModule As Long
szModule As String * 256
szExePath As String * 1024
End Type
Private Sub Command1_Click()
End
End Sub
Private Sub Form_Load()
App.TaskVisible = False '不要在任务管理内显示
End Sub
Private Sub Timer1_Timer()
Dim ret As Long, lPid As Long
Dim isLive As Boolean
Dim Mode As MODULEENTRY32, Proc As PROCESSENTRY32
Dim hSnapshot As Long, hMSnapshot As Long
Dim sFilename As String
If Dir(App.Path + "\stop") "" Then Exit Sub '如果当前文件夹内存在stop这个文件 则停止双进程保护
sFilename = App.Path + "\smss.exe" '另一个进程的路径
hSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0)
Proc.dwSize = Len(Proc)
Mode.dwSize = Len(Mode)
lPid = ProcessFirst(hSnapshot, Proc)
Do While lPid 0
hMSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPmodule, Proc.th32ProcessID)
Mode.szExePath = Space$(256)
ret = Module32First(hMSnapshot, Mode)
If ret > 0 Then
If InStr(1, Mode.szExePath, sFilename, vbTextCompare) > 0 Then 'Mode.szExePath=进程路径
isLive = True '找到目标进程
CloseHandle hMSnapshot
Exit Do
End If
End If
CloseHandle hMSnapshot
lPid = ProcessNext(hSnapshot, Proc)
Loop
CloseHandle hSnapshot
If Not isLive Then
ShellExecute 0, "", sFilename, "", "", 1 '如果目标进程不存在 则启动它
End If
End Sub
'timer的interval属性设置为1000
新建工程2,添加command1和timer控件,直接复制代码,将这个程序保存为smss.exe
Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
Private Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function Module32First Lib "kernel32" (ByVal hSnapshot As Long, lppe As MODULEENTRY32) As Long
Private Declare Function Module32Next Lib "kernel32" (ByVal hSnapshot As Long, lppe As MODULEENTRY32) As Long
Private Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szExeFile As String * 260
End Type
Const TH32CS_SNAPPROCESS = &H2
Const TH32CS_SNAPmodule = &H8
Private Type MODULEENTRY32
dwSize As Long
th32ModuleID As Long
th32ProcessID As Long
GlblcntUsage As Long
ProccntUsage As Long
modBaseAddr As Byte
modBaseSize As Long
hModule As Long
szModule As String * 256
szExePath As String * 1024
End Type
Private Sub Command1_Click()
End
End Sub
Private Sub Form_Load()
App.TaskVisible = False '不要在任务管理内显示
End Sub
Private Sub Timer1_Timer()
Dim ret As Long, lPid As Long
Dim isLive As Boolean
Dim Mode As MODULEENTRY32, Proc As PROCESSENTRY32
Dim hSnapshot As Long, hMSnapshot As Long
Dim sFilename As String
If Dir(App.Path + "\stop") "" Then Exit Sub '如果当前文件夹内存在stop这个文件 则停止双进程保护
sFilename = App.Path + "\csrss.exe"
hSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0)
Proc.dwSize = Len(Proc)
Mode.dwSize = Len(Mode)
lPid = ProcessFirst(hSnapshot, Proc)
Do While lPid 0
hMSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPmodule, Proc.th32ProcessID)
Mode.szExePath = Space$(256)
ret = Module32First(hMSnapshot, Mode)
If ret > 0 Then
If InStr(1, Mode.szExePath, sFilename, vbTextCompare) > 0 Then
isLive = True
CloseHandle hMSnapshot
Exit Do
End If
End If
CloseHandle hMSnapshot
lPid = ProcessNext(hSnapshot, Proc)
Loop
CloseHandle hSnapshot
If Not isLive Then
ShellExecute 0, "", sFilename, "", "", 1
End If
End Sub
'timer的interval属性设置为1000
你实现了以上两步后,会发现任务管理器不能结束smss.exe 和csrss.exe
其实仅仅要让任务管理期无法结束进程,那你把进程命名为关键进程就可以了,例如smss.exe csrss.exe winlogon.exe等
对了,你要想结束这两个进程,新建一个stop文件夹,把两个程序拖进去,再点结束就可以了
发表评论
-
Linux使用Eclipse + CDT开发C/C++程序(转)
2012-01-20 09:51 697Linux使用Eclipse + CDT开发C/C++程序(转 ... -
Thrift 是什么?
2012-01-20 09:51 585Thrift 是什么? 2011年03月19日 Thri ... -
请帮助和关心Unix-Center
2012-01-20 09:51 552请帮助和关心Unix-Center ... -
Projects or Libs(Updated: 2010-6-7)
2012-01-20 09:51 1409Projects or Libs(Updated: 2010- ... -
Java永远学不完的,放这里慢慢学
2012-01-20 09:51 979Java永远学不完的,放这 ... -
创建文本文件的两种方法
2012-01-19 14:57 1169创建文本文件的两种方 ... -
如何让AD用户密码在快过期时,发邮件提醒用户更改密码
2012-01-19 14:57 972如何让AD用户密码在快过期时,发邮件提醒用户更改密码 201 ... -
书80~81页代码
2012-01-19 14:57 401书80~81页代码 2011年04月20日 read.a ... -
VBscript+Asp脚本(14)
2012-01-19 14:57 683VBscript+Asp脚本(14) 2011年07月15日 ... -
西湖教育给予我的思考
2012-01-19 14:57 626西湖教育给予我的思考 ... -
Android ---- 概述
2012-01-17 04:39 626Android ---- 概述 2011年08月28日 ... -
QtEmbedded开发介绍之配置参数篇下
2012-01-17 04:39 548QtEmbedded开发介绍之配置 ... -
在Ubuntu Linux系统下用Wine玩魔兽世界
2012-01-17 04:39 1041在Ubuntu Linux系统下用Wine玩魔兽世界 201 ... -
system32文件夹里的文件详解
2012-01-17 04:39 808system32文件夹里的文件详解 2011年05月23日 ... -
FLTK简介
2012-01-17 04:39 588FLTK简介 2011年11月22日 ... -
VB编程
2012-01-16 03:33 461VB编程 2010年05月13日 正在工作中 ... -
VB制作游戏双开器
2012-01-16 03:33 1021VB制作游戏双开器 2010年05月24日 VB制作游戏 ... -
暂时放一放./..脑子要炸了
2012-01-16 03:33 536暂时放一放./..脑子要炸了 2010年11月10日 f ... -
几个代码VB
2012-01-16 03:33 586几个代码VB 2009年07月15日 现在看VB感觉越来 ...
相关推荐
VB源代码 定时屏保 屏蔽进程 结束系统进程 提权 各种特效 ,我自己收集改写,有兴趣的可以自己完善
一个基于VB.NET2008开发的操作系统进程镜像列表、管理的源代码。可以扫描进程相关信息,更改进程优先级,同时支持多进程同时结束功能。
用vb写的进程管理程序,虽然简单,但是实现方法很实用。可以得到系统的进程名及PID,并且可以关闭进程。
Option Explicit Private Const MAX_PATH = 260 Private Const PROCESS_ALL_ACCESS = 1 Private Const TH32CS_SNAPHEAPLIST = &H1 Private Const TH32CS_SNAPPROCESS = &H2 Private Const TH32CS_SNAPTHREAD = &H4...
VB终止、杀死进程的几个程序例子,附代码资料,一共7个包括强力杀死进程的例子代码,VB原版(可杀WINLOGON.EXE,不能杀冰刃),还有利用killBR杀死进程的,各有各的特色和方法,相信这些个源码够你参考学习了。
vb6.0 开发的一个任务管理器,遇到系统必须进程自动阻止您结束,有效避免系统出错。
内容索引:VB源码,系统相关,进程,PID VB强制关闭进程,输入你要结束的程序PID,点击“终止”即可结束,不知道PID的,可打开任务管理器查看,然后输入进去就行了。程序挺简单的,新手能看懂。
2.常量是指在程序运行过程中, 其值不能改变 的量。 3.整数类型数据分别包括整型和 长整型 数据。 4、在VB集成开发环境中,运行应用程序的方法有三种:一是_单击“运行 ”菜单下的启动_;二是_单击工具栏上的...
进程保护,双进程互相保护,VB6.0实例源代码,好像以前发过一个英文的,原理大同小异,两进程互相保护,你结束这个,那个调用,结束那个,这个调用并运行,下载试试就明白了。这个是中文的,比较一下在写法上有什么...
首先确认你的操作系统为2k以上,否则程序不能将dll注入到其它线程中,甚至会出现其它问题。 文件夹中包含4个.rar压缩包、一个.exe文件和一个.dll文件,要演示程序可以直接运行.exe文件,在界面上点击『运行记事本...
可用于在系统中隐藏进程 打开任务管理器都看不到你程序的名字 这样就可以防止结束你的程序
业务系统服务器上有个程序比较糟糕,老是因为网络的问题中断,必须通过结束进程后由业务系统的守护进程自动重启该程序。所以需要编写个自动杀进程的程序。(服务器的环境是win2000的)。本来想通过tskill(xp下面可以...
VB的程序设计基础 VB编码规则 1. 语言元素 VB的语言基础是BASIC语言,VB程序的语言元素主要由: 关键字(如: Dim、Print、Cls) 函数(如:Sin()、Cos()Sqr()) 表达式(如:Abs(-23.5)+45*20/3 ) ...
Vb双进程保护示例源程序,程序运行后,生成两个独立进程,结束一个进程 ,会重新启动一个新进程,你会发现进程管理器中始终有两个进程,总是结束不掉,以达到进程保护的功能。不过,在结束进程时先锁定EXE,或者选择...
系统进程扫描管理源码 一个基于VB.NET2008开发的操作系统进程镜像列表、管理的源代码。可以扫描进程相关信息,更改进程 优先级,同时支持多进程同时结束功能。
全文共分为绪论、开发方法的选择、系统分析、系统设计、系统实施、结束语等六章。首先论述了该系统的开发背景和系统的简单介绍;然后,讨论了结构化生命周期法、原型法和面向对象这三种开发方法的技术,根据需要选择...
比较好的下载者vb原代码 进程结束 屏蔽杀软 自启动的方式可以稍加修改 相对代码比较好 值得学习
wincc无法关闭时候,可以强制运行代码
吸星大法本身效果BT,然后释放几率高达50%,所以两个人来回吸,你吸我一口我吸你一口,打个三五分钟都无法结束战斗。故本版本从几率和施放上限上削弱了吸星大法。本版本在增加普攻几率的同时,通过增加破甲基本攻击...
全文共分为绪论、开发方法的选择、系统分析、系统设计、系统实施、结束语等六章。首先论述了该系统的开发背景和系统的简单介绍;然后,讨论了结构化生命周期法、原型法和面向对象这三种开发方法的技术,根据需要选择...