Saisie sécurisée

Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
- - Dernière réponse : victorcoasne
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
- 3 févr. 2010 à 16:41
Bonjour,

Je voudrais tirer profit d'un bureau sécurisé apparu avec Vista mais présent aussi sous Seven.
Le but c'est de créer une fenêtre d'authentification par exemple.

J'ai essayé de créer une fenêtre en tant que service puis de faire Ctrl+Alt+Suppr histoire de voir la fenêtre mais je ne la vois pas ni en mode classique, ni avec la combinaison de touche.

Si vous ne voyez pas de quoi je parle tentez de sauvegarder votre coffre-fort (sous Seven) dans le gestionnaire d'authentification.
Vous verrez qu'à un moment il vous demandera d'appuyer sur Control+Alt+Suppr pour aller sur un bureau sécurisé.

Merci d'avance et bonne prog,
@++

Victor
Afficher la suite 

13 réponses

Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
11
0
Merci
L'appui sur Ctrl-Alt-Del pour le logon "sécurisé" existe depuis au moins Win2K ... C'est pour éviter qu'un petit malin reproduise la fenêtre de login et te pique tes infos de logon (gênant sur un serveur). Mais vu que c'est l'utilisateur qui clique sur un bouton pour définir les infos de logon dans une fenêtre non modale (dans le sens "qui ne prend pas tout l'écran"), il sait très bien que ça vient de ton programme. L'API permettant d'afficher cette fenêtre est CredUIPromptForCredentials.
---
VB.NET is good ... VB6 is better
Commenter la réponse de cs_ghuysmans99
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
3
0
Merci
Bonjour,

Je vais regarder du côté de cette fonction.

Mon but n'est pas d'afficher la même fenêtre que Windows mais éviter que l'on puisse avec un keyloggeur avoir le mot de passe que tu as entré dans la fenêtre.

Windows depuis Vista a créé un "bureau virtuel" qui est utilisé par la fonction de sauvegarde du "coffre-fort" sous Seven, c'est un mécanisme introduit avec l'UAC.

Merci et bonne prog,
@++

Victor
Commenter la réponse de victorcoasne
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
3
0
Merci
Bonjour,

J'ai essayé et avec un hook global tout ce que tu rentre dans ta fenetre créée par CredUIPromptForCredentials peut etre intercepté.

Merci et bonne prog,
@++

Victor
Commenter la réponse de victorcoasne
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
11
0
Merci
Tout peut toujours être intercepté. Faut pas être parano à ce point-là !
---
VB.NET is good ... VB6 is better
Commenter la réponse de cs_ghuysmans99
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
3
0
Merci
Bonjour,

Quelque chose me dit que tu n'as pas Seven sur ton PC.
Sinon tu aurais essayé la manip que j'ai indiquée et tu aurais vu que un hook n'est pas possible sur le bureau sécurisé.

Je préfère afficher ma fenêtre avec mes champs que d'utiliser une fonction qui n'est compatible que NT pour pas plus de sécurité.

Je suis en train de voir pour la fonction CredUIPromptForWindowsCredentials mais je n'ai pas les bons includes.
Je l'ai chargée en DLL mais je ne suis pas encore parvenu à l'utiliser, j'ai un code 31.

Merci et bonne prog,
@++

Victor
Commenter la réponse de victorcoasne
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
11
0
Merci
Si si j'ai Se7en mais j'ai mis l'UAC dehors (sert à rien). Pour faire fonctionner la fonction que je t'ai proposée, inclus WinCred.h et link Credui.lib
---
VB.NET is good ... VB6 is better
Commenter la réponse de cs_ghuysmans99
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
3
0
Merci
Bonjour,

Merci mais j'ai lu MSDN.

Pour information, pour compiler la fonction que tu m'as donné j'ai du utiliser MinGW 64 bits car WinCred.h ne figurait pas dans la version 32 bits de mon compilateur.
Mais la nouvelle fonction de Vista n'y est pas non plus.

Voici mon code d'import (très vite fait pour tester) de la dernière fonction dont je t'ai parlé :
typedef DWORD (WINAPI* CRED)( PCREDUI_INFO, DWORD, ULONG *, LPCVOID, ULONG,
LPVOID *, ULONG *, BOOL *, DWORD );
CRED CredUIPromptForWindowsCredentialsA = NULL;

#define CredUIPromptForWindowsCredentials CredUIPromptForWindowsCredentialsA

inline bool chargerWindowsVista()
{
static HINSTANCE hUxTheme = NULL;
if ( hUxTheme == NULL )
{
hUxTheme = LoadLibrary( "credui.dll" );
if ( hUxTheme != NULL )
{
CredUIPromptForWindowsCredentialsA = (CRED) GetProcAddress(
hUxTheme, "CredUIPromptForWindowsCredentialsA" );
return true;
}
}
return false;
}


