设为首页 友情链接
在线留言 发表文章
加入收藏 广告联系

刺猬首页

| 专案技术 | 网络技术 | 图形图象 | 网络编程 | 网页设计 | 操作系统 | 服务器 | 技术白皮书 | 在线实验室 | 刺猬论坛 |
小说专版  | 数据库 | 设计赏析 | 存储频道 | 网络安全 | 私服架设 |  Solaris | 网站评估 | PC维护技巧 | 下载中心 | 博 客 |
专   题: | Linux | java | cisco | 防病毒 | 刀片 | SOA | iscsi | ASP.NET | SQL | Oracle |
您现在的位置: 刺猬宫 >> 网络安全 >> 黑客攻防 >> 文章正文 用户登录 新用户注册
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
正、邪两类黑客的四大主…
黑客技巧之入侵Win XP常…
黑客教你将内网肉鸡作成…
悄悄告诉你黑客如何给你…
黑客高级技巧之Linux后门…
想成为黑客最起码要懂的…
反黑技巧:局域网内如何…
黑客基础知识系列之认清…
黑客道德准则 不是所有的…
黑客入侵之打造全功能MY…
  黑客技巧之用VB实现木马式隐形运行程序         ★★★★★
黑客技巧之用VB实现木马式隐形运行程序
 

程序隐形的原理

对于一个隐形程序而言,最基本的要求是:

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   Lo ng) 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环境中调试通过。

责任编辑 赵毅 zhaoyi#51cto.com TEL:(010)68476636-8001



频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。

原始作者:佚名 录入时间:2007-8-6 11:42:39
信息来源:不详 投稿信箱:itqoo@126.com
文章录入:itqoo    责任编辑:itqoo 
  • 上一个文章:

  • 下一个文章: 没有了
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    - 关于我们 - 合作伙伴 - 友情链接 - 广告刊登 - 投稿热线 - 在线留言版权声明联系方式 -
    IT公社版权所有 粤ICP备05127012号
    Copyrigh@2005-2006 itqoo.com.Inc All Rights Reserved  推荐分辨率 1024*768
    联系站长:E-Mail:itqoo@126.com     MSN:urchincc@hotmail.com    QQ:点击这里给我发消息
    特别感谢:亿太网络提供空间支持