VB实现程序的隐形
在一些系统中,为了特定的目的,经常要求程序隐藏运行,如DCS(分布式控制系统)中的后台监控系统、木马控制程序、源代码防复制等。,以降低被发现、截获和拆解的风险。这类功能模块要求程序不仅不出现在桌面上,而且不允许操作员从任务管理器列表中找到。
程序不可见的原则对于一个不可见的程序,最基本的要求是:
1.该界面不会出现在桌面上;
2.任务栏中不出现图标;
3.程序名称将从任务管理器列表中消失。
对于上面的第一点,可以将表单的Visible属性设置为False。
要从任务栏中阻止图标,可以将窗体的ShowInTaskBar更改为False。
在Windows环境下,可以调用WIN API函数中的RegisterviceProcess来实现第三个要求。
以上功能可以通过VC、Delphi、VB或PB等任何高级编程语言轻松实现。
隐形多用于木马程序,但木马程序在很多国家和地区是非法的。为了便于理解,本文用VB举例说明程序防复制。获取软件安装路径所在磁盘的序列号(磁盘ID),用它来判断合法用户。以下程序的目的是讲解隐形程序的编译和应用,在一定程度上简化程序的防拷贝内容。
程序不可见性的例子
程序的具体编程操作如下:
1.在VB6.0编程环境中,创建一个新项目Project1。
2.在Project1中添加Modulel,在项目属性中将项目名称更改为HiddenMen,并将应用程序标题更改为HiddenMen。
(以下程序经过实际运行测试,可以原样复制使用)。
将以下语句添加到模块Module1中:
公共声明函数GetCurrentProcessId Lib " kernel 32 "()为Long
获取当前进程ID函数的声明。
公共声明函数RegisterServiceProcess Lib " kernel 32 "(ByVal ProcessId As Long,ByVal
ServiceFlags一样长)一样长
在系统中注册当前进程ID函数的声明。
3.在Project1中创建一个新的表单Form1,并设置Form1的属性:
表格1。可见=假
表格1。ShowInTaskBar=False
在代码窗口中添加以下代码:
私有声明函数GetDriveType Lib "kernel32 "别名" GetDriveTypeA" (ByVal nDrive As
String)一样长
0条评论