《黑客的秘密武器》之补丁

Author: Date: 2001年 49期

?牐牽戳恕兜缒员ā?42期上《黑客的秘密武器》一文,受益匪浅。但是作为一名VB的编程狂热爱好者,显然不会满足于如此直白的“秘密武器”:开机自启动仅仅是在注册表里的自启动项目下加入自己的程序,稍有经验的“老鸟”运行msconfig程序,所有的自启动项目就在眼前。而如果屏蔽了“Ctrl+Alt+Del”三键,用户在使用这三个键时,计算机的没有任何反应立即会使人明白发生了什么。所以《黑》文所谈的秘密武器其实并不秘密,下面,笔者就给这些武器打一些稍好一点的补丁。
  ?牐犗忍柑浮癈trl+Alt+Del”问题,目前较为流行的做法不是屏蔽掉这三个键,而是使用户在按下这三个键时,不能看到你的程序。它的实现也是靠调用API。具体如下:
  ?牐牐г谕ㄓ蒙髦屑尤肴缦麓耄?
  ?牐燩rivate Declare Function GetCurrentProcessId Lib “kernel32” () As Long
  ?牐燩rivate Declare Function GetCurrentProcess Lib “kernel32” () As Long
  ?牐燩rivate Declare Function RegisterServiceProcess Lib “kernel32”(ByVal dwProcessID As Long _ ByVal dwType As Long) As Long
  ?牐牐г贔orm的Load事件中加入的代码
  ?牐燩rivate Sub Form_Load()
  ?牐燚im MyReturn
  ?牐燤yReturn= RegisterServiceProcess(lngI, 1)
  ?牐燛nd Sub
  ?牐犗衷谠诵心愕某绦颍缓蟀聪隆癈trl+Alt+Del”,能看到你的程序在运行吗?
  ?牐犘枰得鞯氖牵庵址椒ú⒉皇屎嫌赪in NT和Win 2000,也会在某些系统进程查看程序的法眼下原形毕露。
  ?牐犇壳傲餍惺褂谩拔募亓ā保降奈募亓荳indows里的一个概念,比如文本文件(.txt)默认用记事本打开,就是建立了txt文件与记事本notepad.exe程序的关联,用户在双击txt文件时,系统就会自动调用notepad.exe程序。说到这里,很多人也许明白:建立txt文件或别的文件与自己程序的关联代替系统默认关联不就行了吗?哈,就是这样的,下面以为.cui文件建立关联为例给出具体的实现过程:
  ?牐犘陆ㄒ桓龉こ獭2⒃诖疤逯刑砑右桓霭磁ァ4肴缦拢?
  ?牐牐?通用声明中的代码:
  ?牐燩rivate Declare Function RegCreateKey Lib “advapi32.dll” Alias “RegCreateKeyA”,ByVal hKey As Long(ByVal lpSubKey As String, phkResult As Long) As Long
  ?牐燩rivate 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  'API声明
  ?牐燙onst HKEY_CLASSES_ROOT = &H80000000
  ?牐燙onst REG_SZ = 1
  ?牐牐О磁?Click事件中的代码:
  ?牐燩rivate Sub Command1_Click()
  ?牐燚im sKeyName As String '存储键名
  ?牐燚im sKeyValue As String '存储键值
  ?牐燚im MyReturn As Long '存储返回值信息
  ?牐燚im keyhandle As Long
  ?牐爏KeyName = “Test”
  ?牐爏KeyValue = “Test Application”
  ?牐燤yReturn& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, keyhandle&)
  ?牐燤yReturn& = RegSetValue&(keyhandle&, “”, REG_SZ,sKeyValue,0&)??
  ?牐燤sgBox MyReturn&
  ?牐爏KeyName = “.cui” '要建立关联的文件后缀名
  ?牐爏KeyValue = “Test”
  ?牐燤yReturn& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, keyhandle&)
  ?牐燤yReturn& = RegSetValue&(keyhandle&, “”, REG_SZ, sKeyValue, 0&)??
  ?牐爏KeyName = “Test”
  ?牐爏KeyValue = “D:\VB程序-大三\BBS浏览器\notepad.exe %1” '自己程序的位置和名称 注意后面的“%1”不要漏掉
  ?牐燤yReturn& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, keyhandle&)
  ?牐燤yReturn& = RegSetValue&(keyhandle&, “shell\open\command”, REG_SZ, sKeyValue, MAX_PATH)
  ?牐燛nd Sub
  ?牐犜诵幸陨洗耄突峤?立后缀名为cui的文件与“D:\VB程序-大三\BBS浏览器\notepad.exe”程序的关联,以后,用户在运行cui文件时,就会自动启动自己的程序了。