In welcher Sprache wurde eine Anwendung oder Library geschrieben?



  • Hallo!

    Gibt es eine Möglichkeit bei einer kompillierten Win32 EXE oder DLL herauszufinden in welcher Sprache der Code ursprüglich geschribene wurde, bzw. einfach nur herauszufinden ob der Code OO (also Klassen enthält) oder rein prozedural ist?

    Einige wollen jetzt sicher Hacker-Alarm auslösen. Ich kann diese Leute aber beruhigen. Mich interessiert rein ob ein bestimmtes Programm OO aufgebaut ist oder nicht.



  • Gibt es eine Möglichkeit bei einer kompillierten Win32 EXE oder DLL herauszufinden in welcher Sprache der Code ursprüglich geschribene wurde, bzw. einfach nur herauszufinden ob der Code OO (also Klassen enthält) oder rein prozedural ist?

    Nicht das ich wüsste.

    MfG

    GPC



  • Du kannst mit einem HexEditor nach Compilernamen suchen, z.B. steht bei meinen exen Strings wie 'Microsoft Visual C++ Runtime' drin, die ja mit dem MSVCC ausgeliefert werden.
    Auch viele Libraries verraten sich durch entsprechende Strings.
    ('Copyright' ist ein gutes Suchwort)

    Da gewisse BibliothekenAPIs nur für bestimmte Sprachen vorhanden sind, kann man so begründete Vermutungen über die Sprache machen.



  • Du kennst nicht rein zufällig einen guten HexEditor?

    Eigentlich möchte ich ja nur aus reinem Interesse wissen in welcher Sprache der Windows Kernel und die .NET CLR (nicht die Libraries rund herum, sondern die eigentliche Runtime mit JIT = mscoree.dll und mscorjit.dll) geschriben sind. Mir ist schon klar, dass ein wenig Assembler bei beiden dabei ist, aber mich interessiert auch eher ob der Rest in C oder C++ geschrieben ist.



  • Betriebssysteme sind in der Regel in C geschrieben, die plattformspezifischen Sachen natürlich in Assembler.

    Ansonsten kann man Sagen das sehr viele Anwendungen unter W32 in C++ geschrieben sind. C ist heutzutage zwar immer noch auf x86 beliebt, diese Leute sind aber meistens dem oldschool, UNIX und/oder Hacker Umfeld zuzuschreiben.



  • Nachtrag:
    Vielleicht hilft es Dir: Die Java VM(und somit auch deren JIT) sind in C++ geschrieben.



  • Die Sachen sind in C oder C/C++ programmiert, aber niemals in C++. C++ kann Microsoft nämlich nicht.



  • OK, das wollte ich wissen. Also vielen Dank an alle (außer hihi, denn der Kommentar war außer dumm nichts).



  • DerUnwissende schrieb:

    OK, das wollte ich wissen. Also vielen Dank an alle (außer hihi, denn der Kommentar war außer dumm nichts).

    fick dich



  • Da hänge ich mal gleich eine Frage dran: Mal abgesehen von der riesigen bereits existierenden Code Base bei den meisten Systemen, warum sind OS Kernels eigentlich meistens in C und nicht in C++ geschrieben?



  • tommazzo schrieb:

    Da hänge ich mal gleich eine Frage dran: Mal abgesehen von der riesigen bereits existierenden Code Base bei den meisten Systemen, warum sind OS Kernels eigentlich meistens in C und nicht in C++ geschrieben?

    Gegenfrage: Warum C++ und nicht C? Du kannst auch objektorientiert in C programmieren. Schau Dir einfach Teile des Linux Kernels an(Stichwort VFS).

    Ein paar Sachen die trotzdem noch für C sprechen:

    • gute C Compiler gibt es auf fast allen Architekturen
    • die erfahrenen OS-Entwickler sind großteils C-Programmierer
    • Du must Dir zuerst Deine gesamte Umgebung(printf, strcmp, etc.) selber schreiben
    • C erzeugt kleinere Binaries
    • C erzeugt aufgrund der Art des Programmierens effizienteren Maschinencode(auch wenn es hier die meisten nicht wahrhaben wollen)

    Habe neulich hier im Linux Forum einen interessanten Link über Linux und C++ gefunden:
    http://www.csh.lkams.kernel.org/pub/linux/docs/lkml/#s15-3



  • Linus Torvalds schrieb:

    In general, I'd say that anybody who designs his kernel modules for C++ is either

    (a) looking for problems
    (b) a C++ bigot that can't see what he is writing is really just C anyway
    (c) was given an assignment in CS class to do so.

    *ggg* 😃



  • OK vielen Dank, ich denke das beantwortet die Sache.



  • such mal nach dem programm
    PEID, das kann dir eventuell ein stück helfen

    MfG RadiatioN



  • Klasse! Genau so etwas habe ich gesucht. Funktioniert zwar nicht immer, aber meistens bringt es recht brauchbare Ergebnisse. Danke!



  • is der hurd kernel nicht OO?



  • ????? schrieb:

    is der hurd kernel nicht OO?

    Keine Ahnung, aber wieso sollten manche Teile nicht OO sein?


Anmelden zum Antworten