2010-03-04 6 views
6

Eventuali duplicati:
Find Programming Language UsedCome identificare il linguaggio di programmazione utilizzato per sviluppare un software?

Così, Ho un'applicazione costituito da un file eseguibile (exe) e una DLL. C'è un modo per scoprire il linguaggio specifico usato per sviluppare questo software. Ho provato ad aprirlo in un disassemblatore, ma il contenuto sembra incomprensibile. Qualche idea?

+2

Duplicato: http://stackoverflow.com/questions/371460/find-programming-language-used –

risposta

1

Improbabile, a meno che non disponga di una libreria runtime significativa. per esempio. Le app VB richiedevano un'enorme DLL con VB nel nome, le app Visual C++ di solito richiedono l'installazione del runtime C++. Ma le lingue moderne hanno obiettivi indipendenti dalla lingua. Anche i file .class di Java possono provenire da un'ampia varietà di lingue di origine.

2
  1. Aprire il file .dll o .exe in un editor esadecimale e cercare la parola "copyright". La maggior parte dei compilatori inserisce nel file eseguibile il messaggio di copyright della libreria runtime in chiaro.

  2. Ottieni IDA pro. http://www.hex-rays.com/idapro/ Questo è lo strumento per lavorare con i binari o fare il reverse engineering. Sarà in grado di scoprire la libreria di runtime e forse anche la lingua.

    Evaulation e versioni freeware dello strumento si possono trovare qui: https://www.hex-rays.com/products/ida/support/download.shtml

1

In linea di principio, la risposta è no. In pratica, tuttavia, ci sono solo un paio di scelte:

  1. Se il nome dll sembra something.dll, è probabilmente un'immagine dll nativa, il che significa che probabilmente è stato scritto in C o C++.
  2. Se il nome dll sembra Namespace.Something.dll, probabilmente è una DLL gestita, il che significa che è stato scritto in un linguaggio .NET (C#, VB.NET, etc.)
  3. È possibile controllare le importazioni dll per ulteriori informazioni. Se la dll utilizza mscoree.dll, allora è una DLL .NET (anche se non segue le convenzioni di denominazione .NET standard). Può anche utilizzare altre DLL specifiche della lingua che forniscono ulteriori indizi.