一个注册表权限设置程序例子 .

转载:给注册表加权限的程序,用着效果还挺不错的,至少现在好多病毒在RING3下修改注册表都还没有考虑权限问题。

源地址: http://xue23.blog.163.com/blog/static/97934420068383532200/

http://download.csdn.net/source/1565196

  1. // RegSafe.cpp : Defines the entry point for the console application.  
  2. //   
  3. #include "stdafx.h"   
  4. #include "conio.h"   
  5. #include "RegSafe.h"   
  6. #include <stdio.h>   
  7. #include <Windows.h>   
  8. #include <Aclapi.h>   
  9. #ifdef _DEBUG   
  10. #define new DEBUG_NEW   
  11. #undef THIS_FILE   
  12. static char THIS_FILE[] = __FILE__;  
  13. #endif   
  14. /  
  15. // The one and only application object  
  16. CWinApp theApp;  
  17. using namespace std;  
  18. int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])  
  19. {  
  20.     //程序起点   
  21.     printf("/t================================================/n");  
  22.     printf("/t=                                              =/n");  
  23.     printf("/t=     设置注册表权限禁止病毒修改随机启动项     =/n");  
  24.     printf("/t=                                              =/n");  
  25.     printf("/t================================================/n");  
  26.     printf("/t                                                /n");  
  27. start:  
  28.     printf("/t1   需要防止病毒修改注册表/n");  
  29.     printf("/t2   需要解除防止病毒修改注册表/n");  
  30.     printf("/t3   需要查看修改配置文件/n");  
  31.     printf("/t4   退出本程序/n");  
  32.     printf("/t                                                /n");  
  33.     printf("请输入:");  
  34.     int nflag;  
  35.     scanf("%d",&nflag);  
  36.     system("cls");  
  37.     if(nflag==1)  
  38.     {  
  39.         ZhiDu();  
  40.     }  
  41.     else if(nflag==2)  
  42.     {  
  43.         WanQuan();  
  44.     }  
  45.     else if(nflag==3)   
  46.     {  
  47.         Reg();  
  48.     }  
  49.     else if(nflag==4)   
  50.     {  
  51.         return 0;  
  52.     }  
  53.     else   
  54.     {  
  55.         AfxMessageBox("错误的参数,按任意键程序退出!/n");  
  56.         return -1;  
  57.     }  
  58.     getchar();  
  59.     return 0;  
  60. }  
  61. void ZhiDu()  
  62. {  
  63.     int nCount=GetPrivateProfileInt("nCount","nCount",-1,".//regedit.ini");  
  64.     if(nCount==-1)  
  65.     {  
  66.         AfxMessageBox("读取配置文件失败!/n请检查配置文件是否存在和按指定格式编写!!!");  
  67.         return ;  
  68.     }  
  69.     for(int i=0;i<nCount;i++)  
  70.     {  
  71.         char cCPath[255],cPath[300];  
  72.         CString strTmp;  
  73.         strTmp.Format("%d",i);  
  74.         GetPrivateProfileString(strTmp,"Value","",cPath,299,".//regedit.ini");  
  75.         if(cPath=="")  
  76.         {  
  77.             AfxMessageBox("读取配置文件失败!/n请检查配置文件是否存在和按指定格式编写!!!");  
  78.             return ;  
  79.         }  
  80.         if(strstr(cPath,(LPSTR)"HKEY_LOCAL_MACHINE"))  
  81.         {  
  82.               
  83.             char cMain[25]="HKEY_LOCAL_MACHINE";  
  84.             for(int j=19,k=0;cPath[j]!='/0';j++)  
  85.                 cCPath[k++]=cPath[j];  
  86.             cCPath[k]='/0';  
  87.             CString strTemp1,strTemp2;  
  88.             CString str1,str2,str3;  
  89.             strTemp1.Format("%s",cCPath);  
  90.             strTemp2="MACHINE//"+strTemp1;  
  91.             str1=strTemp1;  
  92.             str2=strTemp2;  
  93.             str3.Format("%s",cPath);  
  94.             SetZhiDu_M(str1,str2,str3);  
  95.         }  
  96.         else if(strstr(cPath,(LPSTR)"HKEY_CURRENT_USER"))  
  97.         {  
  98.               
  99.             char cMain[25]="HKEY_CURRENT_USER";  
  100.             for(int j=18,k=0;cPath[j]!='/0';j++)  
  101.                 cCPath[k++]=cPath[j];  
  102.             cCPath[k]='/0';  
  103.             CString strTemp1,strTemp2;  
  104.             CString str1,str2,str3;  
  105.             strTemp1.Format("%s",cCPath);  
  106.             strTemp2="CURRENT_USER//"+strTemp1;  
  107.             str1=strTemp1;  
  108.             str2=strTemp2;  
  109.             str3.Format("%s",cPath);  
  110.             SetZhiDu_U(str1,str2,str3);  
  111.         }  
  112.     }  
  113.     getchar();  
  114. }  
  115. void WanQuan()  
  116. {  
  117.     int nCount=GetPrivateProfileInt("nCount","nCount",-1,".//regedit.ini");  
  118.     if(nCount==-1)  
  119.     {  
  120.         AfxMessageBox("读取配置文件失败!/n请检查配置文件是否存在和按指定格式编写!!!");  
  121.         return ;  
  122.     }  
  123.     for(int i=0;i<nCount;i++)  
  124.     {  
  125.         char cCPath[255],cPath[300];  
  126.         CString strTmp;  
  127.         strTmp.Format("%d",i);  
  128.         GetPrivateProfileString(strTmp,"Value","",cPath,299,".//regedit.ini");  
  129.         if(cPath=="")  
  130.         {  
  131.             AfxMessageBox("读取配置文件失败!/n请检查配置文件是否存在和按指定格式编写!!!");  
  132.             return ;  
  133.         }  
  134.         if(strstr(cPath,(LPSTR)"HKEY_LOCAL_MACHINE"))  
  135.         {  
  136.               
  137.             char cMain[25]="HKEY_LOCAL_MACHINE";  
  138.             for(int j=19,k=0;cPath[j]!='/0';j++)  
  139.                 cCPath[k++]=cPath[j];  
  140.             cCPath[k]='/0';  
  141.             CString strTemp1,strTemp2;  
  142.             CString str1,str2,str3;  
  143.             strTemp1.Format("%s",cCPath);  
  144.             strTemp2="MACHINE//"+strTemp1;  
  145.             str1=strTemp1;  
  146.             str2=strTemp2;  
  147.             str3.Format("%s",cPath);  
  148.             SetWanQuan_M(str1,str2,str3);  
  149.         }  
  150.         else if(strstr(cPath,(LPSTR)"HKEY_CURRENT_USER"))  
  151.         {  
  152.               
  153.             char cMain[25]="HKEY_CURRENT_USER";  
  154.             for(int j=18,k=0;cPath[j]!='/0';j++)  
  155.                 cCPath[k++]=cPath[j];  
  156.             cCPath[k]='/0';  
  157.             CString strTemp1,strTemp2;  
  158.             CString str1,str2,str3;  
  159.             strTemp1.Format("%s",cCPath);  
  160.             strTemp2="CURRENT_USER//"+strTemp1;  
  161.             str1=strTemp1;  
  162.             str2=strTemp2;  
  163.             str3.Format("%s",cPath);  
  164.             SetWanQuan_U(str1,str2,str3);  
  165.         }  
  166.     }  
  167.     getchar();  
  168. }  
  169. void SetZhiDu_M(CString str1,CString str2,CString str3)  
  170. {  
  171.     DWORD dwRet;  
  172.     LPSTR SamName=(LPSTR)(LPCSTR)str2;  
  173.     //strcpy(SamName,str2);   
  174.     PSECURITY_DESCRIPTOR pSD=NULL;  
  175.     PACL pNewDacl=NULL;  
  176.     EXPLICIT_ACCESS ea;  
  177.     HKEY hKey=NULL;  
  178.     BOOL bflag=FALSE;  
  179.       
  180.     dwRet=RegOpenKeyEx(HKEY_LOCAL_MACHINE,str1,  
  181.         0,KEY_READ,&hKey);  
  182.     if(dwRet!=ERROR_SUCCESS)  
  183.     {      
  184.         dwRet=RegCreateKey(HKEY_LOCAL_MACHINE,str1,&hKey);  
  185.         if(dwRet!=ERROR_SUCCESS)  
  186.         {  
  187.             goto FreeAndExit;  
  188.         }  
  189.     }  
  190.       
  191.      创建一个ACE,允许Everyone完全控制对象,并允许子对象继承此权限   
  192.     ZeroMemory(&ea,sizeof(EXPLICIT_ACCESS));  
  193.     BuildExplicitAccessWithName(&ea,"everyone",KEY_ALL_ACCESS,SET_ACCESS,  
  194.         SUB_CONTAINERS_AND_OBJECTS_INHERIT);  
  195.       
  196.      将新的ACE加入DACL    
  197.     dwRet=SetEntriesInAcl(0,&ea,NULL,&pNewDacl);  
  198.     if(dwRet!=ERROR_SUCCESS)  
  199.     {      
  200.           
  201.         goto FreeAndExit;  
  202.     }  
  203.       
  204.      更新SAM主键的DACL    
  205.     dwRet=SetNamedSecurityInfo(SamName,SE_REGISTRY_KEY,DACL_SECURITY_INFORMATION,  
  206.         NULL,NULL,pNewDacl,NULL);  
  207.     if(dwRet!=ERROR_SUCCESS)  
  208.     {      
  209.           
  210.         goto FreeAndExit;  
  211.     }  
  212.       
  213.      创建一个ACE,允许Everyone完全控制对象,并允许子对象继承此权限   
  214.     ZeroMemory(&ea,sizeof(EXPLICIT_ACCESS));  
  215.     BuildExplicitAccessWithName(&ea,"everyone",KEY_READ,SET_ACCESS,  
  216.         SUB_CONTAINERS_AND_OBJECTS_INHERIT);  
  217.       
  218.      将新的ACE加入DACL    
  219.     dwRet=SetEntriesInAcl(1,&ea,NULL,&pNewDacl);  
  220.     if(dwRet!=ERROR_SUCCESS)  
  221.     {      
  222.           
  223.         goto FreeAndExit;  
  224.     }  
  225.       
  226.      更新SAM主键的DACL    
  227.     dwRet=SetNamedSecurityInfo(SamName,SE_REGISTRY_KEY,DACL_SECURITY_INFORMATION,  
  228.         NULL,NULL,pNewDacl,NULL);  
  229.     if(dwRet!=ERROR_SUCCESS)  
  230.     {      
  231.           
  232.         goto FreeAndExit;  
  233.     }  
  234.     else  
  235.     {  
  236.         bflag=TRUE;  
  237.     }  
  238.       
  239.      打开SAM的子键    
  240.     dwRet=RegOpenKeyEx(HKEY_LOCAL_MACHINE,str2,  
  241.         0,KEY_READ,&hKey);  
  242.     if(dwRet!=ERROR_SUCCESS)  
  243.     {      
  244.         goto FreeAndExit;  
  245.     }  
  246.       
  247. FreeAndExit:  
  248.     if(hKey) RegCloseKey(hKey);  
  249.     if(pNewDacl) LocalFree(pNewDacl);  
  250.     if(pSD) LocalFree(pSD);  
  251.     if(bflag==TRUE)  
  252.         printf("/tOK........%s/n",str3);  
  253.     else  
  254.         printf("/tERROR.....%s/n",str3);  
  255. }  
  256. void SetWanQuan_M(CString str1,CString str2,CString str3)  
  257. {  
  258.     DWORD dwRet;  
  259.     LPSTR SamName=(LPSTR)(LPCSTR)str2;  
  260.     //strcpy(SamName,str2);   
  261.     PSECURITY_DESCRIPTOR pSD=NULL;  
  262.     PACL pNewDacl=NULL;  
  263.     EXPLICIT_ACCESS ea;  
  264.     HKEY hKey=NULL;  
  265.     BOOL bflag=FALSE;  
  266.       
  267.     dwRet=RegOpenKeyEx(HKEY_LOCAL_MACHINE,str1,  
  268.         0,KEY_READ,&hKey);  
  269.     if(dwRet!=ERROR_SUCCESS)  
  270.     {      
  271.         dwRet=RegCreateKey(HKEY_LOCAL_MACHINE,str1,&hKey);  
  272.         if(dwRet!=ERROR_SUCCESS)  
  273.         {  
  274.             goto FreeAndExit;  
  275.         }  
  276.     }  
  277.       
  278.       
  279.      创建一个ACE,允许Everyone完全控制对象,并允许子对象继承此权限   
  280.     ZeroMemory(&ea,sizeof(EXPLICIT_ACCESS));  
  281.     BuildExplicitAccessWithName(&ea,"everyone",KEY_ALL_ACCESS,SET_ACCESS,  
  282.         SUB_CONTAINERS_AND_OBJECTS_INHERIT);  
  283.       
  284.      将新的ACE加入DACL    
  285.     dwRet=SetEntriesInAcl(1,&ea,NULL,&pNewDacl);  
  286.     if(dwRet!=ERROR_SUCCESS)  
  287.     {      
  288.           
  289.         goto FreeAndExit;  
  290.     }  
  291.       
  292.      更新SAM主键的DACL    
  293.     dwRet=SetNamedSecurityInfo(SamName,SE_REGISTRY_KEY,DACL_SECURITY_INFORMATION,  
  294.         NULL,NULL,pNewDacl,NULL);  
  295.     if(dwRet!=ERROR_SUCCESS)  
  296.     {      
  297.           
  298.         goto FreeAndExit;  
  299.     }  
  300.     else  
  301.     {  
  302.         bflag=TRUE;  
  303.     }  
  304.       
  305.      打开SAM的子键    
  306.     dwRet=RegOpenKeyEx(HKEY_LOCAL_MACHINE,str2,  
  307.         0,KEY_READ,&hKey);  
  308.     if(dwRet!=ERROR_SUCCESS)  
  309.     {      
  310.         goto FreeAndExit;  
  311.     }  
  312.       
  313. FreeAndExit:  
  314.     if(hKey) RegCloseKey(hKey);  
  315.     if(pNewDacl) LocalFree(pNewDacl);  
  316.     if(pSD) LocalFree(pSD);  
  317.     if(bflag==TRUE)  
  318.         printf("/tOK........%s/n",str3);  
  319.     else  
  320.         printf("/tERROR.....%s/n",str3);  
  321. }  
  322. void SetZhiDu_U(CString str1,CString str2,CString str3)  
  323. {  
  324.     DWORD dwRet;  
  325.     LPSTR SamName=(LPSTR)(LPCSTR)str2;  
  326.     //strcpy(SamName,str2);   
  327.     PSECURITY_DESCRIPTOR pSD=NULL;  
  328.     PACL pNewDacl=NULL;  
  329.     EXPLICIT_ACCESS ea;  
  330.     HKEY hKey=NULL;  
  331.     BOOL bflag=FALSE;  
  332.       
  333.     dwRet=RegOpenKeyEx(HKEY_CURRENT_USER,str1,  
  334.         0,KEY_READ,&hKey);  
  335.     if(dwRet!=ERROR_SUCCESS)  
  336.     {      
  337.         dwRet=RegCreateKey(HKEY_CURRENT_USER,str1,&hKey);  
  338.         if(dwRet!=ERROR_SUCCESS)  
  339.         {  
  340.             goto FreeAndExit;  
  341.         }  
  342.     }  
  343.       
  344.      创建一个ACE,允许Everyone完全控制对象,并允许子对象继承此权限   
  345.     ZeroMemory(&ea,sizeof(EXPLICIT_ACCESS));  
  346.     BuildExplicitAccessWithName(&ea,"everyone",KEY_ALL_ACCESS,SET_ACCESS,  
  347.         SUB_CONTAINERS_AND_OBJECTS_INHERIT);  
  348.       
  349.      将新的ACE加入DACL    
  350.     dwRet=SetEntriesInAcl(0,&ea,NULL,&pNewDacl);  
  351.     if(dwRet!=ERROR_SUCCESS)  
  352.     {      
  353.           
  354.         goto FreeAndExit;  
  355.     }  
  356.       
  357.      更新SAM主键的DACL    
  358.     dwRet=SetNamedSecurityInfo(SamName,SE_REGISTRY_KEY,DACL_SECURITY_INFORMATION,  
  359.         NULL,NULL,pNewDacl,NULL);  
  360.     if(dwRet!=ERROR_SUCCESS)  
  361.     {      
  362.           
  363.         goto FreeAndExit;  
  364.     }  
  365.       
  366.      创建一个ACE,允许Everyone完全控制对象,并允许子对象继承此权限   
  367.     ZeroMemory(&ea,sizeof(EXPLICIT_ACCESS));  
  368.     BuildExplicitAccessWithName(&ea,"everyone",KEY_READ,SET_ACCESS,  
  369.         SUB_CONTAINERS_AND_OBJECTS_INHERIT);  
  370.       
  371.      将新的ACE加入DACL    
  372.     dwRet=SetEntriesInAcl(1,&ea,NULL,&pNewDacl);  
  373.     if(dwRet!=ERROR_SUCCESS)  
  374.     {      
  375.           
  376.         goto FreeAndExit;  
  377.     }  
  378.       
  379.      更新SAM主键的DACL    
  380.     dwRet=SetNamedSecurityInfo(SamName,SE_REGISTRY_KEY,DACL_SECURITY_INFORMATION,  
  381.         NULL,NULL,pNewDacl,NULL);  
  382.     if(dwRet!=ERROR_SUCCESS)  
  383.     {      
  384.           
  385.         goto FreeAndExit;  
  386.     }  
  387.     else  
  388.     {  
  389.         bflag=TRUE;  
  390.     }  
  391.       
  392.      打开SAM的子键    
  393.     dwRet=RegOpenKeyEx(HKEY_CURRENT_USER,str2,  
  394.         0,KEY_READ,&hKey);  
  395.     if(dwRet!=ERROR_SUCCESS)  
  396.     {      
  397.         goto FreeAndExit;  
  398.     }  
  399.       
  400. FreeAndExit:  
  401.     if(hKey) RegCloseKey(hKey);  
  402.     if(pNewDacl) LocalFree(pNewDacl);  
  403.     if(pSD) LocalFree(pSD);  
  404.     if(bflag==TRUE)  
  405.         printf("/tOK........%s/n",str3);  
  406.     else  
  407.         printf("/tERROR.....%s/n",str3);  
  408. }  
  409. void SetWanQuan_U(CString str1,CString str2,CString str3)  
  410. {  
  411.     DWORD dwRet;  
  412.     LPSTR SamName=(LPSTR)(LPCSTR)str2;  
  413.     //strcpy(SamName,str2);   
  414.     PSECURITY_DESCRIPTOR pSD=NULL;  
  415.     PACL pNewDacl=NULL;  
  416.     EXPLICIT_ACCESS ea;  
  417.     HKEY hKey=NULL;  
  418.     BOOL bflag=FALSE;  
  419.       
  420.     dwRet=RegOpenKeyEx(HKEY_CURRENT_USER,str1,  
  421.         0,KEY_READ,&hKey);  
  422.     if(dwRet!=ERROR_SUCCESS)  
  423.     {      
  424.         dwRet=RegCreateKey(HKEY_CURRENT_USER,str1,&hKey);  
  425.         if(dwRet!=ERROR_SUCCESS)  
  426.         {  
  427.             goto FreeAndExit;  
  428.         }  
  429.     }  
  430.       
  431.       
  432.      创建一个ACE,允许Everyone完全控制对象,并允许子对象继承此权限   
  433.     ZeroMemory(&ea,sizeof(EXPLICIT_ACCESS));  
  434.     BuildExplicitAccessWithName(&ea,"everyone",KEY_ALL_ACCESS,SET_ACCESS,  
  435.         SUB_CONTAINERS_AND_OBJECTS_INHERIT);  
  436.       
  437.      将新的ACE加入DACL    
  438.     dwRet=SetEntriesInAcl(1,&ea,NULL,&pNewDacl);  
  439.     if(dwRet!=ERROR_SUCCESS)  
  440.     {      
  441.           
  442.         goto FreeAndExit;  
  443.     }  
  444.       
  445.      更新SAM主键的DACL    
  446.     dwRet=SetNamedSecurityInfo(SamName,SE_REGISTRY_KEY,DACL_SECURITY_INFORMATION,  
  447.         NULL,NULL,pNewDacl,NULL);  
  448.     if(dwRet!=ERROR_SUCCESS)  
  449.     {      
  450.           
  451.         goto FreeAndExit;  
  452.     }  
  453.     else  
  454.     {  
  455.         bflag=TRUE;  
  456.     }  
  457.       
  458.      打开SAM的子键    
  459.     dwRet=RegOpenKeyEx(HKEY_CURRENT_USER,str2,  
  460.         0,KEY_READ,&hKey);  
  461.     if(dwRet!=ERROR_SUCCESS)  
  462.     {      
  463.         goto FreeAndExit;  
  464.     }  
  465.       
  466. FreeAndExit:  
  467.     if(hKey) RegCloseKey(hKey);  
  468.     if(pNewDacl) LocalFree(pNewDacl);  
  469.     if(pSD) LocalFree(pSD);  
  470.     if(bflag==TRUE)  
  471.         printf("/tOK........%s/n",str3);  
  472.     else  
  473.         printf("/tERROR.....%s/n",str3);      
  474. }  
  475. void Reg()  
  476. {  
  477.     printf("/n/t1   列出配置文件/n");  
  478.     printf("/t2   添加配置单元/n");  
  479.     printf("/t3   删除配置单元/n");  
  480.     printf("/t4   退出编辑/n");  
  481.     printf("请输入:");  
  482.     int n=0;  
  483.     scanf("%d",&n);  
  484.     if(n==1)  
  485.     {  
  486.         ListAll();  
  487.         Reg();  
  488.     }  
  489.     else if(n==2)  
  490.     {  
  491.         Add();  
  492.         Reg();  
  493.     }  
  494.     else if(n==3)  
  495.     {  
  496.         int nCount,nIndex=-1;  
  497.         nCount=GetPrivateProfileInt("nCount","nCount",-1,".//regedit.ini");  
  498.         printf("/n请输入你要删除的选项:");  
  499.         scanf("%d",&nIndex);  
  500.         if(nIndex<nCount&&nIndex>-1)  
  501.             Del(nIndex);  
  502.         else  
  503.         {  
  504.             printf("输入错误/n");  
  505.         }  
  506.         Reg();  
  507.     }  
  508.     else if(n==4)  
  509.     {  
  510.         return ;  
  511.     }  
  512.     else  
  513.     {  
  514.         AfxMessageBox("错误的参数,按任意键返回!/n");  
  515.         return ;  
  516.     }  
  517. }  
  518. void ListAll()  
  519. {  
  520.     int nCount=0;  
  521.     nCount=GetPrivateProfileInt("nCount","nCount",0,".//regedit.ini");  
  522.     printf("/n");  
  523.     for(int i=0;i<nCount;i++)  
  524.     {  
  525.         CString strTemp;  
  526.         char strValue[256];  
  527.         strTemp.Format("%d",i);  
  528.         GetPrivateProfileString(strTemp,"Value","",strValue,255,".//regedit.ini");  
  529.         printf("%d/t%s/n",i,strValue);  
  530.     }  
  531. }  
  532. void Add()  
  533. {  
  534.     CString strTemp1,strTemp2,strValue;  
  535.     int nCount=0;  
  536.     printf("请输入你要添加的注册表全路径:");  
  537.     scanf("%s",strValue);  
  538.     nCount=GetPrivateProfileInt("nCount","nCount",0,".//regedit.ini");  
  539.     strTemp1.Format("%d",nCount);  
  540.     strTemp2.Format("%d",nCount+1);  
  541.     WritePrivateProfileString("nCount","nCount",strTemp2,".//regedit.ini");  
  542.     WritePrivateProfileString(strTemp1,"Value",(LPCSTR)strValue,".//regedit.ini");  
  543.     ListAll();  
  544. }  
  545. void Del(int nIndex)  
  546. {  
  547.     int nCount=0;  
  548.     nCount=GetPrivateProfileInt("nCount","nCount",0,".//regedit.ini");  
  549.     if(0==nCount)  
  550.         return;  
  551.     CString strTemp;  
  552.     strTemp.Format("%d",nCount-1);  
  553.     WritePrivateProfileString("nCount","nCount",strTemp,".//regedit.ini");  
  554.     for(int i=nIndex;i<nCount;i++)  
  555.     {  
  556.         CString strTemp1,strTemp2;  
  557.         char strValue[256];  
  558.         strTemp1.Format("%d",i);  
  559.         strTemp2.Format("%d",i+1);  
  560.         GetPrivateProfileString(strTemp2,"Value","",strValue,255,".//regedit.ini");  
  561.         WritePrivateProfileString(strTemp1,"Value",strValue,".//regedit.ini");  
  562.     }  
  563.     ListAll();  
  564. }  

配置文件regedit.ini格式

  1. [nCount]  
  2. nCount=9  
  3. [0]  
  4. Value=HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Run  
  5. [1]  
  6. Value=HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run  
  7. [2]  
  8. Value=HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/policies/Explorer/Run  
  9. [3]  
  10. Value=HKEY_CURRENT_USER/SOFTWARE/Microsoft/Windows/CurrentVersion/policies/Explorer/Run  
  11. [4]  
  12. Value=HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/RunOnce  
  13. [5]  
  14. Value=HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/RunOnce  
  15. [6]  
  16. Value=HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/RunServices  
  17. [7]  
  18. Value=HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/ShellExecuteHooks  
  19. [8]  
  20. Value=HKEY_LOCAL_MACHINE/Software/Microsoft/Windows NT/CurrentVersion/Windows  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值