Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

INJECTER DLL DANS UN PROCESSUS EN COURS


Information sur la source

Catégorie :Sécurité Classé sous : injection, dll, processus Niveau : Initié Date de création : 10/07/2006 Vu / téléchargé: 9 464 / 1 554

Note :
8,2 / 10 - par 5 personnes
8,20 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (68)
Ajouter un commentaire et/ou une note

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-DLL-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 !
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de cirec le 10/07/2006 11:22:13 administrateur CS

Salut,
c'est très intéressant tout ça mais ça me semble également dangereux cette facilité d'injection.

D'ou ma question n'y a t'il pas moyen de contrôler, détecter, empêcher, l'injection "sauvage" ?
Surtout dans la méthode que tu expliques plus haut ... ça fait froid dans le dos ! brrr

Très instructif.
@+
Cirec

signaler à un administrateur
Commentaire de elguevel le 10/07/2006 11:31:12

Il parait que certains logiciels et certains anti-virus sont déja équipés de systèmes de surveillances contre le HiJacking (en general).

A mon avis il faudrai surveiller l'utilisation de certaines API fréquemment utilisé par les malwares (surveillance des api native également).

Mais bon certains malware utilise les hooks, ou sont lancés sous forme d'application standard (kelogger, etc...), enfin il en existe tellement de variantes, qu'il faudrai un système de sécurité par type d'appli :-)

signaler à un administrateur
Commentaire de Matt 261 le 10/07/2006 11:44:32

Hello,

"il faudrai un système de sécurité par type d'appli" Tu veux pas nous en faire un? Ca pourrait être très utile ;-)

@+
  Matt

signaler à un administrateur
Commentaire de elguevel le 10/07/2006 11:47:31

Lol, je travail déja sur un système d'anti-ARP Spoofing ... et j'en chie grave  
!

Bon je prend çà comme un défi ... mais mes connaissances étant tout de même limités ... on verra :-)

signaler à un administrateur
Commentaire de cirec le 10/07/2006 11:49:14 administrateur CS

Un sacré boulot (mais tu as beaucoup de chance les vacances approche) lol
plus sérieusement dommage
on nous montre toujours comment on peut se faire "pirater"
mais pas comment s'en proteger :-(

@+
Cirec

signaler à un administrateur
Commentaire de Matt 261 le 10/07/2006 11:54:53

Pour ceux qui ne sont pas déja en vacances Cirec :) Ce n'était pas particulièrement un défi Elguevel mais c'est vrai que ca m'interesserait un logiciel de sécurité puisque comme le dit Cirec, "on nous montre toujours comment on peut se faire "pirater" mais pas comment s'en proteger".

signaler à un administrateur
Commentaire de elguevel le 10/07/2006 11:56:06

Ba j'aimerai bien vous montrer l'inverse mais c'est beaucoup plus dur à faire et c'est assez hazardeux ...

Imagine que tu fasse une protection contre cette attaque, il faudra que tu espionne tout ce qui est relatif aux API utilisées par cette methode (système comportemental). Le problème c'est que bcp de programme utilise les mêmes systèmes (LoadLibrary, socket, ecriture/lecture, Hook, etc..) pour faire des choses conformes et légals. Donc il faudrai à chaque tache suspecte afficher un message à l'utilisateur, et celui-ci en recevrait toute les 30 s (événements du à l'anti-virus, au système, etc..).

Après faudrai pousser le developpement plus loin et faire un système ou l'on detecte les malwares "type" (système par signature), mais là çà veut dire qu'il faut sans cesse en chercher de nouveaux et faire des mises à jour (grosse équipe de Dev oblige).

signaler à un administrateur
Commentaire de Matt 261 le 10/07/2006 12:03:50

Oui, c'est sur que c'est un boulot énorme qui ne se fait pas seul .

signaler à un administrateur
Commentaire de cirec le 10/07/2006 12:13:41 administrateur CS

Trop de travail pour un seul homme :-)

N'empêche que le fossé est immense entre la facilité de mise en oeuvre et la difficulté de la parade.

Aïe Aïe Aïe ... on est pas sauvé :o)

