Ist die Exe/Dll für 32 oder 64 Bit?

  • WhichMachine: Ein kleines Tool von mir, um herauszufinden, ob eine ausführbare Datei (Exe, Dll) für 32 oder 64 Bit Windowssysteme compiliert wurde. Zu finden bei den Tools auf meiner Webpage.

    Gruß, Frank

  • Woraus schließt Du denn, dass so ein Tool nicht gebraucht wird?

    Nicht verzagen. Kato fragen!
    Wo geholfen wird, da fallen Späne...

  • Vermute ich einfach mal. Wenn jemand unter 32 Bit eine 64 Bit-Anwendung öffnet, erhält er eine entsprechende Meldung. Unter 64 Bit laufen 32/64 Bit- Anwendungen.


    Ist wohl nur für Dll's interessant, und in dem Fall nur für Programmierer. :)

    Gruß, Frank

  • Zitat von Frabbing;853692


    Ist wohl nur für Dll's interessant, und in dem Fall nur für Programmierer. :)



    So sehe ich es auch, da 32 Bit auch unter 64 Bit läuft.
    Und für uns Programmierer gibt es momentan so gut wie
    keine 64 Bit - DLLs. Ist ja auch nicht nötig, solange XProfan
    keine 64 Bit unterstützt.

    Hast ja auch selbst gesehen, wie schwierig eine Umsetzung
    ist, als ich dich nach einer 64 Bit - Listview.dll fragte.

    Die hätte ich dann gerne mit PureBasic 64 Bit eingebunden,
    weil damals ein Arbeitskollege unbedingt mein Programm in
    64 Bit haben wollte.

  • Vielleicht sollte ich die Dll umschreiben nach PB. ;)
    Man kann auch in Assember Quellcode schreiben, der für 32 und 64 kompiliert werden kann. Zum damaligen Erstellungszeitpunkt waren die Infos natürlich nicht verfügbar.

    Gruß, Frank

  • Zitat von H.Brill;854078

    Dann kannste ja auch gleich eine
    PB-Lib draus machen. ;)
    Der Quellcode bleibt ja der gleiche.


    Wo die UserLib dann nach jeder PB Version nicht mehr funktioniert?
    Wenn, dann sollte er auch den Quellcode mitliefern, ansonsten lieber
    nur eine DLL! Mit UserLibs ohne Quellcode begibt man sich in Abhängigkeiten
    zum Autor. Ist wie mit einer PCU die unter XProfan X2 nicht mehr läuft, der
    Autor kann nicht updaten, da im X2 fehlt und schon kannst Du Deine
    Anwendung nicht umstellen auf X2.


    Ich bevorzuge auch UserLibs, aber nur wenn der Quellcode bei ist und ich
    die UserLib selber updaten kann.

  • Aus dem Grund benutze ich auch nie PCUs ohne Quellcodes (in Dlls benutze ich leider manchmal externe Libraries, was sich bei der Umstellung zu einem anderen Bitsystem rächt)


    Die Abhängigkeit zu einer Dll ist aber noch größer, weil sie vielleicht in einer Sprache geschrieben ist, die man selber nicht beherrscht und besitzt. Da nützt einem dann auch kein Quellcode.

    Gruß, Frank

  • Zitat von Frabbing;854092


    Die Abhängigkeit zu einer Dll ist aber noch größer, weil sie vielleicht in einer Sprache geschrieben ist, die man selber nicht beherrscht und besitzt. Da nützt einem dann auch kein Quellcode.


    Und wenn z.B. PB hundert Updates erfährt, kann man die DLL ohne Änderungen der DLL weiternutzen, eine UserLibs aber nicht, da diese ja Abhängikeiten zur verwendeten PB Version hat. Eine Funktion ändert ihre Syntax, z.B. ein Parameter wird Optional und schon läuft keine UserLib mehr, die mit der vorherigen Version erstellt wurde. In einer DLL sind alle Abhängigkeiten aufgelöst, da kann sich nur die Syntax zur Nutzung einer DLL verändert haben. Der Quellcode ist also unerheblich (ausser bei Wechsel der Bitbreite, was ja nicht all zu oft vorkommt innerhalb eines Programmes).

  • Erweiterungsvorschläge:

    • Überprüfung, ob eine Datei eine ausfüherbare Datei ist.
    • Überprüfung, ob eine ausführbare Datei eine EXE oder DLL ist (e_lfanew + 20 oder _IMAGE_OPRTIONAL_HEAFDER_ - 4)
    • Vielleicht bekommst du es sogar noch hin herauszufinden, ob die ausführbare Datei ein Treiber oder eine DLL ist.
    • Parametergesteuerte Ausgabe des Ergebnisses in eine Textdatei (Dateiname, Dateityp, Größe, evtl. Signatur, Attribute, Dateigröße, Ladeadresse, Sektions, Einsprungsadresse ...)
  • Nö - ich will eine Anzeige, ob die Datei eine EXE ist oder eine DLL.
    Desweiteren wäre es interessant, einen ganzen Ordner durchsuchen zu lassen - das Ding könnte dann alle Dateien listen, die EXE, DLL oder Treiberdateien sind (egal, welche Enduing die haben).

  • Zitat von Frabbing;854111

    Und um weitere Arbeit zu investieren sehe ich kaum vorhandenes Interesse. Das Tool nutzt jetzt ja schon kaum jemand. ;)


    Ist auch kein Wunder, das braucht - so wie das ist - keiner. Es wäre aber aber vielleicht gant interessant zu wissen, welche umbenannten ausführbaren Dateien sich zum Beispiel im Ordner %TEMP% befinden - und dann wird die Sache schon interessanter...

  • Ich dachte da an so was, bloß mit noch besseren Infos (Resource zum Beispiel):


    Das wäre auf jeden Fall interessant...

  • Bitte bitte - schreib so was... :)

    • Kleine GUI dranpacken und optional ohne GUI starten und Ergebnisse in Textdatei schreiben lassen (Parameterabhängig).
    • Testen lassen, ob die zu untersuchende Datei eine EXE / ein Treiber oder eine DLL ist (wie man das macht, steht oben).
    • Die wichtigsten Infos zusätzlich aus der Resource holen (wenn vorhanden).
    • Signatur auslesen, wenn vorhanden.
    • Weirere Dateiinfos anzeigen (Größe, Attribute,...)

    Wenn du Leute erst mal merken, was für EXE Dateien bei denen in den Ordnern rumgurken, die gar nicht .EXE heißen, hast du hier ZIG Rückmeldungen... :)

  • Mal sehen, wenn der Rücken wieder besser ist. Für's Erste muss ich mich einschränken.
    Aber natürlich schonmal danke für die Anregungen! :)

    Gruß, Frank

  • Hab gerade was im PureBasic Forum gefunden
    und mal für Profan umgesetzt (ist ja nur API).

    Vielleicht kann man es mal testen und evtl. kann
    es ja jemand brauchen.



    Und für unsere Anfänger haben wir mal
    wieder ein Beispiel, wie man mit der
    WIN-API arbeitet.

  • Hallo Heinz...
    Modifiziert für ältere XProfan Versionen:



    Funzt gut, brauche aber mehr.

  • Zitat von H.Brill;855656


    Vielleicht kann man es mal testen und evtl. kannes ja jemand brauchen.


    Hab mal getestet: Gebrauchen kann man das schon, Franks Sache funktioniert aber scheinbar besser und korrekter (benutze vermutlich fast die selbe Technik wie Frank in eigenen Codes). Habe hier eine Malware DLL (nicht geladen), bei dem dein Code nicht erkennt, das es eine ausführbare Datei ist.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!