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:
Cezi la Simpatie.ro
Femeie
23 ani
Vaslui
cauta Barbat
27 - 80 ani
Hacking and more... / n00bs / view windows password Moderat de Shocker
Autor
Mesaj Pagini: 1
BlooDeR
Master of 127.0.0.1

Inregistrat: acum 16 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 16 ani
   
Dynamyc
Elite Member

Din: de peste tot
Inregistrat: acum 17 ani
Postari: 836
Windows 95? wtf?

_______________________________________




pus acum 16 ani
   
BlooDeR
Master of 127.0.0.1

Inregistrat: acum 16 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 16 ani
   
rimagheo
Elite Member

Inregistrat: acum 17 ani
Postari: 950
Eu inca mai folosesc aproape toata gama de windows: win3.1, win95, win98, win2k, winXp, inclusiv M S-DOS.

Modificat de rimagheo (acum 16 ani)


_______________________________________
Cum sa pui intrebari pe forum - multi au nevoie de acest ghid

pus acum 16 ani
   
Pagini: 1  

Mergi la