肉鸡保护器是国内某知名黑客站点出品的一个黑软,它能快捷的设置肉鸡上的一些参数来达到保护肉鸡的作用(如图1),例如修改远程终端端口,防止SYN攻击,修改连接最大终端数等等,使用起来非常方便,只需要简单单击几一下鼠标就能完成一些平时需要在注册表中大动手脚的操作。大家一定想知道知道它是如何制作出来的。这款工具看起来制作复杂,其实原来非常简单,是利用编程实现注册表相关键值的修改来达到相应的效果。
笔者这里以VB为工具进行分析工具的制作原理和流程,同时详细讲解关于在VB中如何修改注册表的相关函数和语法,使读者在学习之后不仅完全理解肉鸡保护器的制作原理和流程,而且能根据自己的需要增加一些别的功能,不足的地方,还请大家指出。
一.VB操作注册表原理
在编写肉鸡保护器那样利用VB操作注册表的工具之前,我们先来看看VB操作注册表原理的语法以及闲逛函数。
对于VB操作注册表无非通过以下两个流程完成:操作注册表路径—操作注册表路径中相对应的值,下面来分步骤讲解。
1. 操作注册表路径
操作注册表路径无非两个:读和写,逐个来看。
大家都知道,注册表中的各个路径是以级连的方式来表示的,例如:HKEY_LOCAL_MACHINE \System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\PortNumber,在VB中各个路径的术语有所不同,用文件夹表示的各个路径都统称为key(如图2),subkey是注册表路径下的路径的称呼,例如:如上面,System就是HKEY_LOCAL_MACHINE的subkey,而CurrentControlSet是System的subkey。hkey(key handle)是key的另外一种表达(一个长整数值,Windows之所以要以hKey来代表键是为了让注册表的存取更有效率,因为整数的操作效能要优于字符串)也称为key handle。
这里需要注意的是,位于注册表最上层的Key,例如HKEY_LOCAL_MACHINE,这些Key的hKey(Key Handle)是固定不变的,其值如下表对应所示。
Key hKey(Key Handle)
HKEY_CLASSES_ROOT &H80000000
HKEY_CURRENT_USER &H80000001
HKEY_LOCAL_MACHINE &H80000002
HKEY_USERS &H80000003
HKEY_CURRENT_CONFIG &H80000005
HKEY_DYN_DATA &H80000006
如果要取得上面几个位于注册表最上层的key的下面的subkey,就需要利用API函数RegOpenKey来实现,它的声明语句如下:
Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA"(ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
(责任编辑:欣欣裴)