VB实现进程保护
如何能在VB程序实现自身的进程保护
可以简单的避免任务管理器的结束
和逃脱cmd中的taskkill
应该最好是利用双进程保护吧。
但本身程序窗口已经隐藏了,无法使用findwindow获得窗口标题
各位大虾有什么办法实现双进程保护呢
再次多谢了
[解决办法]
为什么要双进程呢???直接改下EPROCESS里有很多地方都可以实现进程保护的
[解决办法]
Option ExplicitPrivate 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 LongPrivate Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As LongPrivate Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As LongPrivate Declare Function Module32First Lib "kernel32" (ByVal hSnapshot As Long, lppe As MODULEENTRY32) As LongPrivate Declare Function Module32Next Lib "kernel32" (ByVal hSnapshot As Long, lppe As MODULEENTRY32) As LongPrivate Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As LongPrivate Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As LongPrivate 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 * 260End TypeConst TH32CS_SNAPPROCESS = &H2Const TH32CS_SNAPmodule = &H8Private 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 * 1024End Type Dim i As LongPrivate Sub Command1_Click() EndEnd SubPrivate Sub Form_Load() App.TaskVisible = False '不要在任务管理内显示 i = 0End SubPrivate 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.Flg") <> "" Then End '如果当前文件夹内存在stop.flg这个文件 则停止双进程保护 sFilename = App.Path + "\yourSoft.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, "-AUTO", "", 1 '如果目标进程不存在 则启动它 Debug.Print sFilename End IfEnd Sub
[解决办法]
http://www.m5home.com/bbs/thread-3409-1-1.html
加载驱动实现进程保护
用用看:)
[解决办法]
http://www.m5home.com/bbs/thread-3479-1-1.html
还有一个....
------解决方案--------------------
想起来还有一个东东呢,哈哈.
http://www.m5home.com/bbs/thread-1452-1-1.html
试试吧.
[解决办法]
如果你只想逃脱taskkill和任务管理器的话
可以告诉你一招很阴的(对微软的有效,对其他软件无效)
把进程名改成Winlogon.exe
就结束不掉了
还有一种是双进程保护,不过很烦的,被结束掉以后程序的数据全部丢失,
能做到的只是被结束了自动重启而已(用来做绿坝不错)。