Hacking and more...
HaCkinG CulT
|
Lista Forumurilor Pe Tematici
|
Hacking and more... | Reguli | Inregistrare | Login
POZE HACKING AND MORE...
Nu sunteti logat.
|
Nou pe simpatie: iris22
| Femeie 22 ani Bucuresti cauta Barbat 32 - 63 ani |
|
BlooDeR
Master of 127.0.0.1
Inregistrat: acum 17 ani
Postari: 145
|
|
Windows, Passwords... Eseul dat a fost scris pentru a mai demonstra o data ca MS Windows este inca prea departe de perfectiune. Se presupune ca cititorul deja dispune de cunostinte de baza in programare in Windows 95.
Cel mai des programele Windows pentru perceperea parolei de la utilizator folosesc componentul standart Edit. Acest component vizual are o proprietate ce ne intereseaza: PasswordChar. Daca ea este 0, atunci se afiseaza continutul actual, altfel, in locul caracterului introdus va apare caracterul corespunzator valorii PasswordChar. Citind informatia din MSDN aflam despre doua mesaje EM_GETPASSWORDCHAR si EM_SETPASSWORDCHAR folosite pentru citirea/setarea acestei proprietati.
Algoritmul:
Enumeram toate componentele vizuale a ferestrei active (EnumChildWindows cu parametrul hWndParent = GetForegroundWindow).
Comparam numele de clasa a componentului cu "Edit". (Se poate si fara aceasta comparatie. In Windows toate mesajele inregistrate sint unice. Transmitind aceste mesaje nu riscam cu nimic. Daca destinatarul nu le intelege - nu va raspunde la ele, adica nu va modifica raspunsul. Si inca, unele programe pot sa foloseasca componente modificate sau derivate de la Edit, cu alt nume de clasa, la baza carora sta tot acelasi Edit cu functionalitatea data pastrata). Coincide? Transmitem mesajul: SendMessage cu uMsg = EM_GETPASSWORDCHAR.
Daca primim raspunsul diferit de 0 (este folosit pentru introducerea/afisarea parolelor) transmitem mesajul EM_SETPASSWORDCHAR cu parametrul wParam = 0.
Pentru ca sa vedem imediat rezultatul e bine inainte de a trimite mesajul EM_GETPASSWORDCHAR sa executam EnableWindow hWnd, False si dupa aceea - EnableWindow hWnd, True.
Implementarea:
EnumChildWindows GetForegroundWindow, AddressOf EnumChildProc, 0
Codul urmator trebuie sa fie inserat in modul:
Public Function EnumChildProc(ByVal hWnd As Long, ByVal lParam As Long) As Long If SendMessage(hWnd, EM_GETPASSWORDCHAR, 0, vbNullString) <> 0 Then EnableWindow hWnd, False SendMessage hWnd, EM_SETPASSWORDCHAR, 0, vbNullString EnableWindow hWnd, True End If
EnumChildProc = True End Function
P. S. Nu am avut oportunitatea sa testez aceasta in mediul Windows NT, Windows 2000. Metoda expusa mai sus este la sigur valabila pentru Windows 95/98.
Vezi programul-exemplu la sfirsitul documentului.
Este de ajuns sa scriem un program care fiind invocat, sa astepte apasarea unei combinatii de taste si dupa aceea sa execute procedura descrisa.
Dezvoltind ideea mai departe putem sa scriem un program care in continuu ar monitoriza ferestrele active, gasind scrisa o parola o citeste si o scrie intr-un fisier.
Metoda recomandata pentru a citi continutul unui control Edit este GetWindowText. Observam ca lucreaza perfect, dar nu insa si cu Edit-urile din alta aplicatie. Cautind mai departe gasim o alta metoda: mesajele WM_GETTEXTLENGTH si WM_GETTEXT. La inceput transmitem WM_GETTEXTLENGTH pentru a afla lungimea continutului. Setam un buffer cu lungimea suficienta si transmitem mesajul WM_GETTEXT. Ca rezultat in buffer avem continutul dorit. Acesta si il scriem in fisierul log.
Recomandari:
Fisierului executabil sa-i dati un nume de tip kernel.exe iar fisierului log o extensie de tip .sys, .dll sau .vxd. Textul inainte de a fi scris in fisier e bine cel putin sa-l xor-uiti macar o data. Fool-proof, dupa cum se spune. Fiti de acord, totusi e mai bine decit sa creati un fisier text pe desktop in care sa insrieti datele originale .
Programul de monitorizare trebuie sa starteze odata cu Windows. Crearea unui link in Autostart nu este o metoda buna. Este extrem de usor de a fi descoperita. Sfatul meu este sa folositi cheia registrului HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun. Exemplu: valoarea "kernel" egala cu "c:windowskernel.exe". Cu acelasi succes puteti folosi cheia RunServices. Chiar daca fisierul specificat in registru nu exista, nu va fi nici un mesaj suspicios pentru utilizator.
Programul de monitorizare nu trebuie sa fie vazut in boxa de dialog "Close program" (CTRL+ALT+DEL). Daca va este interesanta rezolvarea acestei probleme, scrieti, poate va aparea o continuare a acestui eseu...
Link-uri:
MSDN Online Library - msdn.microsoft.com/library
Iata si realizarea teoriei expuse mai sus. Programul este scris in Visual Basic 5 (veti avea nevoie de MSVBVM50.DLL pentru a-l rula) - WinPsw 1.3.0 Special Build, Reduced Functionality (6,3 KB, Arhiva RAR).
|
|
pus acum 17 ani |
|
Dynamyc
Elite Member
Din: de peste tot
Inregistrat: acum 18 ani
Postari: 836
|
|
Windows 95? wtf?
_______________________________________
|
|
pus acum 17 ani |
|
BlooDeR
Master of 127.0.0.1
Inregistrat: acum 17 ani
Postari: 145
|
|
poi numai stiu cine mia zis ca vrea pt Windows 95 si deaia am pus cu 95 .Oricum nu cred ca cineva mai foloseste Windows 95
|
|
pus acum 17 ani |
|
rimagheo
Elite Member
Inregistrat: acum 18 ani
Postari: 950
|
|
|
pus acum 17 ani |
|