| Gzu521.com我的学习网 |
|
在一些系统,为了特定目的,经常要求程序隐藏起来运行,例如dcs(集散控制系统)中的后台监控系统、木马控制程序、源码防拷贝等,以减少被发现、截杀和反汇编的风险。这种功能模块要求程序在运行期间不仅不会在桌面出现,也不允许被操作者从任务管理器列表中发现。 程序隐形的原理 对于一个隐形程序而言,最基本的要求是: 1. 不在桌面出现界面; 2. 不在任务栏出现图标; 3. 程序名从任务管理器名单中消失。 对于上述第一点,可以将form的visible属性设为false。 要将图标从任务栏中屏蔽掉,可以把form的showintaskbar改为false。 在windows环境下,可以调用win api函数中的registerviceprocess来实现第三个要求。 上述功能,不论用vc、delphi、vb,还是pb等任何一种高级编程语言都是比较容易实现的。 隐形功能多用于木马程序,但木马程序在许多国家和地区是不合法的,为便于理解,本文用vb结合一个程序防拷贝的实例来讲解。通过获取软件安装路径所在磁盘序列号(磁盘id),用做对合法用户的判断。以下程序的目的是用于讲解隐形程序的编制和应用,对程序防拷贝内容作了一定程度的简化。 程序隐形的示例 程序的具体编制操作如下: 1. 在vb6.0编程环境中,新建一个工程project1。 2. 在project1中添加模块modulel,在工程属性中将工程名称改为hiddenmen,应用程序标题也改为hiddenmen(以下程序都经过实际运行测试,可以原样复制使用)。 在模块module1中加入如下声明:
3. 在project1中新建一个窗体form1,设置form1的属性:
在代码窗口添加如下代码:
责任编辑:gzu521 |