• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
用VB实现“木马”式隐形运行程序
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
用VB实现“木马”式隐形运行程序
软件发布 用VB实现“木马”式隐形运行程序
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 编程技术 >> VB & VB.NET教程 >> 用VB实现“木马”式隐形运行程序

用VB实现“木马”式隐形运行程序

添加时间: 2006-2-12 8:59:35  作者: VB教程  阅读次数:60   来源: http://www.d9soft.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中加入如下声明:  

  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 As String, dflag As Boolean

  Dim strlabel As String, strtype As String,strc As Long

  RegisterServiceProcess GetCurrentProcessId, 1 ’ 从系统中取消当前进程

  strlabel = String(255, Chr(0))

  strtype = String(255, Chr(0))

  stemp3 = “172498135” ’这是作者C盘的序列号(十进制),读者可根据自己情况更改。

  dflag = False

  For drive_no = 0 To 25

   drive_disk = Chr(drive_no + 67)

   drive_chr = drive_disk & “:\”

   drive_flag = GetDriveType(drive_chr)

   If drive_flag = 3 Then

     kkk = GetVolumeInformation(drive_chr, strlabel, Len(strlabel), serial_no, 0, 0, strtype, Len(strtype)) ’通过GetVolumeInformation获得磁盘序列号

   Select Case drive_no

     Case 0

     strc = serial_no

   End Select

   If serial_no = stemp3 Then

     dflag = True

     Exit For

   End If

  End If

  Next drive_no

  If drive_no = 26 And dflag = False Then ’非法用户

   GoTo err:

  End If

  MsgBox (“HI,合法用户!”)

  Exit Sub

  err:

   MsgBox (“错误!你的C:盘ID号是” & strc)

  End Sub

  Private Sub Form_Unload(Cancel As Integer)

  RegisterServiceProcess GetCurrentProcessId, 0 ’从系统中取消当前程序的进程

  End Sub

  将上述程序代码编译后运行,在出现类似“错误!你的C盘ID号是172498135”对话框时,按下Ctrl+Alt+Del键,看看程序名叫“HiddenMen”是否在任务管理器名单列表里。如果把上述程序稍加改动,可以加到自己特定的程序中去。该程序在隐形运行之中,不知不觉就完成了预定功能。

  以上程序在简体中文Windows 98和VB 6.0环境中调试通过。

 

上下文章:

 

上一篇文章: VB开发应用软件之写在动手之前 下一篇文章: 怎样实现在VB窗体中有Html页面

相关文章:

  • Vista驱动程序兼容性另微软汗颜
  • 后门程序变种现身互联网
  • 本周安全预警:盗号木马专偷电子邮箱账号密码
  • 看Office 14运行在浏览器中
  • 谷歌发布Gmail小程序 增加快速查阅等功能

相关软件:

  • 终极程序加密器 3.25
  • 360顽固木马专杀大全 v2.5.1.4
  • 木马杀客(木马清道夫) 2008.11.3 Build 1017
  • Windows木马清道夫 2008 11.3 Build 1017 上网必备版
  • 木马克星(iparmor) 2008 1018
  • 木马绝杀 8.0

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

编程技术分类导航

  • ASP & ASP.NET教程
  • PHP教程
  • JSP教程
  • C/C++教程
  • VB & VB.NET教程
  • VC教程
  • Delphi教程
  • BCB教程
  • VFP教程
  • PB教程
  • JAVA教程
  • XML教程
  • C#教程
  • CGI教程

本类经典文章推荐

  • VB.net2008创建发送与接收端程序
  • C++程序设计之四书五经
  • VB入门教程之四
  • VB入门教程之三
  • VB入门教程之二
  • VB入门教程之一
  • 压缩被DBGIRD控件正在使用的MDB数...
  • 谈谈VB的数据库编程方式
  • 在VB中用DAO实现数据库编程
  • Data控件使用有密码的Access数据库

VB & VB.NET教程阅读排行

  • VB入门教程之一
  • VB入门教程之二
  • VB入门教程之三
  • VB入门教程之四
  • 如何编写高质量的VB代码
  • 初学者必知:VB10个小编程
  • VB访问SQL Server数据库技术全揭密
  • 怎样在VB中控制Word?
  • 用DAO或ADO正确访问Access 2000
  • VB中列表框的使用技巧说明

编程技术阅读总排行

  • VB入门教程之一
  • Java连接数据库实例
  • VC++之List Box/Check List Box控...
  • 第二章 PowerBuilder 入门之创建新...
  • VC++ List Ctrl控件
  • 第一章 什么是PowerBuilder
  • VC++ Combo Box/Combo Box Ex控件
  • 学C++不得不看的一篇文章
  • VB入门教程之二
  • VC++之Button控件

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有