Stamerlan Пароли то нигде не хранятся - что расшифровывать будешь? Да и для расшифровки чего либо, знания алгоритма недостаточно - нужен ключ.
Расшифровывать буду sam. И насколька я понимаю данный процесс это делается как-то так: 1. Геним строку(АБРАкАДАБРА) 2. Шифруем ее(как?) 3. Сравниваем
Stamerlan В SAM хранится учетная информация пользователей. Паролей там нет. Они вообще нигде не хранятся. Только в голове юзера или на бумажке, приклеенной к монитору . Даже если расшифровать SAM (это в принципе возможно), пароли придется искать только перебором или по словарю.
В интернете много инфы по этому поводу, например http://home.eunet.no/~pnordahl/ntpasswd/, там есть исходники, можно порыться в них
Есть расшифровщики с исходниками - samdump2. Кроме Sam есть Syskey который как правило находиться в реестре - System, и алгос шифрования довольно мудрён. Лично мне интересна возможность поменять существующий хеш на свой, но это не так-то просто провернуть.
ну если твой софт уже будет в системе, то почему не снять открытый пароль? msgina вроде этим оперирует.
planet +1 msgina.dll - без нее система не будет работать. Она грузится, но диалог входа в систему не появляется (сегодня уже проверил). Логично предположить что dll этим самым входом и занимается. :offtop: Вот только AVZ на нее ругается >>> подозрение на Keylogger / Troyan.
Я хочу написать прогу для расшифровки. Потому я не буду трогать эти длли (хотя спс за идею). У меня есть софт для расшифровки паролей. А вариант с дизасмом я оставляю на последний.
Там хэши много раз декриптуются. Этим в основном advapi32 занимается. MspChangePassword MspChangePasswordSam SamChangePasswordUser ->lsasrv!SamChangePasswordUser2 SamiEncryptPasswords ->advapi32!SystemFunction006 ->advapi32!SystemFunction007 ->advapi32!SystemFunction0014 ->advapi32!SystemFunction0012 SamiChangePasswordUser2 Полюбому брутфорсер писать придётся, чтоб пасс достать. Если не ошибаюсь из базы данных извлекает инфу функция: Код (Text): NTSTATUS LsapDbQueryValueSecret( IN LSAPR_HANDLE SecretHandle, IN PUNICODE_STRING ValueName, IN OPTIONAL PLSAP_CR_CIPHER_KEY SessionKey, OUT PLSAP_CR_CIPHER_VALUE *CipherValue ) /*++ Routine Description: This function queries the specified value of a Secret Object. If the caller is non-trusted, the value returned will have been two-way encrypted with the Session Key. If the caller is trusted, no encryption is done since the caller is calling us directly. Arguments: SecretHandle - Handle to Secret Object. ValueName - Unicode name of the Secret Value to be queried. This name is either "Currval" (for the Current Value) or "OldVal" (for the Old Value. SessionKey - Pointer to Session Key to be used for two-way encryption of the value to be returned. This pointer must be non-NULL except for Trusted Clients, where it must be NULL. CipherValue - Receives 32-bit counted string pointer to Secret Value queried. For non-trusted clients, the value will be encrypted. WARNING - Note that CipherValue is defined to RPC as "allocate(all_nodes)". This means that it is returned in one contiguous block of memory rather than two, as it would appear by the structure definition. Return Values: NTSTATUS - Standard Nt Result Code. STATUS_SUCCESS - The call completed successfully. STATUS_INSUFFICIENT_RESOURCES - Insufficient system resources, such as memory, to complete the call. Лсасс хорошо дебажится, в отличае от csrss в котором рит исполняется. Слишком уж там всё замудрёно сделано. Одна проблема тока что используется ндр-вызовы через порт, там хз откуда и куда данные идут. В принципе в сурцах достаточно инфы для извлечения/записи хэшей вручную.
Stamerlan Опять двадцать пять. Нету там паролей, а значит нечего расшифровывать. Есть только хэши. Их не расшифровать - только перебором.
Stamerlan Я *.zip(или рар не помню уже) хотел расшифровать мелкомягких, тоже кучу тулз скачал, после 4-х часов перебора надоело ждать(а оно быстро перебирало) и я это дело кинул.
dag Бред. Хранится не закриптованый пассворд, а его хэш. Хэширование, в отличие от криптования, операция необратимая.