00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include <windows.h>
00025 #include <stdio.h>
00026 #include <conio.h>
00027 #include <tchar.h>
00028 #include "ntsecapi.h"
00029 #include "dcomperm.h"
00030
00031 DWORD
00032 ListDefaultAccessACL()
00033 {
00034 return ListNamedValueSD (HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Ole"), TEXT("DefaultAccessPermission"));
00035 }
00036
00037 DWORD
00038 ListDefaultLaunchACL()
00039 {
00040 return ListNamedValueSD (HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Ole"), TEXT("DefaultLaunchPermission"));
00041 }
00042
00043 DWORD
00044 ListAppIDAccessACL (
00045 LPTSTR AppID
00046 )
00047 {
00048 TCHAR keyName [256];
00049
00050 if (AppID [0] == '{')
00051 wsprintf (keyName, TEXT("APPID\\%s"), AppID); else
00052 wsprintf (keyName, TEXT("APPID\\{%s}"), AppID);
00053
00054 return ListNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("AccessPermission"));
00055 }
00056
00057 DWORD
00058 ListAppIDLaunchACL (
00059 LPTSTR AppID
00060 )
00061 {
00062 TCHAR keyName [256];
00063
00064 if (AppID [0] == '{')
00065 wsprintf (keyName, TEXT("APPID\\%s"), AppID); else
00066 wsprintf (keyName, TEXT("APPID\\{%s}"), AppID);
00067
00068 return ListNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("LaunchPermission"));
00069 }
00070
00071 DWORD
00072 ZapAppIDLaunchACL (LPTSTR AppID)
00073 {
00074 TCHAR keyName [256];
00075
00076 if (AppID [0] == '{')
00077 wsprintf (keyName, TEXT("APPID\\%s"), AppID); else
00078 wsprintf (keyName, TEXT("APPID\\{%s}"), AppID);
00079
00080 return ZapNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("LaunchPermission"));
00081 }
00082
00083 DWORD
00084 ChangeDefaultAccessACL (
00085 LPTSTR Principal,
00086 BOOL SetPrincipal,
00087 BOOL Permit
00088 )
00089 {
00090 if (SetPrincipal)
00091 {
00092 RemovePrincipalFromNamedValueSD (HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Ole"), TEXT("DefaultAccessPermission"), Principal);
00093 return AddPrincipalToNamedValueSD (HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Ole"), TEXT("DefaultAccessPermission"), Principal, Permit);
00094 } else
00095 return RemovePrincipalFromNamedValueSD (HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Ole"), TEXT("DefaultAccessPermission"), Principal);
00096 }
00097
00098 DWORD
00099 ChangeDefaultLaunchACL (
00100 LPTSTR Principal,
00101 BOOL SetPrincipal,
00102 BOOL Permit
00103 )
00104 {
00105 if (SetPrincipal)
00106 {
00107 RemovePrincipalFromNamedValueSD (HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Ole"), TEXT("DefaultLaunchPermission"), Principal);
00108 return AddPrincipalToNamedValueSD (HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Ole"), TEXT("DefaultLaunchPermission"), Principal, Permit);
00109 } else
00110 return RemovePrincipalFromNamedValueSD (HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Ole"), TEXT("DefaultLaunchPermission"), Principal);
00111 }
00112
00113 DWORD
00114 ChangeAppIDAccessACL (
00115 LPTSTR AppID,
00116 LPTSTR Principal,
00117 BOOL SetPrincipal,
00118 BOOL Permit
00119 )
00120 {
00121 TCHAR keyName [256];
00122
00123 if (AppID [0] == '{')
00124 wsprintf (keyName, TEXT("APPID\\%s"), AppID); else
00125 wsprintf (keyName, TEXT("APPID\\{%s}"), AppID);
00126
00127 if (SetPrincipal)
00128 {
00129 RemovePrincipalFromNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("AccessPermission"), Principal);
00130 return AddPrincipalToNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("AccessPermission"), Principal, Permit);
00131 } else
00132 return RemovePrincipalFromNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("AccessPermission"), Principal);
00133 }
00134
00135 DWORD
00136 ChangeAppIDLaunchACL (
00137 LPTSTR AppID,
00138 LPTSTR Principal,
00139 BOOL SetPrincipal,
00140 BOOL Permit
00141 )
00142 {
00143 TCHAR keyName [256];
00144
00145 if (AppID [0] == '{')
00146 wsprintf (keyName, TEXT("APPID\\%s"), AppID); else
00147 wsprintf (keyName, TEXT("APPID\\{%s}"), AppID);
00148
00149 if (SetPrincipal)
00150 {
00151 RemovePrincipalFromNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("LaunchPermission"), Principal);
00152 return AddPrincipalToNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("LaunchPermission"), Principal, Permit);
00153 } else
00154 return RemovePrincipalFromNamedValueSD (HKEY_CLASSES_ROOT, keyName, TEXT("LaunchPermission"), Principal);
00155 }
00156