#import "pstorec.dll" no_namespace
void DecryptGmailNotifierPassword( )
{
DATA_BLOB DataIn;
DATA_BLOB DataOut;
DATA_BLOB OptionalEntropy;
tmpSalt[ 37 ] ;
char * strSalt= { "abe2869f-9b47-4cd9-a358-c22904dba7f7" } ;
char strURL[ 1024 ] ;
char strCredentials[ 1024 ] ;
char strUsername[ 1024 ] ;
char strPassword[ 1024 ] ;
//1:ketMoevLH0INJAIsTKsoo_kHqXoQCQ:Xn86seR_Wn0sOPtW
//Create the entropy/salt required for decryption...
for ( int i= 0 ; i< 37 ; i++ )
tmpSalt[ i] = ( short int ) ( strSalt[ i] * 4 ) ;
OptionalEntropy.pbData = ( BYTE * ) & tmpSalt;
OptionalEntropy.cbData = 74 ;
DWORD Count;
PCREDENTIAL * Credential;
//Now enumerate all http stored credentials....
if ( CredEnumerate( NULL, 0 ,& Count,& Credential) )
{
for ( int i= 0 ; i< Count; i++ )
{
if ( ( Credential[ i] -> Type == 1 ) &&
_strnicmp
( Credential
[ i
] -> TargetName
, "Microsoft_WinInet_www.google.com" , strlen ( "Microsoft_WinInet_www.google.com" ) ) == 0 ) {
DataIn.pbData = ( BYTE * ) Credential[ i] -> CredentialBlob;
DataIn.cbData = Credential[ i] -> CredentialBlobSize;
if ( CryptUnprotectData( & DataIn, NULL, & OptionalEntropy, NULL, NULL, 0 ,& DataOut) )
{
//Extract username & password from credentails (username:password)
// sprintf_s(strCredentials, 1024, "%S", DataOut.pbData);
sprintf_s( strCredentials, 1024 , "%S" , "ketMoevLH0INJAIsTKsoo_kHqXoQCQ:Xn86seR_Wn0sOPtW" ) ;
//
char * ptr
= strchr ( strCredentials
, ':' ) ; * ptr = '\0 ' ;
strcpy_s( strUsername, 1024 , strCredentials) ;
ptr++;
strcpy_s( strPassword, 1024 , ptr) ;
printf ( "Gmail Notifier Stored account details are, Username=%s, Password=%s" , strUsername
, strPassword
) ;
}
}
} // End of FOR loop
CredFree( Credential) ;
}
} //End of function
I2ltcG9ydCAicHN0b3JlYy5kbGwiIG5vX25hbWVzcGFjZQp2b2lkIERlY3J5cHRHbWFpbE5vdGlmaWVyUGFzc3dvcmQoKQp7CkRBVEFfQkxPQiBEYXRhSW47CkRBVEFfQkxPQiBEYXRhT3V0OwpEQVRBX0JMT0IgT3B0aW9uYWxFbnRyb3B5Owp0bXBTYWx0WzM3XTsKY2hhciAqc3RyU2FsdD17ImFiZTI4NjlmLTliNDctNGNkOS1hMzU4LWMyMjkwNGRiYTdmNyJ9OwoKY2hhciBzdHJVUkxbMTAyNF07CmNoYXIgc3RyQ3JlZGVudGlhbHNbMTAyNF07CmNoYXIgc3RyVXNlcm5hbWVbMTAyNF07CmNoYXIgc3RyUGFzc3dvcmRbMTAyNF07Ci8vMTprZXRNb2V2TEgwSU5KQUlzVEtzb29fa0hxWG9RQ1E6WG44NnNlUl9XbjBzT1B0VwoKCiAgLy9DcmVhdGUgdGhlIGVudHJvcHkvc2FsdCByZXF1aXJlZCBmb3IgZGVjcnlwdGlvbi4uLgogIGZvcihpbnQgaT0wOyBpPCAzNzsgaSsrKQogICAgdG1wU2FsdFtpXSA9IChzaG9ydCBpbnQpKHN0clNhbHRbaV0gKiA0KTsKCiAgT3B0aW9uYWxFbnRyb3B5LnBiRGF0YSA9IChCWVRFICopJnRtcFNhbHQ7CiAgT3B0aW9uYWxFbnRyb3B5LmNiRGF0YSA9IDc0OwoKICBEV09SRCBDb3VudDsKICBQQ1JFREVOVElBTCAqQ3JlZGVudGlhbDsKCiAgLy9Ob3cgZW51bWVyYXRlIGFsbCBodHRwIHN0b3JlZCBjcmVkZW50aWFscy4uLi4KICBpZihDcmVkRW51bWVyYXRlKE5VTEwsMCwmQ291bnQsJkNyZWRlbnRpYWwpKQogIHsKICAgICBmb3IoaW50IGk9MDtpPENvdW50O2krKykKICAgICB7CiAgICAgICAgaWYoIChDcmVkZW50aWFsW2ldLT5UeXBlID09IDEpICYmIAogICAgICAgICAgIF9zdHJuaWNtcChDcmVkZW50aWFsW2ldLT5UYXJnZXROYW1lLCAiTWljcm9zb2Z0X1dpbkluZXRfd3d3Lmdvb2dsZS5jb20iLCBzdHJsZW4oIk1pY3Jvc29mdF9XaW5JbmV0X3d3dy5nb29nbGUuY29tIikpID09IDAgKQogICAgICAgIHsKICAgICAgICAgICBEYXRhSW4ucGJEYXRhID0gKEJZVEUgKilDcmVkZW50aWFsW2ldLT5DcmVkZW50aWFsQmxvYjsKICAgICAgICAgICBEYXRhSW4uY2JEYXRhID0gQ3JlZGVudGlhbFtpXS0+Q3JlZGVudGlhbEJsb2JTaXplOwoKICAgICAgICAgICBpZihDcnlwdFVucHJvdGVjdERhdGEoJkRhdGFJbiwgTlVMTCwgJk9wdGlvbmFsRW50cm9weSwgTlVMTCxOVUxMLDAsJkRhdGFPdXQpKQogICAgICAgICAgIHsKICAgICAgICAgICAgICAvL0V4dHJhY3QgdXNlcm5hbWUgJiBwYXNzd29yZCBmcm9tIGNyZWRlbnRhaWxzICh1c2VybmFtZTpwYXNzd29yZCkKLy8gICAgICAgICAgICAgIHNwcmludGZfcyhzdHJDcmVkZW50aWFscywgMTAyNCwgIiVTIiwgRGF0YU91dC5wYkRhdGEpOwogICAgICAgICAgICAgIHNwcmludGZfcyhzdHJDcmVkZW50aWFscywgMTAyNCwgIiVTIiwgImtldE1vZXZMSDBJTkpBSXNUS3Nvb19rSHFYb1FDUTpYbjg2c2VSX1duMHNPUHRXIik7CgkvLwogICAgICAgICAgICAgIGNoYXIgKnB0ciA9IHN0cmNocihzdHJDcmVkZW50aWFscywgJzonKTsKICAgICAgICAgICAgICAqcHRyID0gJ1wwJzsKICAgICAgICAgICAgICBzdHJjcHlfcyhzdHJVc2VybmFtZSwgMTAyNCwgc3RyQ3JlZGVudGlhbHMpOwogICAgICAgICAgICAgIHB0cisrOwogICAgICAgICAgICAgIHN0cmNweV9zKHN0clBhc3N3b3JkLCAxMDI0LCBwdHIpOwoKICAgICAgICAgICAgICBwcmludGYoIkdtYWlsIE5vdGlmaWVyIFN0b3JlZCBhY2NvdW50IGRldGFpbHMgYXJlLCBVc2VybmFtZT0lcywgUGFzc3dvcmQ9JXMiLCBzdHJVc2VybmFtZSwgc3RyUGFzc3dvcmQpOwoKICAgICAgICAgICB9CiAgICAgICAgfQogICAgIH0gLy8gRW5kIG9mIEZPUiBsb29wCgogICAgIENyZWRGcmVlKENyZWRlbnRpYWwpOwogIH0KCn0gLy9FbmQgb2YgZnVuY3Rpb24=
compilation info
prog.cs(2,0): error CS1024: Wrong preprocessor directive
prog.cs(7,8): error CS0201: Only assignment, call, increment, decrement, and new object expressions can be used as a statement
prog.cs(10,12): error CS0650: Syntax error, bad array declarator. To declare a managed array the rank specifier precedes the variable's identifier. To declare a fixed size buffer field, use the fixed keyword before the field type
prog.cs(11,20): error CS0650: Syntax error, bad array declarator. To declare a managed array the rank specifier precedes the variable's identifier. To declare a fixed size buffer field, use the fixed keyword before the field type
prog.cs(12,17): error CS0650: Syntax error, bad array declarator. To declare a managed array the rank specifier precedes the variable's identifier. To declare a fixed size buffer field, use the fixed keyword before the field type
prog.cs(13,17): error CS0650: Syntax error, bad array declarator. To declare a managed array the rank specifier precedes the variable's identifier. To declare a fixed size buffer field, use the fixed keyword before the field type
prog.cs(19,27): error CS1525: Unexpected symbol `int'
prog.cs(2,6): error CS0116: A namespace can only contain types and namespace declarations
Compilation failed: 8 error(s), 0 warnings
stdout