signaler à un administrateur
Commentaire de shining le 10/07/2006 14:45:23

pour faire un anti-virus dans le genre Spybot Kill and Search il faut de la volonter mais aussi une équipe c'est sûr !!!, on dispose déja d'une base de données gigantesque grâce à internet :)

http://www3.ca.com/securityadvisor/pest/browse.aspx?cat=Dialer

http://www3.ca.com/securityadvisor/pest/browse.aspx?cat=Hijacker

http://www.simovits.com/trojans/trojans.html

http://www.f-secure.com/sw-desc/b.shtml

pour les BHO/ToolBar/CLSID c'est plus facile tu vas dans ce site
http://www.castlecops.com/CLSID.html ensuite il est possible de choisir la liste complète(près de 10Mo) là suffit de mettre au point un parser html et de transformer la liste en base de données

Alors qui c'est le plus courageux pour mettre au point un soft OpenSource avec le noyau en place ?

pour info cette technique d'injection sert aussi au laboratoire anti-virus pour justement faire le tracage d'un virus, c'est à dire ce que fait l'executable, quel api fait-il appel, qu'est-ce qu'il va modifié(Base de registre, fichier système ?) ect.., bref ça ne sert pas qu'à faire un virus ;)

signaler à un administrateur
Commentaire de Matt 261 le 10/07/2006 14:50:49

Et voila le petit message rouge :( Et merci shinnig pour tout ces liens.

signaler à un administrateur
Commentaire de elguevel le 10/07/2006 14:51:06

Ah ba enfin ... j'lai eut mon petit avertissement rouge ... et de deux :-D

signaler à un administrateur
Commentaire de Forman le 11/07/2006 10:35:00

Je crois qu'il existe des antivirus qui modifient l'API CreateRemoteThread (entre autres, et celles qui permettent de loader un module pour faire des hooks) pour demander confirmation à l'utilisateur qu'il autorise leur utilisation. Mais c'est sûr que ma grand-mère, elle risque de ne pas trop aimer si son antivirus lui demande:
"Le processus de PID 0x0F3A8532 chargé à l'adresse 0x85467D tente de lancer l'API CreateRemoteThread, l'autoriser? Yes, No, Cancel"

Bien joué pour l'avertissement rouge Elguevel        ;-)
Il faudrait que le designer du site mette une balise <MARQUEE></MARQUEE> autour pour le faire clignoter       :D

signaler à un administrateur
Commentaire de elguevel le 11/07/2006 10:37:02

Ba c'est ma seconde source avec cette MessageBox :-D ... j'vais essayé de collectionner ;-)

signaler à un administrateur
Commentaire de cirec le 11/07/2006 10:55:59 administrateur CS

T'as pris un abonnement au Messages ? lol

Mais pour moi la source n'est ni louche ni dangereuse (en elle même) c'est l'utilisation qui pourrait en être fait qui peut être dangereuse.

Il faudrait peut être revoir le sens du message, d'ailleurs à ce propos je te conseil de mettre un avertissement dans tes sources au sujet de l'utilisation

Par contre ce que je ne comprend pas c'est pourquoi la source d'Elguevel et pas celle de Forman ?

Le danger est le même des deux côté non ?

signaler à un administrateur
Commentaire de Matt 261 le 11/07/2006 11:10:20

Je me pose la même question Cirec.

signaler à un administrateur
Commentaire de elguevel le 11/07/2006 11:15:48

Ba ouai mais l'admin qui met le message à mon avis il se base surtout sur le descriptif (çà se trouve c'est un developpeur web), et moi j'ai parler de technique utilisé par les MalWare alors forcement ... Blame !

Par contre je comprend pas qu'on met mis ce message pour ma source d'Anonymaileur... je vois pas ce qui à de dangeureux (par contre illégal oui)

signaler à un administrateur
Commentaire de Matt 261 le 11/07/2006 11:19:48

Pour ce qui est de dangereux, bein moi non plus je vois pas. Pour l'illégal, des sites proposent ce service de mails anonymes et ils sont encore en ligne. De toutes facons s'il mettent le petit mot charmant, c'est pour ne pas avoir d'ennuis par la suite...

