OVH Cloud OVH Cloud

Lancer l'exécution d'un raccourci à partir du Shell32.dll

14 réponses
Avatar
HD
Bonjour,

Comment peut on lancer l'exécution d'un raccourci directement par une ligne
de commande avec le Shell32.dll ?

Merci d'avance pour votre aide.
--
@+
HD

4 réponses

1 2
Avatar
HD
> Dans la majorité des fichiers lnk, le chemin complet (si c'est un
lien vers un répertoire) ainsi que le nom de l'exécutable sont en
clair.
Il est possible de récupérer ce chemin, sans accèder au registre...
Mais c'est pour quoi faire au juste... un truc qui marche pas à tous
les coups ?



Je cherche à faire un petit logiciel qui permettrait de bloquer l'exécution
des fichiers potentiellement dangereux dans les mails. Outlook Express
comprend une sécurité qui bloque déjà ces extensions... mais un utilisateur
kamikaze (et j'en connais beaucoup) peut très bien ouvrir le fichier malgré
la protection en cliquant sur transférer puis en ouvrant le fichier... : (

J'ai donc crée un programme (fonctionnant à peu près sur le même principe
que ScriptDefender) qui se déclenche au clic de certaines extensions. Par
exemple pour les .com j'ai dans
"HKEY_CLASSES_ROOTcomfileshellopencommand" mon programme "SecuOE.exe %1
%*". Ce programme contrôle que le .com déclenché ne se trouve pas sous le
répertoire "C:WindowsTemporary Internet Files" si c'est le cas c'est que
la personne l'a déclenché à partir d'un mail.

Tout fonctionne à merveille pour les extensions de fichiers "exécutable"
avec les paramètres "opencommand" du style "%1 %*", de même ça tourne avec
les .js, .jse, .vbs, .vbe qui ont le paramètre "Wscript %1 %*"...

Mais mon plus gros problème est le cas des extensions du type ".LNK" ou
là.... je sèche...

Je cherche donc à savoir comment procéder pour réussir l'exploit de
détourner l'exécution d'un .LNK pour l'analyser puis pour le cas échéant le
déclencher ou le bloquer (si il se trouve sous le "C:WindowsTemporary
Internet Files").

--
@+
HD
Avatar
Gilles RONSIN
"HD" , le lun. 12 juil. 2004 09:17:05, écrivait
ceci:

Salut,

J'ai donc crée un programme (fonctionnant à peu près sur le même
principe que ScriptDefender) qui se déclenche au clic de certaines
extensions. Par exemple pour les .com j'ai dans
"HKEY_CLASSES_ROOTcomfileshellopencommand" mon programme
"SecuOE.exe %1
%*". Ce programme contrôle que le .com déclenché ne se trouve pas
sous le
répertoire "C:WindowsTemporary Internet Files" si c'est le cas
c'est que la personne l'a déclenché à partir d'un mail.



Pour être complet pour ton appli de sécurité je voudrais te rappeller
un truc : les NT ne se basent pas que sur l'extension, cad que si
l'extension n'étaient pas reconnue, c'est le contenu qui sert à
déterminer l'action.

Ex
cd %windir%system32
ren calc.exe calc.zzz
calc.zzz
ren calc.zzz calc.jpg
calc.jpg

donc si tu veux être efficace dans ton appli de sécurité, tu devrais
peut être explorer toutes les extensions


--
Embryon de site : http://gilles.ronsin.free.fr
Nouvelles astuces : Interprêtation des évenements XP en "français"
(trad auto)
Il est impossible pour un optimiste d'être agréablement surpris.
Avatar
Christian ASTOR
HD a écrit:

Mais mon plus gros problème est le cas des extensions du type ".LNK" ou
là.... je sèche...



.lnk => ShellExecuteEx() => IShellExecuteHook
Avatar
HD
--
@+
HD

> Mais mon plus gros problème est le cas des extensions du type ".LNK" ou
> là.... je sèche...
.lnk => ShellExecuteEx() => IShellExecuteHook



Comment utiliser "IShellExecuteHook" ? Je n'ai pas trouvé de doc sur cette
fonction... Auriez vous un exemple?

Merci d'avance.
1 2