Announcement

Collapse
No announcement yet.

Bios daten in Win2000 auslesen.

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Bios daten in Win2000 auslesen.

    Wie gesagt ich muß den BIOS ID String in Win2000 auslesen unter 98 gehts über die Adresse $FEC71 aber bei Win2000 bekomme ich eine Zugriffsverletzung wenn ich diese Adresse auslesen will. Die c´t hatte mal ein Tool rausgebracht die dies aber auch unter 2000 konnte. Nur weiß ich nicht wie die das gemacht haben.
    Please help

    Cu
    Andreas

  • #2
    Entweder über eine nicht dokumentierte Funktion des NT-Layers (ntdll.dll)<br>
    http://www.bendlins.de/nico/delphi/NtRomBios.zip

    Oder über ein 16Bit Hilfprogramm<br>
    http://www.bendlins.de/nico/delphi/RomDump.zip

    Gruß Nic

    Comment


    • #3
      Jup das NtRomBios geht super genau was ich brauche thanx nochmal hätt mir echt nen Wolf suche können

      CU
      Andrea

      Comment


      • #4
        Hab aber nur ein Problem irgendwie gehts doch nich wie ich´s haben will. Hast du da ein paar Tips wie man stumpf die Adresse $FEC71 ausgeben kann in ein Edit. Das andere beispiel ist in Assembler und das kann ich überhaupt nicht. Oder wie übergebe ich die Adresse??? Gibs denn nirgends ne Beschreibung für die Ntdll.dll zumindestens nur die Header damit ich weiß wie ich die abfragen kann.

        Cu
        Andrea

        Comment


        • #5
          Ich mache heute abend eine neue Version fetig mit allen Strukturen, die dort fehlen (die Frage kommt neuerdings öfter)

          Aber wie gesagt, man benötigt Adminrechte damit es funktioniert.

          Gruß Nico

          PS: das ist zwar Assembler, aber im Prinzip wird dieser nur benötigt, um eine 16-Bit COM-Datei zu erstellen, die den Inhalt des BIOS nach STDOUT schreibt, so kommt man dann an die Daten..

          Comment


          • #6
            Ich frag mich nur ob bei den Assembler Code man dann auch Admin rechte braucht. Kann ich den Assembler Code nicht so ummodeln das er mir direkt auf den Bildschirm das gewünschte anzeigt. Oder als Funktion mir dann den inhalt der übergebenen Adresse ausließt. Würd mich mal interessieren ob das mit Assembler einfach geht. Hast du viel Ahnung davon oder wo liegen deine Kenntnisse außer beim BIOS

            Cu
            Andrea

            Comment


            • #7
              Es geht hier nicht um den Assemler, dieser ist nur Form und nicht Inhalt. Wichtig ist das ein COM Modul eine 16Bit DOS Anwendung ist, die anderen Restriktionen unterliegt. In diesem Fall kann man durch eine solch 16Bit DOS Anwendung mehr erreichen als das neuere 32 OS einer 32Bit Anwendung zur Verfügung stellt. Mann könnte nun mit sehr viel Aufwand aus der 32Bit App eine 16Bit DLL mit diesem Code aufrufen (thunking). Der Weg von NicoDE ist aber einfacher, schneller und reicht vollkommen aus. Man könnte demzufolge auch ein altes Pascal für DOS nehmen und das Gleiche in PASCAL coden. Für diese "kleine" Routine ist man aber schneller und effizienter mit Assembler (falls man diesen beherrscht)

              Gruß Hage

              Comment


              • #8
                Zwei gute Nachrichten!

                (1) Microsoft hat sich durchgerungen <b>ZwOpenSection</b> zu veröffentlichen! (damit ist es offiziell =)

                (2) Ich habe es für alle, die sich mit diesem Thema nicht auseinandersetzen wollen/können in eine Unit und einfache Funktionen gekapselt, inklusive Auslesen von Standardtypen (string, LongLong, DWord, Word, Byte)<br>
                http://www.bendlins.de/nico/delphi/BiosHelp.zip (~14KB)

                Gruß Nico

                PS: Dies ist mein halboffizielles Geschenk an die Delphi-Gemeinde, ab morgen bin ich nicht mehr in Berlin -- man schreibt sich..

                Comment


                • #9
                  Zwei gute Nachrichten!

                  (1) Microsoft hat sich durchgerungen ZwOpenSection zu veröffentlichen!<br>
                  (damit ist es offiziell, ich muß zugeben, daß ich lange nicht danach gesucht habe, aber scheint erst mit dem XP-DDK rausgekommen zu sein =)

                  (2) Ich habe es für alle, die sich mit diesem Thema nicht auseinandersetzen wollen/können in eine Unit und einfache Funktionen gekapselt, inklusive Auslesen von Standardtypen (string, LongLong, DWord, Word, Byte)<br>
                  http://www.bendlins.de/nico/delphi/BiosHelp.zip (~15KB)

                  Gruß Nico

                  postum scriptum: so, ich bin jetzt erstmal ne Weile weg =) man schreibt sich..

                  Comment


                  • #10
                    "Flat thunking" (32->16) ist unter NT nicht mehr möglich, nur noch "General thunking" (16->32).

                    Danke für die gute Erklärung, hätte es nicht besser beschreiben können.<br>
                    Ich habe diesen Weg gewählt, da ich die Verwendung eines zusätzlichen Compilers (außer Delphi) vermeiden wollte.<br>
                    Ist zwar nicht ganz einfach mit einem 32bit-Compiler 16bit Code zu generieren, aber irgendwie geht's schon bei einfachen Sachen =)

                    Gruß Nic

                    Comment


                    • #11
                      scheint keiner zu brauchen, nehm' ich es wieder vom Server...

                      Gruß Nic

                      Comment


                      • #12
                        Also mir hat´s geholfen und auch sofort funktioniert. Wie könnte es auch anders sein

                        Gruß
                        Andrea

                        Comment

                        Working...
                        X