signaler à un administrateur
Commentaire de elguevel le 11/07/2006 11:24:23

oui c'est certain mais cette MessageBox c'est chiant non ?

signaler à un administrateur
Commentaire de elguevel le 11/07/2006 11:25:09

Sinon pour ce programme ... des commentaires sur le code ? Une note ?

signaler à un administrateur
Commentaire de Matt 261 le 11/07/2006 11:25:35

Oui, c'est super chiant de devoir cilquer à chaque F5 pour voir les commentaires... Mais il faudra faire avec :(

signaler à un administrateur
Commentaire de Matt 261 le 11/07/2006 11:26:44

Oui c'est vrai Elguevel, jusque là, on a seulement parlé du message rouge et de créer des protections contre les virus...

signaler à un administrateur
Commentaire de elguevel le 11/07/2006 11:32:19

Moi j'ai déja trouvé des améliorations sur mon propre code, je reposterai quand çà sera nickel.. et vous ?

Y'en a qui en chie pour le faire fonctionner ?

signaler à un administrateur
Commentaire de cirec le 11/07/2006 11:44:23 administrateur CS

Oui je confirme c'est chiant …
Mais bon comme le dit Matt il faudra bien faire avec

Et pour le code ... comme toujours c'est bien codé c'est propre et commenté. Sinon le code en soit me dépasse un peut par sa facilité de mise en oeuvre.

En ce qui concerne le fonctionnement je n'ai pas encore pris le temps de compiler et d'exécuter la source mais cela ne saurait tarder

Affaire à suivre :-)

signaler à un administrateur
Commentaire de elguevel le 11/07/2006 12:15:52

Arf j'ai pas commenté des masses .. de ce coté la je suis assez feignant, sinon c'est vrai que j'essai toujours de faire au plus simple, et faire des unités cohérentes et indépendante. En plus des unités bien construitent peuvent être réutilisées par simple importation sans avoir à modifier tout le code.

Sinon ya un petit bug, c'est quand on ferme le processus injécté.. des fois le PC Freeze pendant 30 secondes => à voir !

Mais je doit avoué que la où j'en est chié c'est pour la DLL : impossible de faire tourné une socket la dedans en receptionant les message clients ... J'ai fini par mettre un thread mais sinon le TServerSocket seul pas moyen ..

signaler à un administrateur
Commentaire de cirec le 11/07/2006 12:42:34 administrateur CS

Pas des Masses ... c'est pas le dieu de la pauvreté Grec ... non ? lol

Ben je constate que toutes les fonctions et procédures dans ElgInject.pas sont commentées en début d'implémentation et la fonction principale donc la plus intéressante à pratiquement un commentaire par ligne de code. Et toutes les unités suivent le même model.

Tu te trouves peut être assez fainéant mais ça reste quand même très claire.

Tu es trop modeste, une simple description suffit bien souvant, pas la peine de rédiger un roman. Trop de commentaire tue le commentaire :-)

signaler à un administrateur
Commentaire de Francky23012301 le 11/07/2006 19:01:54

Salut Elguevel,

C'est simple : le message d'avertissement est mis quand l'auteur du post est recherché par Interpole.

Ben il est passé ou Elguevel ?? Il s'est fait streamer via un protocole TCP/IP en Antartique ??

Cette source n'est pas dangereuse. Quand à son détournement qui pourrait lui etre dangereux, ce n'est pas à la portée de tous.

Bon travail Elguevel.

@+

signaler à un administrateur
Commentaire de shining le 11/07/2006 19:27:19

Salut,

je viens de retrouver un lien intéressant et qui est en rapport avec ce post(à ne pas mettre entre toutes les mains), ceci-dit pas de soucis car il y'a la barrière du langage(C++) mais à voir quand même, vous trouverez le code source avec des fonctions pour l'injection d'une dll dans un processus, l'injection de code dans un processus(plsu dangereux), et pleins de fonctions intérréssantes !!!

Attention notion en "C" voir "C++" obligatoire mais si vous êtes curieux ;o)

WinAPIOverride32
http://jacquelin.potier.free.fr/

@+

