"Алекс Грачев. К вопросу о бесплатном Интернете (КомпьюТерра)" - читать интересную книгу автора

Все это, в конце концов, положило конец первой стадии, и
началась вторая: теперь пароль выдает компьютер, то есть гене-
рирует некоторую псевдослучайную последовательность букв, цифр
и разных знаков препинания. Хорошо-то как стало: 'tHa73?Lp' -
поди-ка подбери! о тут возникла другая проблема: а поди-ка
запомни! Пользователи наши начали их на бумажках записывать,
ну и периодически... правильно: бумажки терялись, похищались,
попадали в мусорную корзину и т. д.- от чего ушли, к тому и
пришли! И тогда какаято умная голова догадалась, что пароль
можно хранить не в голове, а прямо на жестком диске. В
DialUp-окне галочку поставить и запомнить пароль. У компьютера
мозги кремниевые - ему все равно, что запоминать. у, а раз
запомнили, то, само собой, и записать надо. у, а раз запи-
сать, то... правильно: отвернулся наш пользователь, а тут ха-
керы толпой налетели - и ну пароль подсматривать.
И тогда запомненные пароли стали шифровать...
у вот, наше лирико-историческое вступление закончилось.
Теперь пошла проза.
Где хранятся пароли в Windows 95? Зашифрованные пароли в
Windows 95, как известно, хранятся в основном каталоге, в фай-
лах с расширением PWL. С учетом того, что не только 'у нас
здесь', но и 'у них там' бывают персональные компьютеры кол-
лективного пользования, да и сети локальные местами встречают-
ся, на каждого пользователя заводится свой PWL. Кстати, назва-
ние файла соответствует логину (имени... нет, скорее, кличке)
данного пользователя.
Зашифрованы эти файлы, в принципе, достаточно прилично.
Если кому-либо интересно, то, взяв в руки какой нибудь дизас-
семблер (HIEW, QVIEW), можно посмотреть процедуру шифрования.
Она находится в файле MSPWL32.DLL. В версии OSR2pus со смеще-
нием 488(hex).
Вот уж где накручено. Имеется счетчик (назовем его N) от
нуля до <сколько надо>. Имеются три таблицы. В соответствии со
счетчиком N берется байт из первой таблицы (X). По смещению
X+N, урезанному до 8 бит, из второй таблицы берется другой
байт (Y). Затем по адресу X+Y, опять же урезанному до 8 бит,
из третьей таблицы берется третий байт (Z). После столь хитрых
манипуляций командой XOR с байтом Z шифруется байт информации,
после чего счетчик инкрементируется, и все повторяется снача-
ла.
Как формируются таблицы? - е знаю (лень было выяснять).
Кстати, таблиц, на самом деле, может оказаться и две, и одна
(используются несколько раз на разных этапах). Расшифровывает-
ся все это аналогично (и той же процедурой), 'ибо команда XOR
обратима. Если же у вас стоит какая-то другая версия Windows
95, то это дела не меняет. е знаю уж, в чьих нездоровых моз-
гах могла появиться мысль использовать для шифрования команду
хог byte ptr [eax+ebp],cl. Может, запутать хотели? о команда
уникальна, такие команды в обычных программах еще поискать на-
до. Стало быть, ищем соответствующую ей комбинацию 30h, OCh,