当前位置:编程学习 > 网站相关 >>

自己动手写安全设置工具


文章作者:风泽

     如果你是一个对安全很重视的网络管理员,如果你管理的计算机网络装的是WINDOWS 2000系统的话,相信对系统的安全设置时做重复的动作会使你感到郁闷,有没有想到让程序来帮你完成这些重复的工作呢?其实对系统进行设置大多数都是在操作注册表,所以用程序很容易就可以实现了,简简单单的一个程序就可以让你轻松许多。今天我就来简单的实现一个安全设置程序。

操作系统:WINDOWS 2000 PRO
实验目的:优化操作系统
大体思路:通过API函数对系统的注册表进行操作,调用SYSTEM()函数执行一些系统命令。

先介绍几个函数:

NO.1
system(char *command)

说明:
发出一个DOS命令


NO.2
LONG RegOpenKeyEx (HKEY hkey,
                   LPCTSTR lpSubKey,
                   DWORD ulOptions,
                   REGSAM samDesired,
                   PHKEY phkResult)

说明
打开一个现有的项。在win32下推荐使用这个函数

hKey        一个已打开项的句柄,或指定一个标准项名
lpSubKey    欲打开注册表项的名字
ulOptions   未用,设为零
samDesired  带有前缀KEY_??的一个或多个常数。它们的组合描述了允许对这个项进行哪些操作
phkResult   用于装载打开项的名字的一个变量


NO.3
LONG RegSetValueEx(HEKY hkey,
                   LPCTSTR lpValueName,
                   DWORD Reserved,
                   DWORD dwType,
                   CONST BYTE *lpData,
                   DWORD cbData)
说明
设置指定项的值

hKey        一个已打开项的句柄,或指定一个标准项名
lpValueName 要设置值的名字
Reserved    未用,设为零
dwType      要设置的数量类型
lpData      包含数据的缓冲区中的第一个字节
cbData      缓冲区的长度


NO.4
RegCloseKey (HKEY hKey)

说明
关闭系统注册表中的一个项(或键)

hKey 要关闭的项

     好了,仔细看了上面的函数相信你有个大概的了解了吧,我们来具体看看如何编写这个程序吧。首先我们要关闭系统的默认共享,利用system函数执行系统命令,当然这个方法比较笨,但实现起来比较简单啊,觉得适合我们编程菜鸟。
void delshare()
     {
       system("@net share c$ /del");
       system("@net share d$ /del");       /* 多数计算机是4个分区,如果你管理的计算机有很多分区的话
       system("@net share e$ /del");         可以自己添加,如果你愿意可以把a-z都写上去:P */            
       system("@net share f$ /del");   
       system("@net share admin$ /del");
     }
   如果你还有什么需要执行的命令就加上去吧,比如关闭服务啊,建立用户什么的。

   什么是注册表呢?
   简单的说注册表是一个庞大的数据库,用来存储计算机软硬件的各种配置数据。
  
   修改注册表就等于修改计算机的配置,所以很多安全设置都是对注册表进行操作,我们来具体看看操作注册表的函数吧。

   bool regset()
     {
       
     HKEY hkresult1;
     HKEY hkresult2;
     DWORD cbdata=4;
     char  lpdA[4];
     char  lpdB[4];
    
     LPCTSTR data1="SYSTEM\CurrentControlSet\Services\NetBT\Parameters";  //设置要打开的位置
     LPCTSTR data2="SYSTEM\CurrentControlSet\Control\Lsa";
    
     RegOpenKeyEx( HKEY_LOCAL_MACHINE,      //打开注册表[HKEY_LOCAL_MACHINE                                                              data1,               SYSTEMCurrentControlSetServicesNetBTParameters]
                        0,
                        KEY_ALL_ACCESS,
                        &hkresult1 );

     RegOpenKeyEx( HKEY_LOCAL_MACHINE,     //打开注册表[HKEY_LOCAL_MACHINE              
                        data2,                SYSTEMCurrentControlSetControlLsa]
                        0,
                        KEY_ALL_ACCESS,
                        &hkresult2 );

          lpdA[0]=1;lpdA[1]=0;lpdA[2]=0;lpdA[3]=0;       //定义修改的值
          lpdB[0]=0;lpdB[1]=0;lpdB[2]=0;lpdB[3]=0;

      RegSetValueEx(    hkresult1,
                        "SMBDeviceEnabled",              //对注册表进行设置,此设置为关闭445端口
                   &nbs

补充:综合编程 , 安全编程 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,