signaler à un administrateur
Commentaire de f0xi le 12/07/2006 05:37:19 administrateur CS

hop retiré, il est vrai que ce message pus un peu du cul, il en faudrait des nouveaux ...
^^

bon code en tout cas.

signaler à un administrateur
Commentaire de elguevel le 12/07/2006 07:55:06

Et ma note ? car çà me dit toujours pas si j'ai mon Bac ou pas !!!

Merci Shining pour le site, mais au niveau language c'est pas le C/C++ qui me rebute .. c'est l'anglais LoL

signaler à un administrateur
Commentaire de Matt 261 le 12/07/2006 09:39:03

Et moi je dit en grand merci à f0xi ;) ! ! !

signaler à un administrateur
Commentaire de elguevel le 12/07/2006 09:43:17

Ah oui au faite, un grand merci fOxy pour cette fluidité :-)

signaler à un administrateur
Commentaire de cirec le 12/07/2006 09:57:54 administrateur CS

C'est quand même mieux comme ça.
"hop retiré, il est vrai que ce message pus un peu du cul"
Mon chère F0xi, cette phrase pourrait servir de légende à ton avatar ... Mdr

En tous cas, merci (il n'était vraiment pas justifié ce message)

signaler à un administrateur
Commentaire de shining le 12/07/2006 19:34:57

Bon la voilà ta note lol, alors heureux ? ^^

signaler à un administrateur
Commentaire de Matt 261 le 13/07/2006 09:42:54

Voila aussi ma note !

signaler à un administrateur
Commentaire de elguevel le 13/07/2006 09:48:12

ah oui ..Très heureux :-) MerKi !

signaler à un administrateur
Commentaire de Rudy3212 le 16/07/2006 15:38:50

Superbe Programme Bravo, allez je Note :)

signaler à un administrateur
Commentaire de elguevel le 17/07/2006 11:24:23

Merci bcp Rudy3212 pour ce 10 ;-)

signaler à un administrateur
Commentaire de Forman le 17/07/2006 22:11:49

Une méthode pour se protéger de cette méthode d'injection:

1/Au démarrage du système, utiliser mon source
http://www.delphifr.com/codes/REMPLACER-FONCTION-DLL-IMPORTE-QUELLE-AUTRE_38484.aspx
pour "patcher" tous les processus lancés (dont Explorer.exe notemment...) et remplacer les fonctions suivantes dans chacuns des process lancés:
CreateProcess -> CreateProcess2
CreateRemoteThread -> CreateRemoteThread2
LoadLibrary -> LoadLibrary2

2/La fonction CreateProcess2 fait la même chose que l'originale, mais en plus elle remplace les fonctions suivantes dans le processus lancé:
CreateProcess -> CreateProcess2
CreateRemoteThread -> CreateRemoteThread2
LoadLibrary -> LoadLibrary2

3/La fonction LoadLibrary2 fait la même chose que l'originale, mais en plus elle remplace les fonctions suivantes dans la DLL loadée:
CreateProcess -> CreateProcess2
CreateRemoteThread -> CreateRemoteThread2
LoadLibrary -> LoadLibrary2

4/Si tout s'est bien passé, à tout instant, tous les processus et les modules chargés en mémoire ont leur fonction CreateRemoteThread remplacée par CreateRemoteThread2 (en supposant que tout processus puisse être uniquement lancé par CreateProcess à un moment ou à un autre, et toute librairie chargée avec LoadLibrary à un moment ou à un autre). Finallement, la fonction CreateRemoteThread2 affiche une boîte de dialogue du genre:

"le processus machin.exe est en train de faire une opération louche en tentant d'utiliser CreateRemoteThread, technique classique utilisée par les malwares pour s'infiltrer dans un système, voulez-vous le laisser faire?
*Yes* *No*"

Si l'utilisateur clique sur "no" alors la fonction CreateRemoteThread2 échoue (ou ne fait rien) sinon la fonction CreateRemoteThread2 fait la même chose que l'original.


