Domanda:
Come devo fare per cercare di capire il linguaggio di programmazione utilizzato?
asheeshr
2013-03-25 19:41:09 UTC
view on stackexchange narkive permalink

Ho un file eseguibile e vorrei capire in quale linguaggio di programmazione è stato scritto il codice sorgente. Il primo passo sarebbe usare un disassemblatore.

Cosa si dovrebbe fare dopo?

Inoltre, ho letto che determinare quali librerie vengono utilizzate durante il runtime sarebbe un buon indicatore del linguaggio di programmazione utilizzato. Come dovrei determinare quali librerie vengono utilizzate?

Possibilmente correlato: [Quali suggerimenti nel codice macchina possono indirizzarmi al compilatore che è stato utilizzato per generarlo?] (Http://reverseengineering.stackexchange.com/questions/11/what-hints-in-machine-code-can- punto-me-al-compilatore-che-era-usato-per-generi) e [Cos'è una firma FLIRT?] (http://reverseengineering.stackexchange.com/questions/175/what-is-a- flirt-firma /)
Qual è l'obiettivo di? Le cose potrebbero cambiare drasticamente da un sistema operativo all'altro (e anche dagli strumenti).
@Emmanuel Ubuntu
È possibile utilizzare altri strumenti di identificazione del compilatore: Categoria: Identificatori del compilatore - Libreria di strumenti RCE collaborativa http://www.woodmann.com/collaborative/tools/index.php/Category:Compiler_Identifiers
Due risposte:
#1
+9
cb88
2013-03-25 20:03:31 UTC
view on stackexchange narkive permalink

In realtà ti suggerirei di visualizzare l'eseguibile con un visualizzatore / editor esadecimale. In questo modo puoi vedere subito se il compilatore ha incorporato delle stringhe come suggerimenti. Dovresti anche considerare che alcune lingue usano il C come linguaggio intermedio. Un esempio potrebbe essere f2c un compilatore Fortran 77 to C. Sembra che f2c colleghi anche una libreria di supporto, quindi dovresti cercarla.

Per determinare quali librerie sono usate su Linux puoi usare il comando ldd per binari dinamici e nm per quelli statici per scaricare i simboli. Inoltre c'è una domanda correlata a SO.

Ecco un blog interessante di un collega membro di RE su come il binario che hai potrebbe non provenire nemmeno da un compilatore e come riconoscerlo.

Buona risposta, saresti sorpreso di quanto spesso funzioni questo approccio a bassa tecnologia! A parte questo, anche nel caso `f2c` puoi probabilmente vedere i pattern spot usati dal convertitore per rappresentare concetti Fortran o convertire da Fortran a convenzioni C.
#2
+9
Mick
2013-03-25 21:04:27 UTC
view on stackexchange narkive permalink

Ci sono diversi strumenti che ho utilizzato:

  1. PEiD (PE iDentifier) ​​
  2. Ho anche seguito questo guide e le firme PEiD convertite in firme YARA e usate semplicemente YARA
  3. TRiD può anche fornire un altro modo per identificare il compilatore utilizzato

Vale anche la pena ricordare che se invii un file a Virus Total, verrà eseguito TRiD contro il tuo binario.

Questi strumenti non sono sempre definitivo, ma generalmente possono darti il ​​compilatore corretto (e quindi la lingua) che è stato utilizzato.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...