/**********************************************************************\
This program was developed by ROHIT ARORA
modified by Esau Rodriguez (=ex=) (no useful in XP but ok in W98)
\**********************************************************************/
#include <windows.h>
#include <winreg.h>
#include <stdio.h>
#include <ctype.h>
#define MAX_LEN_PWD 28
void main()
{
int k = 1;
int j;
int dec[] = {4,8,14,14,7,6,1,13,6,7,6,9,10,1,1,11,7,10,8,12,4,7,15,8,5,4,9,5};
int pass1[MAX_LEN_PWD];
HKEY hParentKey;
DWORD state = 0;
DWORD type = 0;
DWORD size = MAX_LEN_PWD;
SECURITY_ATTRIBUTES sa = {sizeof(sa), 0, 1};
char pass[MAX_LEN_PWD];
//read the registry
RegCreateKeyEx (HKEY_CURRENT_USER,
"Control Panel\\Desktop",
0,
"",
REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS,
&sa,
&hParentKey,
&state);
if (state==2)
{
LONG ln;
ln = RegQueryValueEx (hParentKey,
"ScreenSave_Data",
0,
&type,
(BYTE *) &pass[0],
&size);
if (ln != ERROR_SUCCESS)
{
printf (" Can't find pwd!\n");
printf (" No se puede encontrar pwd!\n");
return;
}
k = (int) (size - 1);
//decode pwd
for (j = 0; j < k; j++)
{
if (isalpha(pass[j]))
pass1[j]=pass[j]-55;
else
pass1[j]=pass[j]-48;
pass1[j]=pass1[j]^dec[j];
}
printf (" *************---------***********\n");
printf (" *************exe_q_tor***********\n");
printf (" *************---------***********\n\n");
printf(" Your screen saver password is:\n");
printf(" La clave del protector es:\n\n ");
for (j = 0; j < k; j += 2)
printf("%c",__toascii(16*pass1[j]+pass1[j+1]));
printf ("\n\n *************---------***********\n");
printf (" *************exe_q_tor***********\n");
printf (" *************---------***********\n\n");
}
else
{
printf (" Can't read registry!\n");
printf (" No se pudo leer el registro!\n");
}
}
|