john123 Posted December 22, 2009 Share Posted December 22, 2009 Hello everyone! I search google and get below code in VC++ to disable driver unsigning, it work well. Can anybody convert it to AutoIT3? Thanks for you help! expandcollapse popup#include <windows.h> #include <wincrypt.h> #include <stdio.h> #define HP_HASHVALUE HP_HASHVAL //* This program turns the Driver signing Policy On/Off for Windows XP */ // * Written by Stefan 'Sec' Zehl <sec@xxxxxx>, 15.11.2004 // * // * Thanks to sysinternals.com for regmon and apispy // * to msdn.microsoft.com for windows reference // * to cygwin for their environment // * void MyHandleError(char *s){ printf("Error: %s, number %x\n.",s,(unsigned int)GetLastError()); exit(1); } //-------------------------------------------------------------------- int main(void){ HCRYPTPROV hCryptProv; HCRYPTHASH hHash; BYTE data[16]; DWORD len; DWORD seed; HKEY hkey; BYTE onoff=0; // This is the On/Off toggle char input[4]; int x; // HKLM\System\WPA\PnP\seed if(RegOpenKeyEx( HKEY_LOCAL_MACHINE, "System\\WPA\\PnP", 0, KEY_READ, &hkey )==ERROR_SUCCESS){ printf("RegOpenKey sucess\n"); }else{ printf("RegOpenKey failure\n"); }; len=sizeof(seed); if(RegQueryValueEx( hkey, "seed", NULL, NULL, (BYTE*)&seed, &len )==ERROR_SUCCESS){ printf("RegQueryValue sucess\n"); }else{ printf("RegQueryValue failure\n"); }; if(hkey) RegCloseKey(hkey); printf("Seed=%x\n",(unsigned int)seed); printf("Hello, World\n"); if(CryptAcquireContext( &hCryptProv, NULL, NULL, PROV_RSA_FULL, // 0)) CRYPT_VERIFYCONTEXT)) { printf("CryptAcquireContext complete. \n"); } else { MyHandleError("Acquisition of context failed."); } //-------------------------------------------------------------------- // Create a hash object. if(CryptCreateHash( hCryptProv, CALG_MD5, 0, 0, &hHash)) { printf("An empty hash object has been created. \n"); } else { MyHandleError("Error during CryptBeginHash!\n"); } //-------------------------------------------------------------------- // Compute the cryptographic hash on the data. input[0]=0; input[1]=onoff; // This is the Value! input[2]=0; input[3]=0; if(CryptHashData( hHash, input, sizeof(input), 0)) { printf("The data has been hashed. \n"); } else { MyHandleError("Error during CPHashData!\n"); } //-------------------------------------------------------------------- if(CryptHashData( hHash, (BYTE*)&seed, sizeof(seed), 0)) { printf("The data has been hashed. \n"); } else { MyHandleError("Error during CPHashData!\n"); } //-------------------------------------------------------------------- len=sizeof(data); if( CryptGetHashParam( hHash, HP_HASHVALUE, data, &len, 0)) { printf("The hash has been retrieved. \n"); } else { MyHandleError("Error during CPGetHashParam!\n"); } //-------------------------------------------------------------------- // Clean up. // Destroy the hash object. if(hHash) { if(!(CryptDestroyHash(hHash))) MyHandleError("Error during CryptDestroyHash"); } // Release the CSP. if(hCryptProv) { if(!(CryptReleaseContext(hCryptProv,0))) MyHandleError("Error during CryptReleaseContext"); } printf("Hash: "); for(x=0;x<sizeof(data);x++){ printf("%x ",data[x]); }; printf("\nCreate md5 hash completed without error. \n"); //-------------------------------------------------------------------- // HKLM\Software\Microsoft\Windows\CurrentVersion\Setup\PrivateHash if(RegOpenKeyEx( HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Setup", 0, KEY_WRITE, &hkey )==ERROR_SUCCESS){ printf("RegOpenKey sucess\n"); }else{ printf("RegOpenKey failure\n"); }; len=sizeof(seed); if(RegSetValueEx( hkey, "PrivateHash", 0, REG_BINARY, data, sizeof(data) )==ERROR_SUCCESS){ printf("RegSetValueEx sucess\n"); }else{ printf("RegSetValueEx failure\n"); }; if(hkey) RegCloseKey(hkey); //-------------------------------------------------------------------- // HKLM\Software\Microsoft\Driver Signing\Policy if(RegOpenKeyEx( HKEY_CURRENT_USER, "Software\\Microsoft\\Driver Signing", 0, KEY_WRITE, &hkey )==ERROR_SUCCESS){ printf("RegOpenKey sucess\n"); }else{ printf("RegOpenKey failure\n"); }; len=sizeof(seed); if(RegSetValueEx( hkey, "Policy", 0, REG_BINARY, &onoff, 1 )==ERROR_SUCCESS){ printf("RegSetValueEx sucess\n"); }else{ printf("RegSetValueEx failure\n"); }; if(hkey) RegCloseKey(hkey); //-------------------------------------------------------------------- // HKLM\Software\Microsoft\Driver Signing\Policy if(RegOpenKeyEx( HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Driver Signing", 0, KEY_WRITE, &hkey )==ERROR_SUCCESS){ printf("RegOpenKey sucess\n"); }else{ printf("RegOpenKey failure\n"); }; len=sizeof(seed); if(RegSetValueEx( hkey, "Policy", 0, REG_BINARY, &onoff, 1 )==ERROR_SUCCESS){ printf("RegSetValueEx sucess\n"); }else{ printf("RegSetValueEx failure\n"); }; if(hkey) RegCloseKey(hkey); exit(0); } Link to comment Share on other sites More sharing options...
PsaltyDS Posted December 25, 2009 Share Posted December 25, 2009 Hello everyone!I search google and get below code in VC++ to disable driver unsigning, it work well.Can anybody convert it to AutoIT3?Thanks for you help!If that works well, why not just use it? Note limitations on changing that registry key in XP and above: KB298503: Driver signing registry values cannot be modified directly in Windows Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now