Blog / Nouvelles - Logiciel

DipiRunAs v1.0 bêta 2...  

Il y a déjà plus d'un an, j'ai remplacé l'ancien ordi de mon fils aîné qui tournait sous Windows XP par un plus récent sous Windows 7. Cette migration n'a pas été sans conséquences puisqu'au lancement d'un de ses jeux favoris, la fenêtre de l'UAC apparaissait désormais, l'empêchant de jouer. Eh ouais, il n'est pas admin de sa machine ! sourire

Pour contourner cette sécurité qui devenait un réel problème (un ado mécontent c'est vraiment très pénible !), je me suis mis en quête d'une solution. J'ai testé plusieurs méthodes/outils (dont l'excellent SuperExec de Jean-Claude BELLAMY) mais je n'ai rien trouvé de simple et efficace pour que mon fils puisse enfin lancer ce foutu FlyFF. J'ai donc développé vite fait un petit soft permettant de faire une "élévation de privilèges", utilisant pour ce faire un compte admin codé en dur dans l'appli... Et hop, pas propre-propre mais ça a tourné comme ça pendant plus d'un an.

Et puis, récemment, l'éditeur de FlyFF a sorti un nouveau jeu. Bien entendu, ce dernier requiert lui-aussi d'être lancé en tant qu'admin. Mais plutôt que de me cantonner à recompiler mon utilitaire après modification du nom de l'exécutable à lancer, je me suis dit qu'il était préférable de le transformer en véritable outil paramétrable et utilisable par d'autres.

C'est comme ça que DipiRunAs est ainsi né !

Euh... c'est quoi ce truc ?!

Ce nouvel outil (en version bêta pour le moment) va vous permettre de lancer un exécutable (éventuellement accompagné de paramètres) sous une autre identité. Par exemple lancer une appli nécessitant d'être admin pourra l'être par un simple utilisateur... Il s'agit d'un petit outil sans prétention, totalement "portable" (dès lors que le Framework .NET 3.5 sp1 est présent sur votre machine) donc qui ne nécessite pas d'être "installé", développé en C#...

Comment cela fonctionne-t-il ?

Vraiment simplement, vous allez voir.

La première étape consiste en la création d'un fichier de configuration qui contiendra les informations nécessaires à l'exécution : le nom de l'exécutable, ses éventuels paramètres, le compte sous lequel l'appli devra être exécutée et le mot de passe associé. Bien entendu, ces données ne sont pas stockées en clair d'une part pour ne pas compromettre le login/password utilisé, mais aussi pour éviter qu'un petit malin y apporte des modifications dans le but d'exécuter autre chose que ce que vous aviez prévu. Pour couronner le tout, le fichier généré contient aussi la "signature" de l'exécutable à lancer, au cas où le même (ou un autre) petit malin chercherait à remplacer l'exécutable à lancer par un cmd.exe, par exemple.

La seconde étape, encore plus simple, se résume à créer un raccourci vers DipiRunAs.exe accompagné du nom du fichier de paramètres.

Génération d'un fichier de configuration

Via une fenêtre d'invite de commande, placez-vous dans le dossier de l'outil.

Lancez-le avec le paramètre /create suivi du nom du fichier que vous souhaitez créer, "test" par exemple. En l'absence de ce second paramètre, l'outil utilisera par défaut "DipiRunAs.dra"

dipirunas01.png    

La fenêtre d'édition de configuration de l'appli s'ouvre et fait apparaître cinq champs de saisie :

  • le nom du fichier de configuration
  • le nom de l'exécutable qui devra être lancé (éventuellement accompagné de son chemin si DipiRunAs n'est pas placé dans le même répertoire). L'utilisation des variables d'environnement est ici autorisée.
  • les éventuels paramètres
  • le compte sous lequel l'exécutable devra être lancé
  • l'éventuel mot de passe associé au compte (à noter que la correspondance compte/mot de passe n'est pas vérifiée ici, si la saisie est erronée, une erreur se produira à l'exécution de la commande)

Une fois ces champs renseignés, cliquez sur le bouton OK. Si rien d'anormal n'est détecté, un message d'information s'affiche pour vous informer du succès de la création du fichier de configuration et l'application se ferme. Pour tester, il vous suffit de faire glisser votre fichier .dra sur l'icone de DipiRunAs...

Modification d'un fichier de configuration existant

Le principe est le même que pour la création. Remplacez juste le /create par /edit. Là encore, le nom du fichier est optionnel, s'il est absent l'outil cherchera à traiter "DipiRunAs.dra".

Vous noterez que le champ "Mot de passe" est vide, question de sécurité. Vous ne voudriez quand même pas que vos enfants ou vos utilisateurs se servent d'une configuration existante pour lancer ce qu'ils veulent sous votre compte ?!

Mise en oeuvre

Bien entendu, vous ne pouvez pas demander à vos utilisateurs de "faire glisser" le fichier .dra sur l'icone de l'outil comme je viens de vous le conseiller pour tester votre premier essai.

Il vous faudra juste créer un raccourci vers l'outil et indiquer en paramètre le nom (éventuellement précédé de son emplacement s'il ne se trouve pas dans le même dossier) du fichier de configuration contenant les informations à traiter. C'est dans le champ "Cible" de la fenêtre de propriétés du raccourci que cela se passe. Attention à ne pas oublier d'entourer de double-quotes en cas de présence d'espaces dans les chemins/noms !!!

Exemple :

  • C:\Temp\DipiRunAs.exe cmd.dra
  • "C:\Program Files\gPotato\FlyFF\DipiRunAs.exe" flyff.dra
  • "C:\Program Files\Dipisoft\DipiRunAs\DipiRunAs.exe" "C:\Program Files\gPotato\FlyFF\flyff.dra"

