Passwordspy - obținerea parolelor uitate cu ajutorul capcanelor de ferestre



Click aici pentru o imagine mai mare

ID de compilator: VC5, VC6

Cum să utilizați

PasswordSpy este destul de ușor de utilizat. Trebuie doar să rulați un program care conține o parolă uitată, precum și PasswordSpy. Apoi trageți lupa din PasswordSpy în câmpul "****" și PasswordSpy va arăta ce este ascuns în spatele asteriscurilor. PasswordSpy a fost testat pe Win95 / 98 / ME și WinNT / 2K / XP.

oportunități

Detalii cod

Partea cea mai interesantă a PasswordSpy este tehnica de instalare a unui cârlig Windows utilizând API-ul SetWindowsHookEx. Cu această funcție, puteți instala un cârlig pe întregul sistem sau pe un proces separat. Există o duzină de tipuri diferite de capcane și fiecare tip urmărește anumite evenimente. Când se întâmplă unul dintre aceste evenimente, atunci codul capcanelor tale devine controlat. PasswordSpy utilizează cârligul WH_GETMESSAGE, care urmărește apelurile către funcțiile GetMessage și PeekMessage. Dacă doriți să aflați mai multe despre funcția SetWindowsHookEx, vă sfătuiesc să citiți despre aceasta în MSDN.

Majoritatea exemplelor de capcane rezolvă această problemă prin crearea de secțiuni "partajate" în DLL.

Acest cod creează o singură variabilă care va fi disponibilă pentru toate instanțele descărcate ale acestui DLL. Dacă cinci procese vor încărca acest DLL, atunci toate cele cinci vor avea acces la această variabilă. Cu toate acestea, această metodă generează mai multe probleme. În primul rând, este posibil ca unii compilatori să nu accepte această opțiune. În al doilea rând, dacă Microsoft decide să modifice principiul secțiunilor "partajate" în viitoarele versiuni de Windows; aceasta înseamnă că această tehnologie nu va mai funcționa. De asemenea, această metodă nu are sincronizare cu fire și, din moment ce lucrați cu fire multiple, sincronizarea firelor este foarte importantă.

Pentru a rezolva aceste probleme, am folosit pentru fișiere mapate cu memorie IPC și mutexuri (mutex) pentru sincronizarea firului. Am inclus tot acest cod în clasă și l-am numit CIPC. Folosind fișierele afișate în memorie, am rezolvat problema unei opțiuni speciale de compilator, deoarece a eliminat necesitatea și toate acțiunile sunt efectuate de funcțiile obișnuite API Win32. Plus MMF-urile sunt o modalitate obișnuită de a accesa datele din mai multe procese, astfel încât Microsoft agăță ceva care se va schimba în acest domeniu în viitor. De asemenea, mutexurile asigură sincronizarea accesului la flux.

Articole similare