Find Programmiersprache verwendet
Was ist der einfachste Weg, um herauszufinden, welche Programmiersprache eine Anwendung geschrieben wurde?
Ich würde gerne wissen, ob Ihre vb oder c++ oder delphi oder .Netto etc aus dem Programm-exe-Datei.
InformationsquelleAutor der Frage veagles | 2008-12-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen PEiD
natürlich, wenn Sie verwendet ein packer, einige Auspacken müssen, werden zuerst gemacht 🙂
InformationsquelleAutor der Antwort John T
Starten Sie es und prüfen, welche Laufzeit-DLLs verwendet es mit Process Explorer.
Wenn das nicht alles sofort offensichtlich ist, suchen Sie im Internet nach verweisen auf diese DLLs.
Meisten Zerleger (einschließlich Olly glaube ich) kann leicht zeigen Sie den text in eine EXE oder DLL, und das kann auch manchmal einen Anhaltspunkt geben. Die Delphi-Typen sind oft mit einem Präfix T, wie in TMyClass.
Wenn es nur eine kleine ausführbare Datei mit keine DLL-Verweise und kein text könnten Sie sein SOL. An diesem Punkt würden Sie brauchen, um für die Idiome von bestimmten Compilern, und es wäre meist Rätselraten.
InformationsquelleAutor der Antwort Ed Guiness
Es ist eine Kunst zu erkennen, in welcher Sprache ein Programm geschrieben wurde. Es ist möglich, aber es gibt keine harten und schnellen Regeln. Es braucht viel Erfahrung (und es führt auch zu der Frage "Warum möchten Sie..." aber hier sind ein paar Ideen, wie Sie gehen über es.
Was du suchst ist eine "Signatur". Die Unterschrift könnte die eine bestimmte Zeichenfolge enthalten ist, durch den compiler, einen Verweis auf eine API, die ist Recht Häufig in den Programmier-tool verwendet werden, oder sogar ein Stil der Programmierung, die gemeinsam für die Werkzeuge, die verwendet wird, sichtbar in die Saiten in der Applikation enthalten.
Darüber hinaus gibt es Arten, wie eine Anwendung bereitgestellt wird: verschiedene Konfigurations-Dateien in das deployment-Verzeichnis, Dll-Dateien und Assemblys und sogar Bilder, Verzeichnisse oder Symbole.
Java-Anwendungen, verpackt in einem self-launching ausführbare Datei enthält Verweise auf java-libs, und wahrscheinlich werden bestimmte Bibliotheken oder Dateien enthalten, die auf das gleiche Verzeichnis zeigen, dass es java.
Wie bereits in anderen Antworten eine verwaltete assembly, zeigen bestimmte Anzeichen: Sie können es öffnen in Reflektor etc. Es ist zwar richtig, dass c# und VB sind "austauschbar" einmal zusammengestellt, ist es nicht wahr, dass Sie identisch sind. Wenn Sie Reflektor zu zerlegen VB-code ein, den Sie ziemlich oft sehen, dass die Versammlung verweist auf die Microsoft.VisualBasic.dll Montage. Sie werden in der Lage sein zu sagen, der Unterschied zwischen Mono Anwendungen, da Sie wahrscheinlich enthalten die mono-Baugruppen.
Viele Compiler montieren und link-code in bestimmter Weise und hinterlassen Ihre Spuren hinterlassen. Zum Beispiel, die Prüfung einer ausführbaren Windows-Datei mit "strings: Registerkarte Process ExplorerSie werden sehen, eine Menge von strings. Mit diesen können Sie in der Lage, um zu bestimmen, Programmierung, Stile, Methoden aufgerufen, Fehler-oder trace-Methoden, die innerhalb der exe-Datei.
Ein Beispiel ist, dass Compiler verwenden unterschiedliche Mechanismen für die Lokalisierung: Microsoft speichert die lokalisierten Zeichenfolgen in XML-Dateien oder sonstige Dateien. Andere Compiler verwenden eine andere Taktik.
Weiteres Beispiel ist c++ die name manglings. Die CodeWarrior compiler verwendet einen anderen Algorithmus zu zerfleischen die Namen der member-Variablen und-Funktionen einer call-als Visual Studio.
Ich nehme an, man könnte ein Buch schreiben über das Thema genau zu bestimmen, die Linie einer ausführbaren Datei. Dieses Thema wäre wohl die Bezeichnung "Programmierung Archäologie".
InformationsquelleAutor der Antwort Blue Toque
Sie könnten versuchen, mit Hängtum zu sehen, was runtime-Abhängigkeiten hat, die möglicherweise geben einige Hinweise.
InformationsquelleAutor der Antwort Paul Dixon
Der einfachste Weg ist es, Fragen an die Entwickler des Programms. Es erfordert keine Kenntnisse und utility-Programme.
InformationsquelleAutor der Antwort HS.
InformationsquelleAutor der Antwort Uli Gerhardt
Kompilierte Sprachen (damit meine ich keine Skriptsprachen oder Java .NET, etc.) die in CPU-bauanleitung, die im wesentlichen eine one-way-Konvertierung. Es ist in der Regel nicht möglich zu bestimmen, in welcher Sprache ein Programm geschrieben wurde. Die Verwendung eines dependency walker, Sie könnten bestimmen, welche runtime-Bibliothek wurde das Programm laden (wenn überhaupt) und daher bestimmen, welche Sprache er benutzt (zB MS Visual C++ 9 verwendet msvcr90.dll).
InformationsquelleAutor der Antwort jgottula
können Sie prüfen, ist, dass ein .net-assembly oder nicht, indem Sie versuchen, zu öffnen mit ildasm.exe tool
InformationsquelleAutor der Antwort Arsen Mkrtchyan
Im Allgemeinen, Sie können nicht.
Wenn Sie können, laden Sie Sie in Reflektorwissen Sie, es ist eine verwaltete assembly.
InformationsquelleAutor der Antwort i_am_jorf
Das ist eine gute Frage. Es gibt keinen Allgemeinen Weg, zu sagen, aber ich Wette, die meisten Compiler und Bibliotheken hinterlassen Sie eine Marke in die resultierende EXE-Datei. Wenn Sie wollte, zu verbringen eine Menge Zeit damit, Sie sich versammeln konnten, ein Haufen Ex-freundinnen, geschrieben im bekannten Sprachen, und suchen Sie nach gemeinsamen Saiten. Ich würde Bild Sie würde etwas finden.
Abhängigkeit Walkerdie jemand anderes erwähnt, wäre ein guter Weg, um suchen Sie nach verräterischen Abhängigkeiten, wie Versionen von "MSVCRT", etc
InformationsquelleAutor der Antwort Chad Okere
ich würde versuchen, das .exe-Datei durch ein 'strings' - Programm zu verschiedenen Hinweise.
InformationsquelleAutor der Antwort Scott Evernden
Wenn ich mich richtig erinnere PE Explorer Disassembler gibt einige Informationen über compiler, der schafft nicht gegeben .net-und java-binary, für .net use Reflektor oder ILDAsm tool
InformationsquelleAutor der Antwort Arsen Mkrtchyan
Hier ist eine große video erklären, wie Sie entpacken kann die .exe-Datei, wenn es mit UPX gepackt. Software, die Sie benötigen: PEiDOllyDbgImpREC
Nachdem Sie entpackt ist die binary Datei, die Sie in der Lage sind zu überprüfen, mit PEiD, welche Programmiersprache die binary hat.
InformationsquelleAutor der Antwort John Smith
Der einfachste Weg, die ich gefunden habe (zumindest in Computerspielen) war zu sehen in den "redist" - Ordner geschachtelt innerhalb des Spiel-Ordners. Es könnte sein, offensichtlich für einige von Euch, die mehr Erfahrung in der Programmierung selbst, sondern der spezifische Zweck der MSI in diesem Ordner zu ermöglichen setup.exe Datei, um automatisch installieren Sie die Voraussetzungen für das Spiel selbst.
Zum Beispiel:
In Empire Total war, es ist ein MSI-genannt "vcredist_x86-sp1.exe". Dies zeigt an, dass das Spiel/Programm wurde geschrieben in Microsoft "Visual C 2005".NET Framework (in der Regel).
In der Tat, wenn Sie öffnen Sie die MSI/EXE-Datei, der installer sollte sofort zeigen die Sprache ist es geschrieben und welche version.
Der Grund, warum ich vertraut bin, ist, weil ich code in C# und VB in der .NET Framework, und wir automatisch zu installieren, die Voraussetzungen für unsere business-app.
Hoffe, das hilft!
InformationsquelleAutor der Antwort ITGuyOU