Voilà, j'espère que ce nouvel outil (en bêta pour le moment) rendra service à nombre d'entre vous.

Une dernière petite mise en garde : assurez-vous bien qu'en permettant à un utilisateur de lancer un logiciel ou une commande dans un autre contexte que le sien, cela ne lui permette pas d'accéder à des fonctionnalités qui pourraient s'avérer "dangereuses". Je suis sûr que vous êtes conscient que si le fait de lancer calc.exe sous le compte de l'admin ne permet pas d'user de ces droits pour autre chose, il en est tout autre avec un cmd.exe. Mais sachez aussi qu'un  simple notepad.exe peut se transformer en gestionnaire de fichiers grâce à ses anodines fonctions "ouvrir" et "enregistrer sous...". Et lancé en mode admin, un simple utilisateur pourrait faire des dégâts...

Pour finir, une dernière info capitale : vous trouverez le lien de téléchargement de cet outil sur la page des bêtas en cours. Bien entendu, je suis intéressé par tous vos commentaires/questions. Vous trouverez ci-dessus un bouton "poster un commentaire" dédié à cela.

Allez zou, le soleil se pointe, je vais aller prendre ma dose d'UV !

coucou

Publié le 29/06/2013 @ 16:22   | |


Commentaires

Réaction n°1 

 par visite le 01/07/2013 @ 11:16

Chic ,
Je suis bien intéressé par un logiciel de ce genre.
Je vais tester et faire un retour dans quelques jours.

[réponse de damien, le 01/07/2013 à 14h46]

N'hésite pas à me recontacter pour me dire ce que tu en penses...

Réaction n°2 

 par Eric le 03/07/2013 @ 16:18

vite testé sur une *$£µ$* d'appli que ca me gave de bouger mes fesses pour aller la mettre a jour sur mes postes d'util.. cela fonctionne impec !

j'ai un autre logiciel que j'envisage de lancer via votre appli (elle se met a jour automatiquement tous les x jours et je dois passer taper mes id a chaque fois)

je viendrai redonner mon sentiment a ce moment

Eric

PS : Merci pour vos appli, elless roxxent !
PS2: ce n'est pas possible de lier ipscan et wakeonline ? (ca m'epuise de faire le scan, l'export, l'import, le shutdown, j'aimerai faire le scan et le shutdown en une manip ! langue)
Merci de m'aider a faire du gras !

[réponse de damien, le 03/07/2013 à 20h17]

Cool, merci de ce premier retour.

S'agissant de lier IPScan32 et WakeOnLan, c'est déjà possible : rien ne t'empêche de créer des "commandes personnalisées" dans IPScan32 pour invoquer WakeOnLanBatch (l'appli en ligne de commande). Voir la réaction n°2 à ce billet qui demandait plus ou moins la même chose.

Sinon, pour info, le successeur d'IPScan32 (totalement redéveloppé et près de 50x plus rapide que son prédécesseur) intègre nativement les principales fonctions de WakeOnLan. Pour l'heure ce "Dipiscan" (puisque c'est comme ça qu'il s'appelle) est toujours en bêta "privée". Il devrait officiellement voir le jour d'ici 1 mois ou 2.

Réaction n°3 

 par visite le 05/07/2013 @ 15:44

Bon, j'ai essayé mais sans succès de lancer un cmd.

OS : Win7Pro64 dans un workgroup (donc que des comptes locaux)
2 utilisateurs : steph (membre du groupe admin) et accueil (utilisateur standart)
.Net Framework 3.5.1 installé de base
Fichier cmd.dra :
 - Exec : c:\windows\system32\cmd.exe
 - Param : néant
 - compte : steph
 - passe : steph
pas de message d'erreur à la création cool
Par contre à l'exécution, J'ai le message :
"Erreur rencontrée à la tentative d'impersonnation. Demansez à votre administrateur de vérifier que le compte spécifié (steph) existe, qu'il n'est pas désactivé et que le mot de passe est correct...
Nom de répertoire non valide"

pas ma faute
une idée  (mes comptes sont actifs, le chemin est bon....) ?

[réponse de damien, le 05/07/2013 à 15h57]

Quelle session était ouverte quand tu as créé le fichier de configuration ? N'était-ce pas sous ton compte "steph" ? Si oui, peux-tu vérifier que ton compte "accueil" a bien accès à ton fichier cmd.dra ?

Réaction n°4 

 par visite le 05/07/2013 @ 16:36

Non, j'ai tout fait sous la session accueil.
Là je suis en train de mettre à jour mon OS (mon Net Framework ne semble pas SP1). Réponse dans 1 heure.

[réponse de damien, le 05/07/2013 à 21h13]

Bizarre, il me semblait pourtant que Windows 7 embarquait nativement le Framework .NET 3.5 sp1.

Si d'autres rencontrent ce problème, j'ai recompilé le projet (la bêta 3) pour fonctionner dès le Framework .NET 2.

Réaction n°5 

 par visite le 05/07/2013 @ 17:41

Bon, après mise à jour du Net Framework, cela semble mieux cligne Est-ce cela fonctionne également avec des comptes de domaine ? Si oui, j'essayerai la semaine prochaine...

[réponse de damien, le 05/07/2013 à 21h24]

Oui, ça doit en principe fonctionner avec un compte du domaine.

Par contre, il va sans dire que le compte utilisé doit avoir des droits sur la machine en question. Donc être dans le groupe des administrateurs si l'appli est utilisée pour faire de l'élévation de privilèges ; ou au moins dans le groupe des utilisateurs s'il s'agit simplement d'utiliser une autre identité en conservant le même niveau de privilèges...