IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

DDK et Delphi ?


Sujet :

Windows

  1. #21
    Membre confirmé Avatar de - Robby -
    Inscrit en
    Juillet 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 266
    Par défaut
    Salut fd, merci pour ta présence, sympa
    C'est chouette d'avoir des passionnés comme toi sur le forum.
    A propos de ta remarque sur :
    tu le trouves ou le DriverObject ?
    Toi qui a déjà écrit des Drivers sous Nt,
    Pourquoi ne pas nous faire profiter de ton expérience ?
    Au lieu de simplement dire : vous etes tres loin de la solution ! non ?
    C'est clair, tu connais plein de choses ... alors vas y !
    Moi, je te pose la question : Ou trouves tu le DriverObject ...fd ?
    Laissons les passions de coté, soyons constructif

  2. #22
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 8
    Par défaut
    Waou ! Et tu as trouvé tout ça tout seul Robby ? ;)

    Allez, je t'ai retrouvé alors maintenant tu rentres à la maison et tu arrêtes d'embêter tout le monde !

    ;) ;) ;)

    YoLeJedi

  3. #23
    Membre confirmé Avatar de - Robby -
    Inscrit en
    Juillet 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 266
    Par défaut
    ... non, bien entendu que j'ai pas trouvé ca tout seul !
    Je vous présente " YoLejedi "
    ... un crac grave ! un pro de chez pro !
    Il m'a beaucoup enseigné ! ... un as !
    "OpenSCManager" .... c'est lui !! et bien d'autres choses ...
    respect a toi O Gand Yo !

  4. #24
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Là je m'inquiète. Tu remet en cause mes maigres bases en driver. Déjà, je suis surpris que t'arrives à passer en ring0 depuis ton soft. Normalement, ça devrait pas être possible. J'espère que t'es admin quand t'exécutes ton appli, auquel cas, je vais changer d'avis sur NT.
    C'st quoi ta fonction Acces_Memoire ? Ca serait pss un driver des fois, genre winio ?
    Pour moi, ce que tu as fait, ce n'est pas un driver. Un driver, ça s'installe, ç'est chargé par l'OS et ça communique avec les app user mode via DeviceIOControl. Là, t'as courcicuité la HAL, tu tapes directement dans le kernel, AMHA, ça ferait hurler les programmeurs de drivers.
    Comme le dit fd, que comptes passer comme paramètres à CreateDevice.
    Ca m'ennerve un peu, parce que c'est ce genre de trucs qui rend Windows lent/instable. C'était assez courant sous Win9x, ca se développe sous NT, moi ça m'inquiète. Ca doit être un effet pervers de la disparition du DDK. Or, une des principales raisons de sa disparition est il me semble la volonté de professionaliser le dev de driver, qui sont devenus le principale menace de la stabilité de NT5.
    http://www.chez.com/psylon/dev/ddk/index.html

  5. #25
    Membre confirmé Avatar de - Robby -
    Inscrit en
    Juillet 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 266
    Par défaut
    Bien entendu que ce que j'ai écrit plus haut n'est pas un driver.
    C'est juste un pasage en ring0 via CallGate, sans plus. Bien entendu que ce truc fonctionne .. y'a rien de sorcier la dedans ! enfin ... quasi ... la fonction "Acces_memoire "? ... bein tout simple, j'ouvre la memoire via l'objet Device\PhysicalMemory et ensuite "Open_Map", je mappe via NtMapViewOfSection ... de facon a pouvoir mapper la GDT dans mon process, 100% home made !
    Faut pas que ca t'énerve HW. Ce genre de truc, comme tu dis, c'est 100% correct .. c'est pas une bidouille instable, c'est un passage en ring0 via un Gate descriptor .. y'a rien de pervers ici : et ca rend pas Windows autrement qu'il n'est ... rien avoir avec la "disparition" du ddk ...
    On est ou la ? grave ! allons ! .. c'est tout propre, et ca tourne tip top.
    Je reve au jour ou les pro admettrons qu'ils sont pas forcément les seuls a connaitre qq choses ! ca fini par etre ... heu .. blessant cette ambiance.
    Merci de m'avoir donné ton avis !
    sympa

  6. #26
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 8
    Par défaut
    C'est vraiment intéressant tout ça.

    Dans les programmeurs (comme de partout d'ailleurs) il y a les partisans de la pensée unique et il y a les autres, "les artistes", ceux qui remettent en question ce que le grand Bill Gates nous dit.
    Cette histoire d'administrateur n'est que du pipeau.
    Avec NT, il est possible de tout faire !
    Sécurité = concept de marketing
    Microsoft = menteur

    Qu'on se le dise :)

    Bonne nuit
    YoLeJedi

    P.S.: Tout ce que propose Robby fonctionne très bien ! Mais c'est sûr ce n'est pas marqué dans la doc de Microsoft...

  7. #27
    Membre confirmé Avatar de - Robby -
    Inscrit en
    Juillet 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 266
    Par défaut
    Bon ...
    Moi meme, Chris_Hks ... YoLeJedi ... on essaye de faire partager ce que nous savons pour faire avancer le débat et le rendre intéressant pour chacun. Pourriez vous aussi, s'il vous plait, fd, Hw ... participer de facon plus .. disons constructive ..
    et nous faire part de vos connaissances.
    Ce serait réellement chouette de votre part.
    Vous connaissez mille choses ... c'est évident !
    Alors pourquoi rester sur une simple position d'observateur.
    Un tout grand merci a tout les deux ...
    Et de toute facon ... merci pour vos interventions, réellement.

  8. #28
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Faut pas que ca t'énerve HW. Ce genre de truc, comme tu dis, c'est 100% correct .. c'est pas une bidouille instable, c'est un passage en ring0 via un Gate descriptor ..
    Si si, c'est de la bidouille. En utilisant un driver WDM, tu aurait quelque chose qui fonctionnerait sous NT et Win98. Là, c'est pas le cas. Mais surtout...
    Je suis rassuré. Je viens de lire la page de sysinternals sur Device\PhysicalMemory, celle qui a du te servir à faire ça. J'ai téléchargé le soft. En Admin, ca marche.
    En user normal, ca marche pas. Ouf. Je vais continuer à apprécier NT.
    Ca veut dire que ton programme est inutilisable. Si tu le met en download, il va échouer à ouvrir Device\PhysicalMemory, et voilà, bye bye tout le monde. Alors, tu vas me dire, c'est simple : il suffit d'être admin. Moi je te répond : à quoi ça sert de créer des mécanisme de sécurité si c'est pas pour les respecter.
    Normalement, tu dois procéder ainsi :
    - créer un driver
    - l'installer depuis le compte Admin
    Tu peux alors le loader depuis une app et l'utiliser via DeviceIOControl, et cela, mêm sans être admin. MS a développer un modèle de sécurité qu'il faut suivre. Il est ce qu'il est, mais il est mieux que de mettre tout le monde admin.
    Moi je travaille le + possible en user, mon program files n'est accessible qu'en lecture, idem les clés sensibles de la bdr. C'est un peu plus pénible à utiliser, car pas mal de softs écrivent dans leur rep d'install au lieu du profile utilisateur. Alors je dois switcher en admin et mettre le droit pour ledit fichier. Idem pour une install. Mais après quelques jous / semaines de gymnastiques, le résultat est là. Tu as un ordi utilisable en user, et pas besoin d'antivirus. La moindre tentative d'écriture dans Windows, d'infection d'un soft (dans Program Files) ou de modif de la clé Run ou autre pour se lancer au reboot fait planter le soft vérolé. Bcp + efficace qu'un antivirus. UNIX procède ainsi et il n'y a pas de pblm de virus. Si il y a autant de virus sous NT, c'est parce ke trop de monde est admin, entre autre parce que trop d'applis le demandent. Voilà ou est l'insécurité dans ton soft. En courcicuitant les mécanisme établis par MS, tu met en péril le système, directement (crash et corruption du kernel) ou indirectement (tout le monde admin pout utiliser ton soft, ...).

  9. #29
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Je t'ai dit ce que je pensais. Pour mio, tu n'est pas dan sla bonne voie, et je peux pas t'aider si tu persistes. On te propose une solution, qui parrait-il serait meilleur. Tu es sceptique. Une seule solution : la tester. Fait ton soft avec ta solution et avec celle qu'on te propose, puis compare. C'est comme ça qu'on progresse, en testant d'autres solutions.
    Je pense que ton probleme est que tu es une sorte de programmeur DOS moderne. tu n'as pas bien compris le rôle de l'OS, et tu as envie de bidouiller les registres du CPU toi même. Ce que tu fais n'est pas ton rôle, mais celui de l'OS. C'est décevant pout le bidouilleur curieux, mais ça améliore la qualité du tout. Donc, je te le répète, 2 solutions :
    - tu fais ton exploration personnelle, dans un but de curiosité, et là pas de pblm
    - tu veux faire quelque chose de "conventionnel" dans le but de le distribuer, et là, faut utiliser les méthodes préconisées.
    Choisis, mais te t'étonnes pas si une fois le soft fini, pleins d'utilisateurs mécontents gueulent, et que pour corriger cela tu dios...tout recommencer.

  10. #30
    Membre confirmé Avatar de - Robby -
    Inscrit en
    Juillet 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 266
    Par défaut
    Mais non, je ne suis pas sceptique. Il est Clair que la vrai solution, c'est le Driver, le vrai ! Callgate, c'est fini depuis longtemps. Je cherche.
    Le début du débat, était :
    Zut, je vais devoir passer au C pour utiliser le ddk.
    Rien de plus. Mon but, c'est le driver mode kernel ... tu as raison.

    Juste une question:
    "Fd" a dit plus haut : " de toute facon, pour écrire un driver et pouvoir utiliser les fonctions de NtOsKrnl.exe (exemple IoCreateDevice), il faut dajà au préalable se trouver en ring0"

    C'est suite a cette réflexion de "fd" que j'ai abordé ces diverses méthodes pour passer en mode Kernel, CallGate et les autres.

    Alors vous, comment faites vous pour passer en ring0 "une première fois" de facon
    " conventionnel ", alors que vous etes justement en train de créer le driver qui doit le permettre ?

    Merci pour votre réponse, Fd ou Hw ...

  11. #31
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 47
    Par défaut
    Citation Envoyé par HW
    Je suis rassuré. Je viens de lire la page de sysinternals sur Device\PhysicalMemory, celle qui a du te servir à faire ça. J'ai téléchargé le soft. En Admin, ca marche.
    En user normal, ca marche pas. Ouf. Je vais continuer à apprécier NT.
    Des gens m'ont rapporté que chez eux, ça marchait même sans être admin, certains m'ont même rapporté qu'ils avaient deja le write-access sur physicalmemory, sans rien modifier. Donc rien n'est moins sûr. Tout ça sous XP

  12. #32
    Membre confirmé Avatar de - Robby -
    Inscrit en
    Juillet 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 266
    Par défaut
    Perso, j'ai testé ... et chez moi, ce que dit Hw se confirme.
    J'ai deux comptes, le 1er en administrateur (le mien ) et un second compte "invité".
    Au départ du compte "invité" y'a plus rien qui tourne.
    NtOpenSection ... OpenSCManager ... terminé !
    Par contre, je ne sais réellement pas quelle soft il a chargé ?
    Je n'ai jamais vu de CallGate plug and play sur le site de Sysinternals.
    et qu'a t il "vu" pour dire "ca fonctionne" ?
    Hw ... explique, merci !
    (ps:je t'ai posé également une question page précédente Hw , merci)

  13. #33
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 47
    Par défaut
    Je suppose qu'il parle de ça
    http://www.sysinternals.com/ntw2k/info/tips.shtml#kmem

    Citation Envoyé par HW
    Je viens de lire la page de sysinternals sur Device\PhysicalMemory, celle qui a du te servir à faire ça
    Ben non, on ne connaissait pas cette page :p

  14. #34
    Membre confirmé Avatar de - Robby -
    Inscrit en
    Juillet 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 266
    Par défaut
    Et bein non Hw, c'est pas la page qui nous a servit a faire"ca".
    Je la découvre avec toi, et elle bien intéressante. Merci pour le lien.

  15. #35
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Alors vous, comment faites vous pour passer en ring0 "une première fois" de facon
    " conventionnel ", alors que vous etes justement en train de créer le driver qui doit le permettre ?
    Le driver ne te permet pas de passer en ring0, dès le départ, il est en ring0.
    Ce n'est pas un exe que tu lances, c'est une librairie chrgée par le système. Le main du driver est son EntryPoint : la fonction DriverEntry.
    C'est comme pour une dll. Sauf que là c'est chargé par l'OS et non par une app. Tu passes pas en ring0, tu y est dès le départ.
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/kmarch/hh/kmarch/drvrrtns_6r76.asp
    http://www.chez.com/psylon/dev/ddk/start.htm

    Des gens m'ont rapporté que chez eux, ça marchait même sans être admin, certains m'ont même rapporté qu'ils avaient deja le write-access sur physicalmemory, sans rien modifier. Donc rien n'est moins sûr. Tout ça sous XP
    J'ai pas essayé avec "utilisateur avec pouvoirs", ca devrait marcher je pense.

    Au départ du compte "invité" y'a plus rien qui tourne.
    NtOpenSection ... OpenSCManager ... terminé !
    Par contre, je ne sais réellement pas quelle soft il a chargé ?
    Pas compris ce que tu veux dire.

    PS : je susi pas faché moi perso.

  16. #36
    Membre confirmé Avatar de - Robby -
    Inscrit en
    Juillet 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 266
    Par défaut
    Citation Envoyé par hw
    pas compris ce que tu veux dire
    1) que si je quitte mon compte administrateur, le CallGate ne fonctionne plus, car le "NtOpenSdecion" qui se trouve dans ma routine "Acces_Memoire" ne fonctionne plus ..... idem dans l'autre soft, ou j'installe un service Windows, le "OpenSCManager" m'envoie "a la gare".
    (expression Belge, ca ce dit chez vous ? )
    2) que je sais pas trop quel soft tu as téléchargé sur Sysinternals pour nous dire : oui, en "admin" ca tourne, sinon, pas !

    Juste deux questions Hw:
    Ou places tu, toi, la différence essentielle entre un Driver et un Driver mode kernel ?
    Il me manque des éléments essentiels pour avancer, dans les aspects théoriques et conceptuels, mais aspect pratique également.
    J'entends par ce dernier aspect, qu'entre un concept et une implémentation, il peut y avoir une énorme distance.
    Il existe des bouquins sur l'écriture des drivers sous WinXp.
    Tous en anglais, je pense, ... ca, c'est pas un soucis.
    Aurais tu une référence a me conseiller ?

    merci a toi.

  17. #37
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Ben heu, à ma connaissance, quand on parle de driver, c'est un driver mode kernel. Y'a bien les minidrivers qui ne s'exécutent en mode user, mais j'y connais pas grand chose.
    Pour le bouquin, je viens d'avoir "Inside Win2k 3° Edition" mais j'ai paas tro le temps de le lire. Mais il est bien. Pour les drivers, ce même bouquin conseille "Programming Windows Driver Model". J'ai discuté avec un mec qui a développé pas mal de drivers et il m'a dit qu'il avait tout appris avec la doc de MS (/help du DDK)...
    Pour le soft de sysinternals testé, c'est celui donné en lien avant (kmem).

  18. #38
    Membre confirmé Avatar de - Robby -
    Inscrit en
    Juillet 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 266
    Par défaut
    Ok, merci pour les infos bouquins. Je prends bonnes notes.
    Je viens de me commander celui ci au usa via le net :
    "Developing Windows NT Device Drivers: A Programmer's Handbook"
    J'aime bien les bouquins, pas pu résister !
    Je viens de tapper mes 1ere lignes de C et j'ai pas pu m'empécher de coller " #include "Ntddk.h" " dans les includes, avec les bons path et tout ... histoire de "voir".
    Le compilateur n'en veut pas ! il me dit :
    " Compiler version not supported by Windows DDK "
    J'ai : Win xp pack1 le ddk xp pack1 et VC++6 pro ?
    Si qq a une idée ? ...
    C'est hors sujet, donc, juste comme ca, en vitesse.

  19. #39
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Faut VC++ 7
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndevice/html/newinwinxpddk.asp

  20. #40
    Membre confirmé Avatar de - Robby -
    Inscrit en
    Juillet 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 266
    Par défaut
    C'est pas vrai ... ... bon, ok !
    Vais voir si y'a pas moyen de faire l'upgrade par le net .
    Grand merci pour l'info Hw !
    [edit] Non, y'a pas moyen !

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. Différences entre Delphi et Visual Basic ?
    Par Anonymous dans le forum Débats sur le développement - Le Best Of
    Réponses: 75
    Dernier message: 30/03/2009, 20h09
  2. Réponses: 1
    Dernier message: 13/05/2002, 09h19
  3. [Kylix] Migration delphi -> kylix
    Par Christian dans le forum EDI
    Réponses: 1
    Dernier message: 03/04/2002, 22h50
  4. Réponses: 4
    Dernier message: 27/03/2002, 11h03
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo