`
wsql
  • 浏览: 12104410 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

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

阅读更多
在一些系统,为了特定目的,经常要求程序隐藏起来运行,例如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杀木马软件源代码vb杀木马软件源代码vb杀木马软件源代码vb杀木马软件源代码vb杀木马软件源代码vb杀木马软件源代码vb杀木马软件源代码vb杀木马软件源代码vb杀木马软件源代码vb杀木马软件源代码vb杀木马软件源代码vb...

    vb6.0定时运行程序(含程序和源代码)

    vb6.0制作。可以设定某程序到某一时间运行。但暂时只能添加单一程序。就是指运行时不能设定多个任务。但可以运行多个本程序。ps:后来又添加了一个回车触发添加的函数。但没有必要再上传了。把那个函数代码写在下面,...

    VB课程设计报告及运行程序

    在"VB课程设计报告及运行程序"中,我们可以推测这是一份包含VB编程项目的工作成果,包括了两大部分:报告和实际的运行程序。报告部分通常会详细阐述项目的背景、目的、设计思路、实现过程、功能介绍以及可能遇到的...

    VB编程源代码 15在关闭程序对话框中隐藏运行程序名称

    VB编程源代码 15在关闭程序对话框中隐藏运行程序名称VB编程源代码 15在关闭程序对话框中隐藏运行程序名称VB编程源代码 15在关闭程序对话框中隐藏运行程序名称VB编程源代码 15在关闭程序对话框中隐藏运行程序名称VB...

    用VB实现的三维CAD绘图程序源代码

    本主题聚焦于一个特定的应用:使用VB来实现三维CAD(计算机辅助设计)绘图程序的源代码。下面将详细探讨这个领域的相关知识点。 首先,让我们了解VB的基本概念。VB是基于事件驱动的编程环境,它使用Basic语言语法,...

    VB实现的小程序

    3. 动态增减控件:说明了如何在VB程序运行期间动态地添加或删除控件,这对于制作可定制的用户界面非常有用。 4. 设计聚焦框程序:这部分讲述了如何制作让用户能够聚焦在特定区域的程序,这对于提高用户体验很重要。...

    VB 程序运行列表

    在VB程序运行列表中,我们通常会遇到一些关键的概念和过程,这些都是理解和编写VB程序的基础。 1. **事件驱动编程**:VB的核心编程模式是事件驱动,这意味着程序的执行基于用户与界面元素的交互,如按钮点击、窗口...

    VB检测程序是否在运行

    在VB(Visual Basic)编程中,检测一个程序是否在运行或者一个文件是否正在被占用是一项常见的任务,这对于实现某些功能,比如防止多个实例同时运行、管理文件操作等至关重要。下面我们将详细探讨如何在VB中实现这些...

    VB 建立文件运行程序

    在VB(Visual Basic)编程环境中,建立文件运行程序是指创建一个能够执行特定文件或操作的程序。这个过程涉及到了VB的基础语法、文件操作以及系统进程的控制。在本篇文章中,我们将深入探讨如何使用VB来实现这一功能...

    VB实现托盘程序

    本教程将深入讲解如何使用VB来实现这一功能。 1. **托盘图标的概念** 托盘图标是Windows操作系统中的一个特性,允许程序在任务栏通知区域显示一个小图标,用户可以通过点击这个图标与程序交互。这对于后台运行或者...

    脚本木马查杀工具VB源码

    【脚本木马查杀工具VB源码】是一款基于Visual Basic编程语言开发的软件,用于检测和清除系统中的脚本病毒或木马。VB(Visual Basic)是微软公司推出的一种面向对象的、可视化编程工具,它以其易学易用的特点在编程界...

    VB运行库VB运行库

    VB运行库是微软Visual ...总的来说,VB运行库是VB6应用程序运行的基础,对于那些依赖VB6编写的应用程序来说至关重要。了解和掌握VB运行库的功能和使用,对于开发者来说,是确保其程序能在不同环境中稳定运行的关键。

    VB代码VB小程序:实现USB摄像头视频图像的监控、截图、录像.pdf

    * 终止程序要用运行中的Form1窗口关闭,不要使用VB主窗口的菜单命令或VB工具栏上的关闭按钮,这样无法关闭打开的视频窗口,导致VB无响应。 * 如果VB无响应,只有用系统任务管理器才能终止VB进程,调试过程中所做的...

    VB防止程序重复运行

    通过上述代码示例,我们可以有效地实现VB程序的单实例运行。这种方法简单有效,适用于大多数情况。当然,还有其他实现方式,例如使用互斥量(Mutex)等更高级的技术手段,但在多数情况下,上面介绍的方法已经足够...

    VB编写木马基础到深入教程

    本教程旨在引导学习者从基础到深入理解如何利用VB来编写木马程序。木马,即特洛伊木马,是一种恶意软件,通常伪装成合法软件,诱使用户下载安装,从而获取对用户系统的非法控制。 首先,了解VB的基础语法是编写任何...

    VB6 防止程序二次运行

    综上所述,VB6防止程序二次运行的技术主要包括对现有进程的检查、互斥量的使用以及处理程序关闭的逻辑,这些都旨在确保程序的正确运行和用户数据的安全。通过学习和应用这些知识点,开发者可以创建更加稳定、高效的...

    VB 实现多线程

    然而,通过结合使用VB6和Windows API,我们完全可以在VB环境中实现高效的多线程编程。 #### 二、多线程基础 在深入探讨VB如何实现多线程之前,有必要先了解一些基本的概念。 **多线程定义**:多线程是指在一个...

    VB实现FTP功能程序源码

    【程序老媛出品,必属精品,亲测校正...资源名:VB实现FTP功能程序源码 资源类型:程序源代码 源码说明: 基于vb写的实现ftp功能的程序源码 包含完整代码和注释 非常适合借鉴学习 适合人群:新手及有一定经验的开发人员

    用vb实现的窗体和文本框的下拉和弹出式菜单

    在VB(Visual Basic)编程环境中,创建窗体和文本框的下拉及弹出式菜单是一项常见的任务,尤其对于开发用户界面友好的应用程序至关重要。本文将深入探讨如何使用VB来实现这一功能,以及相关的知识点。 首先,让我们...

    VB 实现的socket编程 聊天程序

    【VB 实现的Socket编程 聊天程序】 在信息技术领域,Socket编程是一种常见的网络通信技术,它允许应用程序通过网络发送和接收数据。VB(Visual Basic)作为Microsoft开发的一种可视化的编程工具,提供了丰富的功能...

Global site tag (gtag.js) - Google Analytics