anonimatul și secretul joacă adesea un rol-cheie în implementarea cu succes a oricăror acțiuni în realitate și virtuală, în anumite sisteme de operare. În acest articol ne vom concentra pe modul de a deveni anonim în sistemul de operare Windows. Toate informațiile sunt furnizate numai în scop de referință.
Deci, vom încerca să se ascundă de ochii utilizatorului în Windows Task Manager. Metoda prin care am atinge este extrem de simplu de cele care se bazează pe interceptarea nucleară (de multe ori documentata), funcții și să dezvolte propriile lor drivere.
Esența metodei: fereastra de căutare Task Manager -> găsi o fereastră de copil (lista) care conține numele tuturor proceselor -> eliminarea din lista a procesului nostru.
Acesta a fost folosit pentru studiu:
Pentru a scrie codul va utiliza mediul Delphi. Mai degrabă, Delphi va fi mai ușor în acest caz decât C ++. Dar aceasta este doar opinia mea umila.
Ei bine, în primul rând, încercați să dau seama ce o listă a proceselor și modul în care funcționează. Cu poluvzora clar că aceasta este o clasă normală «SysListView32» fereastra (lista), care este actualizat cu o frecvență de 2 cadre pe secundă (la fiecare 0,5 secunde). Bucurându-se de o ierarhie de ferestre:
După cum puteți vedea, lista de procese, de fapt, există de obicei o fereastra de clasa „SysListView32“, care este un copil al ferestrei (tab) „procese“, care este, de asemenea, o filială a ferestrei principale a Task Manager. Avem un strat dublu de cuiburi. De asemenea, în listă, există o clasă copil «SysHeader32» fereastră, care nu este greu de ghicit este poziția (marker de câmp) la lista de procese.
Din moment ce ne confruntăm lista de obicei, apoi la dispoziție un set de macro-uri pentru a controla conținutul său. varietatea lor este, la prima vedere, impresioneaza. Dar mulți dintre ei lucrează numai din procesul părinte, adică să le folosească la noi, va fi necesar pentru a simula ca și în cazul în care se execută în procesul părinte. Dar o astfel de proprietate nu posedat de toate, în special, ListView_DeleteItem macro. care elimină elementul din caseta listă ( «SysListView32» clasa).
Ei vom folosi în cererea noastră. Această funcție devine al doilea indicele parametru al elementului pentru a elimina.
Acum trebuie să ne dăm seama cum cumva indicele are un element cu eticheta pentru a ascunde procese in Task Manager. Pentru aceasta, avem nevoie pentru a obține într-un fel din lista de procese in Task Manager toate elementele (etichete cu numele proceselor) și, ulterior, pentru a le compara cu numele procesului pe care vrem să se ascundă.
Utilizarea macro-uri, cum ar ListView_GetItemText acțiunile noastre ar fi de aproximativ după cum urmează:
1) Zona de alocare de memorie în timpul task manager (VirtualAllocEx)
2) Faceti o lista cu fereastra copil, Task Manager mesaje LVM_GETITEMTEXT (SendMessage)
3) Se înregistrează în memoria de selecție Task Manager listă element de informație (WriteProcessMemory)
4) Citirea din controlerul de memorie a informațiilor pe care suntem interesați în procesul (ReadProcessMemory)
Folosind această metodă, puteți cu ușurință „trage singur in picior“, avand in vedere octetul de offset de la începutul codului utilizat într-o varietate de structuri. Astfel, această metodă ar fi destul de greu pentru cei care nu sunt aprofundate în special în WinAPI, așa că am elimina imediat la o parte. În alte aspecte, punerea în aplicare a acestei metode pentru a găsi spații de Internet nu va fi dificil. În schimb, vă sugerez să creați propria listă de procese, și l-au ghidat, căutați procesul râvnit indicele în lista de procese, Task Manager.
Microsoft nu a decis în special aburit despre TOOLS, numit „Task Manager“ și folosit de obicei funcția WinAPI pentru toate procesele din sistem. Surfactanții look taskmng.exe sub un depanator:
Vom vedea folosi funcția WinAPI CreateToolHelp32SnapShot.
Toată lumea știe că „această funcție poate fi utilizată nu numai pentru procesele instantaneu, dar fluxul de proces sau module, de exemplu. Dar, în acest caz, este puțin probabil. Este puțin probabil că va fi ceva de a utiliza în natură sub formă de procese enumeratorul (EnumProcesses).
Ne-am oprit pe faptul că dorim să creați o listă de procese, și căutați procesul nostru de ea. Pentru aceasta folosim această funcție, au găsit în debugger. Dacă deschideți Task Manager pe fila „Procese“, observăm că toate procesele sunt sortate în ordine alfabetică pentru ușurință. Prin urmare, avem nevoie pentru a obține o listă cu numele tuturor proceselor din sistem și să le sortați în ordine crescătoare alfabetică. Începe scrierea de cod în Delphi.
În primul rând, creați o fereastră aplicație demo cu două cronometre: prima va remodela lista de procese la aceeași rată la care face Windows Task Manager (o dată la fiecare două secunde); a doua va concedia 1.000 de ori pe secundă și va fi utilizat pentru urmărirea actualizărilor listei de procese în Managerul și, în consecință, apariția proceselor noastre ascunde. De asemenea, adăugați un buton la formularul.
Aici, de fapt, toate din codul :)
Trebuie să recunosc, de exemplu, în procesul de Task Manager al Task Manager:
Și, făcând clic pe „Ascunde procesul de“ proces dispare din lista:
Toate urmele șterse din sistem, și el liniștit progresează în mod normal, undeva în adâncurile CPU :)
Ei bine, cred că în acest fel merită să existe, deși este nevoie de un mic completari. Da, desigur, nu-l poți folosi pentru a ascunde procesul de sistemul în sine, dar ascunzându-se în instrumentele standard pentru Windows, care se bucură de cea mai mare parte a tuturor utilizatorilor, este prea rău.
Sper că ai cel puțin un pic interesat de acest subiect.
Ne vedem în curând! Și pentru a fi cu tine puterea de anonimat ...