微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题黑客的秘密武器
栏目软件世界
作者刘伟
发布2001年42期
  对于一些常见的黑客程序,比如“冰河”、“口令信差”等,它们的一些运行机理,相信大家都非常感兴趣。其实,对普通程序开发人员而言,其中有两个地方是比较有用的,那就是它们是如何实现开机自启动和屏蔽“Ctrl+Alt+Del”。下面就让我们一起来看看其实现方法。
   开机自启动
  先建一个按钮控件,命名为COMMAND1,代码如下:
  Option Explicit '声明
  '处理注册表的函数
  Private Declare Function RegCreateKey& Lib “advapi32.dll” Alias “RegCreateKeyA”(ByVal hKey&,ByVal lpszSubKey$,lphKey&)
  Private Declare Function RegSetValue Lib “advapi32.dll” Alias “RegSetValueA”(ByVal hKey As Long,ByVal lpSubKey As String,ByVal dwType As Long, ByVal lpData As String,ByVal cbData As Long)As Long
  Const HKEY_LOCAL_MACHINE = &H80000002
  Const REG_SZ = 1
  '对HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run进行操作
  Private Sub Command1_Click()
  '声明变量
  Dim sKeyName As String(sKeyValue As String,sKeyValueIcon As String
  Dim Ret As Integer)lphKey As Long
  sKeyName = “Software\Microsoft\Windows\CurrentVersion\Run”
  sKeyValue = App.Path & IIf(Len(App.Path)> 3,“\” & “form1.exe”, “form1.exe”)
  Ret = RegCreateKey&HKEY_LOCAL_MACHINE,sKeyName,lphKey;
  Ret = RegSetValue&(lphKey&,“”,REG_SZ,sKeyValue,0&)
  End Sub
   屏蔽“Ctrl+Alt+Del”
  建一个按钮控件,命名为屏蔽,代码如下:
  Private Declare Function SystemParametersInfo Lib “user32” Alias “SystemParametersInfoA”(ByVal uAction As Long, ByVal uParam As Long,lpvParam As Any, ByVal fuWinIni As Long)As Long
  Private Const SPI_SCREENSAVERRUNNING = 97
  Private Sub Command1_Click
  Dim ret As Integer
  Dim pOld As Boolean
  If Command1.Caption =“屏蔽” Then '使Ctrl+Alt+Del有效
  ret = SystemParametersInfo(SPI_SCREENSAVERRUNNING,True,pOld,0)
  Command1.Caption = “有效”
  Else '使Ctrl+Alt+Del无效
  ret = SystemParametersInfo(SPI_SCREENSAVERRUNNING,False,pOld,0)
  Command1.Caption = “屏蔽”
  End If
  End Sub
  Private Sub Form_Load
  Command1.Caption =“屏蔽”
  End Sub
  Private Sub Form_Unload(Cancel As Integer)
  Dim ret As Integer
  Dim pOld As Boolean
  '退出前使ALT+CTL+DEL有效
  ret = SystemParametersInfo(SPI_SCREENSAVERRUNNING,False,pOld,0)
  End Sub
  怎么样,收获不小吧?不过千万要注意,以上代码仅供编程参考用,不得用于非法用途!