Tu as peut-etre en tete que l'UAC est la fenetre qui s'affiche par au-dessus des autres pour t'embeter mais c'est plus que ça.
La preuve cette fenetre est désactivée sur ma machine mais j'arrive à afficher le bureau virtuel pour l'export.

Essaye de faire la manipulation dont je parles depuis le début et tu changera d'avis
Démarrer > Tapper coffre > Cliquer sur Gérer les informations d'identification Windows > Sauvegarder l'archivage sécurisé > Sélectionner un emplacement > Suivant > Ctr+Alt+Suppr et TADA, un bureau sécurisé !

Merci et bonne prog,
@++

Victor
Commenter la réponse de victorcoasne
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
11
0
Merci
T'as quoi comme erreur ? Sinon utilise VC++, c'est le meilleur environnement de développement qui existe sous Windows en ce moment (il possède aussi un très bon optimiseur).
---
VB.NET is good ... VB6 is better
Commenter la réponse de cs_ghuysmans99
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
3
0
Merci
Bonjour,

Une erreur de code 31, mais c'est dû au fait que je ne dois pas bien appeler la fonction.
Il faut encore que je creuse.

VC++ n'est pas le meilleur EDI.
Eclipse avec CDT C++ est beaucoup plus puissant, je n'ai pas besoin ni de MFC ni de .NET pour mes développement en C++ donc Visual Studio ne me sert à rien.

Merci et bonne prog,
@++

Victor
Commenter la réponse de victorcoasne
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
7
0
Merci
Salut,
Moi aussi je suis convaincu que Visual C/C++ est le meilleur environnement de travail sous Windows pour Windows. Il a beaucoup d'avance sur les autres. Si tu l'utilisais tu n'aurais certainement pas le problème de reconnaissance de fonction que tu as. Contrairement à ce que tu sembles penser, tu peux, avec VC++, faire des applications sans MFC ni .NET. D'ailleurs, je me demande bien comment Eclipse, conçu initialement en JAVA pour JAVA et avec son système de plugins, pourrait être meilleur que VC++. En quoi Eclipse est-il plus puissant que VC++?
Commenter la réponse de racpp
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
3
0
Merci
Bonjour,

Il y a plusieurs raisons mais je te détaille celles qui à mon point de vue ont le plus d'importance :
- Extensibilité (je peux développer des plugins pour rajouter des fonctionnalitées persos)
- Compatibilité (compatible avec beaucoup de compilateur dont GCC qui est pour moi le meilleur compilateur)
- Possibilité de reformater tout le code via un simple raccourci clavier. Je parle pas de refactoring mais bien de changer le style d'indentation et de définir son style. Tu vas même jusqu'à définir les espaces avant ou après les parenthèses dans les conditions...
- Open-source avec un communauté réactive et des compilations avec prise en compte des bug corrigé toutes les semaine pour le CDT C++

Cependant j'ai testé Visual Studio 2008 et j'ai même les licenses pour pouvoir développer avec.
Seulement je l'utilise seulement pour faire du .NET.

Merci et bonne prog,
@++

Victor
Commenter la réponse de victorcoasne
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
7
0
Merci
Tout ce que tu viens de dire ne prouve pas que Eclipse est plus puissant. Ce sont à mon avis quelques avantages utiles mais pas décisifs. Visual a lui aussi ses propres avantages côté IDE. Le compilateur le plus puissant est celui qui permet de produire un exécutable natif et bien optimisé ou optimisable. S'il t'arrive de faire du codage intensif pour Windows tu te rendras compte qu'il n'y a pas mieux que Visual C/C++. Les autres outils, malgré leurs petits avantages, souffrent de grosses lacunes. A propos de GCC pour Windows, bien qu'il soit un bon compilateur, ses fichiers header ne sont jamais complets. Puisqu'il n'arrive pas à reconnaitre certaines fonctions, il te faudra souvent intervenir manuellement pour combler ce genre de lacunes. Cela est dû au fait que GCC, avec toutes ses variantes, n'est pas fait spécialement pour Windows. Tu sais bien qu'il est multi-plateforme. Visual C/C++ quant à lui, est fait initialement et seulement pour Windows. Donc il y est parfaitement adapté. La pratique le prouve.
Commenter la réponse de racpp
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
3
0
Merci
Bonjour,

Plus jeune j'ai eu quelques problèmes avec le compilateur de Visual Studio.
En effet il générait des segfault sans raison alors qu'il n'y en avait pas avec GCC.

En parlant de puissance je compare les EDI et non les compilateurs car tu peux mettre Eclipse avec le compilateur Microsoft.
Pour moi un EDI puissant et celui qui a le plus de fonctionnalités utiles et intéressante, et qui permet de te faire gagner du temps et de bien coder.

Sinon je vais pas me lancer dans un débat mais mon avis personnel c'est que Eclipse est le meilleur EDI que je connaisse à ce jour.

Merci et bonne prog,
@++

Victor
Commenter la réponse de victorcoasne