Pourquoi remplacer les 3 fonctions citées et pas seulement CreateRemoteThread (en mettant à jour la liste des processus toute les secondes par exemple)? Tout simplement car injecter une DLL peut se faire très rapidement ni vu ni connu en même pas une milliseconde. Puisqu'une dll injectée devra nécessairement être chargée préalablement avec LoadLibrary (du moins dans un monde idéal, voir plus bas!), et que tous les exécutables ont été préalablement patchés, l'antivirus a une longueur d'avance sur le virus présumé (et de plus ne consomme pas de resources processeur supplémentaires).

La méthode précédante pourrait être encore améliorée en patchant aussi l'autre API bien connue des hackers pour injecter une DLL (je ne me souviens plus de son nom, elle sert à faire un "hook" des windowprocs d'un exécutable) qui je crois ne passe pas par LoadLibrary mais utilise des fonctions kernel plus bas niveau. Là encore, la méthode que je propose ne fonctionnera pas si le processus qui va lancer le code d'infection n'est pas lancé avec CreateProcess (mais par exemple par une de ces nombreuses API non documentées dont Microsoft a le secret [littéralement] et qui sont autant de failles de sécurité potentielles...)

Si quelqu'un se sent le courage d'essayer de le programmer         <8=P

signaler à un administrateur
Commentaire de Forman le 17/07/2006 22:17:53

Au fait je suis très très jaloux elguevel, j'avais moi aussi posté un source sur cette méthode d'injection l'an dernier, et un des admins l'avait purement et simplement supprimée environ 5 minutes après que je l'aie posté       :-(

Il faut dire que le reste du code expliquait comment injecter une DLL dans internet explorer (pour passer le firewall sans se faire remarquer  ;) ) et se connectait sur un programme de "télécommande" qui permettait de prendre le contrôle de l'ordinateur infecté à distance (clavier/écran/souris). C'est même suite à ça que j'ai eu l'idée de programmer mon serveur d'accès à distance par HTTP (http://www.delphifr.com/codes/ACCEDER-SON-ORDINATEUR-DEPUIS-IMPORTE-QUELLE-MACHINE-CONNECTEE_27224.aspx), comme quoi, programmer un trojan ça peut servir!!!

signaler à un administrateur
Commentaire de elguevel le 18/07/2006 08:12:30

Ba désolé pour toi, mais moi aussi j'explique cette histoire d'injecté IExplorer (voir en haut) et personne n'a rien dit. Enfin si, au départ j'ai eut un message rouge, et après fOxy me l'a viré. En fait je crois que çà dépend de l'admin sur lequel tu tombe (ouverture d'esprit oblige).

Mais je te rassure, on m'a également supprimé des sources, notemment une qui été un floodeur de page web multi-thread. Cà permettai d'augmenter ses statistiques de visite sur les blogs et autres trombinoscope du web, celà afin d'etre premier dans le top 10 :-)(elle à pas tenu 2 minutes).

J'ai d'ailleur jamais osé poster certaines sources comme des Worms etc...

Un conseil, change le titre et la description .. c'est con mais pour deux sources identiques si l'une  s'appel "Penetrer inconito la base de registre d'un tier" çà passera pas, alors que si tu met "Démonstration de l'API RegConnectRegistry" bizzarement c'est pas vu de la meme façon.

Aller perd pas courage, et code ;-)

signaler à un administrateur
Commentaire de elguevel le 18/07/2006 08:16:39

Sinon très bon ta technique de subtiliser les API windows. On peut aussi controler à un niveau plus bas en redirigant les API natives (mais là c'est clair, c'est pas documenté :-)

Mais je pense pas que tout le monde y arrive vu que tu as bridé ta source pour qu'on ne  puisse pas injécté un autre process que le programme d'injection lui même.

signaler à un administrateur
Commentaire de Forman le 18/07/2006 22:28:23

Argh...

Je ne connaissais pas la fonction RegConnectRegistry, je viens de lire la rubrique MSDN associée et je ne sais vraiment pas quoi dire, ça me laisse sans voix... Pourquoi s'embêter à programmer des virus et trojans super évolués et subtils alors que tout est déjà là en natif dans Windows?

Heureusemenr que j'utilise WinLSD, ce stupide service de "partage du registre à distance" (ou quelque chose comme ça) est désactivé par défaut, ouf!

