首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB实现进程保护解决办法

2012-03-04 
VB实现进程保护如何能在VB程序实现自身的进程保护可以简单的避免任务管理器的结束和逃脱cmd中的taskkill应

VB实现进程保护
如何能在VB程序实现自身的进程保护
可以简单的避免任务管理器的结束
和逃脱cmd中的taskkill
应该最好是利用双进程保护吧。
但本身程序窗口已经隐藏了,无法使用findwindow获得窗口标题
各位大虾有什么办法实现双进程保护呢
再次多谢了


[解决办法]
为什么要双进程呢???直接改下EPROCESS里有很多地方都可以实现进程保护的
[解决办法]

VB code
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
就结束不掉了

还有一种是双进程保护,不过很烦的,被结束掉以后程序的数据全部丢失,
能做到的只是被结束了自动重启而已(用来做绿坝不错)。

热点排行