Introducerea dll troian

wspnntfA (strchr (szBuf, 0), "\ n% 08X-% s", mbi.AllocationBase, szModName);

O altă metodă de introducere este într-un înlocuitor DLL de proces încărcat la un alt DLL. De exemplu, știind că procesul necesar Xyz.dll, puteți construi DLL-ul, și atribuiți același nume. Desigur, înainte de faptul că trebuie să redenumiți original Xyz.dll.

Dacă doriți să utilizați această metodă numai pentru o singură aplicație, aveți posibilitatea să atribuiți un nume unic pentru DLL-ul, și scrie-l în secțiunea de import a modulului de aplicare executabil. Faptul că secțiunea de import conține numele tuturor modulului relevante DLL, EXE. Puteți „sape“ în această secțiune și să o schimbați, astfel că încărcătorul de sistem de operare pentru a încărca DLL-ul. Această tehnică nu este rău, dar necesită o cunoaștere aprofundată a format EXE- și fișier DLL.

Implementarea DLL ca depanator

Această metodă necesită manipularea procesului de depanare a fluxului CONTEXT structura, ceea ce înseamnă că codul va depinde ottipa procesor, și va trebui să fie modificate atunci când se deplasează la o altă platformă procesor În plus, veți avea aproape sigur de a regla manual codul mașinii pentru a fi executat procesul de depanat. Nu uita despre legătura rigidă dintre debugger și programul fiind depanate imediat ce debugger este închis, Windows se închide imediat și programul fiind depanate. Acest lucru nu poate fi evitat.

Punerea în aplicare a codului în Windows 98, prin imaginea proiectată în memoria

Această metodă este, de asemenea, destul de dificil, deoarece veți avea nevoie pentru a face procesul de potokdrugogo pentru a executa cod în vizualizarea de fișiere. Acest lucru va necesita kakieto mijloace de control al debitului de la distanță. Nu ar fi funcția CreateRemoteThread utilă, dar Windows 98 nu acceptă. Din păcate, soluția gata făcute la această problemă, în care nu msnya.

Punerea în aplicare a codului prin funcția CreateProcess

În cazul în care procesul de generează un copil, în care este necesar să se introducă un fel de cod, sarcina este mult simplificată. Procesul părinte poate crea un nou proces și l suspende imediat. Acest lucru se va schimba starea procesului copil înainte de punerea sa în aplicare. În același timp, părintele primește fluxul principal de proces descriptor copil. După cum îl cunosc, puteți modifica codul care urmează să fie executat de acest flux. Astfel, decideți problema menționată în secțiunea anterioară: în acest caz, nu este dificil să se stabilească comenzile de registru pointer care aparțin să curgă la codul în vizualizarea de fișiere.

Aici este o modalitate de a controla care este executat codul fluxul principal al procesului de copil:

articole similare