J'ai une question bête à poser:
les 2 API dont on parle sur cette page (CreateRemoteThread et RegConnectRegistry), en toute honnêteté, qui pourrait me dire vraiment quelle utilité elles pourraient avoir dans le cadre d'une utilisation "normalle" de l'OS? Sincèrement, je n'en vois vraiment aucune, si ce n'est de les exploiter en tant que failles de sécurité...

signaler à un administrateur
Commentaire de elguevel le 19/07/2006 07:57:21

L'administration.. c'est pour l'administration. Et je peux te dire qu'en entreprise çà sert. L'admin n'a plus à bouger son gros derrière et à devoir fermer son IExplorer connecté sur "GrosseCochone.com". L'utilisateur lui soumet le problème, et lui le dépanne à distance.. c'est çà le progrès :-D

Et puis tu sait toutes les API comme RegConnectRegistry necessite quand meme que tu es les droits d'administration donc bon l'implémenter comme çà ne te servira à rien de plus qu'utiliser les programmes déja fait par Microsoft.

En parlant de faille, s'en est pas vraiment une, mais une manip à l'epoque permettait sans les droits d'admin d'ouvrir le lecteur de CD d'une autre machine sur le reseau et je m'apperçoi qu'elle n'a jamais été corrigé. Bon c'est pas bien méchant mais quand meme, çà aurai pu être fait !



signaler à un administrateur
Commentaire de kalif le 25/07/2006 11:02:26

salut

bravo pour ta source elle est interessante, j'avais déjà vu ca en c++ mais pas en delphi ... d'un autre coté ca aurai été mieux si on pouvais injecter une procedure ou dll déjà incluse dans notre exe ... jsais pas si j'ai été clair,  @+

signaler à un administrateur
Commentaire de elguevel le 25/07/2006 11:08:28

Heuu explique nous çà :-)

signaler à un administrateur
Commentaire de kalif le 25/07/2006 11:22:49

ben en fait je pensais où alors juste quelques ligne de code qui font partie de notre exe sans devoir prendre une dll déjà créé ... ou alors une dll déjà incrustée dans le code via bitarts fusion...

signaler à un administrateur
Commentaire de Rudy3212 le 25/07/2006 12:00:34

Ce qu'il veut dire c'est que le code à injecter ne soit pas dans une dll mais dans l'exe lui même.

signaler à un administrateur
Commentaire de kalif le 25/07/2006 12:04:40

oui lol excuser moi j'ai du mal a m'exprimer aujourd'hui :)

signaler à un administrateur
Commentaire de elguevel le 25/07/2006 13:12:00

Ok Ok, L'exe HiJacking :-) Jamais fait mais c'est bcp plus chaud.

Voila un exemple en C++ : http://www.codeguru.com/cpp/w-p/win32/security/article.php/c11393/

En tout cas c'est redoutable !!!

signaler à un administrateur
Commentaire de kalif le 25/07/2006 16:50:53

c'est exactement ce que je disais mais ca serai bien de l'avoir en delphi

signaler à un administrateur
Commentaire de Forman le 25/07/2006 21:54:15

lol c'est pas du Delphi c'est de l'assembleur, tu peux tout reprendre (ou presque) avec l'assembleur intégré de Delphi!

signaler à un administrateur
Commentaire de kalif le 25/07/2006 21:55:36

je sais très bien que c'est pas du delphi, je dis juste que ca serai bien si quelqu'un le refasse en delphi...

signaler à un administrateur
Commentaire de Rudy3212 le 25/07/2006 22:55:43

Grrr ce que FORMAN veut dire je pense, c'est que c'est fonction ne peuvent pas être fait en delphi car trop complèxe, mais on peut quand même l'utiliser dans delphi mais en le gardant en assembleur (asm inline ^^).
Bientôt je crois que je vait faire mon traducteur en ligne a force que redevoir expliquer les messages lol

signaler à un administrateur
Commentaire de elguevel le 28/07/2006 08:10:14

HiJacjink ... qui s'y colle ?

Assembleur Inline, à part faire une addition j'y connait rien ... faudra que je m'y mette !