Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Новый участник


Сообщения: 49
Благодарности: 0

Профиль | Отправить PM | Цитировать


На счет пароля проги - там еще проще - хранит в якобы зашифрованном виде в ветке реестра
Key: Software\Microsoft\Windows\CurrentVersion\Lock
Name Value: Lock_pass

Для расшифровки не пришлось даже лезть в код проги, вот алгоритм:
//size - длина пароля; pass - сам "зашифрованный" пароль
for (DWORD j=0; j<size; j++) pass[j] = pass[j] - (char)j - (char)0x5A;

В общем-то все...

В дополнение весь мой исходник

int main(int argc, char* argv[])
{
HKEY key = NULL;
DWORD type;
DWORD size = 0;
char* pass = 0;
__try
{
if (RegOpenKeyEx(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Lock",0,KEY _READ,&key) != ERROR_SUCCESS)
{
MessageBox(GetDesktopWindow(),"Ошибка открытия ветки реестра!","Ошибка",MB_OK | MB_ICONSTOP);
__leave;
}

if (RegQueryValueEx(key,"Lock_pass",NULL,&type,NULL,&size) != ERROR_SUCCESS)
{
MessageBox(GetDesktopWindow(),"Ошибка чтения данных из реестра!","Ошибка",MB_OK | MB_ICONSTOP);
__leave;
}

pass = new char[size];
RegQueryValueEx(key,"Lock_pass",NULL,&type,(unsigned char*)pass,&size);
size--;
for (DWORD j=0; j<size; j++) pass[j] = pass[j] - (char)j - (char)0x5A;
MessageBox(GetDesktopWindow(),pass,"Вот и пароль",MB_OK);
}
__finally
{
if (key) RegCloseKey(key);
if (pass) delete pass;
}
return 0;
}



[s]Исправлено: unknown bug, 15:09 28-10-2003[/s]

Отправлено: 14:08, 28-10-2003 | #20