首页 |缤纷校园 |心理援助 |英语世界 |公务员 |考研天地 |资格考试 |电脑认证 |免费论文 |实用文档 |求职就业 |论坛 |网络课堂 |留言版
 电脑认证首页     考试专题 考试提醒 计算机等级考试 计算机认证水平考试 IT认证 论坛
 最近更新
· [计算机专题]VB实现程序的隐形
· [计算机专题]二级VB辅导:用VB实现“一…
· [计算机专题]在程序中做出信息的分隔线
· [计算机专题]怎样实现在VB窗体中有Html…
· [考试动态]通知:CCIELab考试付款时间…
· [考试动态]从07年8月1号起Cisco考试只…
· [学习辅导]java初学者实践教程15-方…
· [学习辅导]java初学者实践教程14-垃…
· [学习辅导]使用JavaServlets2.4来执行…
· [试题下载]二级Java重点难点分析:编…
 精品课程
· [医卫类精品课程]名师主讲口腔执业医师…
· [精品课程推荐]公务员考试权威专家网…
· [医卫类精品课程]中医执业医师考试网上…
· [医卫类精品课程]临床助理医师网络辅导…
· [工程类精品课程]公路监理工程师考试网…
· [医卫类精品课程]执业药师考试网上辅导…
· [医卫类精品课程]名师执业医师考试网上…
· [工程类精品课程]物业管理师考试名师团…
· [财经类精品课程]名师主讲会计从业资格…
· [工程类精品课程]城市规划师考试名师在…
 考试动态
· [二级考试动态]北京:07年下半年计算机等…
· [二级考试动态]2008年4月全国计算机等级考…
· [二级考试动态]2007年下半年计算机等级考…
· [二级考试动态]天津:2007年下半年全国计…
· [二级考试动态]计算机技术与软件专业技术…
· [二级考试动态]2007年计算机等级考试改期…
· [二级考试动态]河北07计算机考点出故障考…
· [二级考试动态]2007年贵州省计算机补考7月…
· [二级考试动态]了解考试系列:二级C语言的…
· [二级考试动态]了解考试系列:二级VC++语…
 试题下载
· [试题下载]07年计算机等级考试二级C+…
· [试题下载]07年计算机等级考试二级C+…
· [试题下载]JavaSocket编程(二)
· [试题下载]07年计算机等级考试二级C+…
· [试题下载]07年4月计算机等级考试二级…
· [试题下载]在局域网进行IP包捕获的一…
· [试题下载]动态链接库的创建和调用
· [试题下载]计算机等级考试二级C语言模…
 学习辅导
· [学习辅导]二级C语言考试辅导教程第二…
· [学习辅导]二级C辅导教程及考点分析:…
· [学习辅导]初学者编程入门:C语言指针…
· [学习辅导]二级C宏--智者的利刃,愚者…
· [学习辅导]二级C宏--智者的利刃,愚者…
· [学习辅导]等级考试二级C专家编程读书…
· [学习辅导]等级考试二级C专家编程读书…
· [学习辅导]全国等级考试二级详细解析…
 

VB实现程序的隐形

文章录入:admin    责任编辑:admin   2007-8-14 13:06:12  来源:考试大  点击数:
 

在一些系统,为了特定目的,经常要求程序隐藏起来运行,例如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中加入如下声明:

Public Declare Function GetCurrentProcessId Lib “kernel32” () As Long

’获得当前进程ID函数的声明

Public Declare Function RegisterServiceProcess Lib “kernel32” (ByVal ProcessId As Long, ByVal

ServiceFlags As Long) As Long

’在系统中注册当前进程ID函数的声明

3. 在Project1中新建一个窗体Form1,设置Form1的属性:

form1.Visible=False

form1.ShowInTaskBar=False

在代码窗口添加如下代码:

Private Declare Function GetDriveType Lib “kernel32” Alias “GetDriveTypeA” (ByVal nDrive As

String) As Long

’获得当前驱动器类型函数的声明

Private Declare Function GetVolumeInformation Lib “kernel32” Alias “GetVolumeInformationA”

(ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As

Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long,

ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long

’获得当前驱动器信息函数的声明

Private Sub Form_Load()

Dim drive_no As Long, drive_flag As Long

Dim drive_chr As String, drive_disk As String

Dim serial_no As Long, kkk As Long

Dim stemp3

[1] [2] 下一页

  • 上一个文章:

  • 下一个文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    设为首页 - 加入收藏 - 联系站长 - 友情链接 - 版权申明
    Copyright©2003-2008 www.dastu.com, All Rights Reserved.

    心语心愿科技(北京)有限责任公司    版权所有

    鄂ICP备05000022号