PDA

View Full Version : Con cosa è stato creato?


Friscky
01-02-2006, 14:37
Ciao a tutti....come faccio a scoprire in che linguaggio è stato creato un programmino?....un amico mi ha mandato un programmino, e io volevo risalire al linguaggio per apportare alcune modifiche...come posso fare?...nulla di coperto da diritti d'autore comunque.... :confused: :confused: :confused:

andbin
01-02-2006, 14:56
Ciao a tutti....come faccio a scoprire in che linguaggio è stato creato un programmino?....un amico mi ha mandato un programmino, e io volevo risalire al linguaggio per apportare alcune modifiche...come posso fare?...nulla di coperto da diritti d'autore comunque.... :confused: :confused: :confused:
Se il tuo amico ti ha dato solo un file eseguibile (e non i sorgenti) non credo proprio che tu riesca ad apportare delle modifiche al programma!

Comunque per sapere in che linguaggio è stato creato un programma, una vaga possibilità ci sarebbe. Più che il "linguaggio" potresti al massimo scoprire quale compilatore/ambiente di sviluppo è stato usato.
Analizzando l'eseguibile con un editor esadecimale, puoi scoprire se ci sono dei nomi, stringhe di testo, ecc... che permettono di capire cosa è stato usato.

Esempio di dump di un eseguibile creato con il Borland C++ Compiler 5.5:
00009a70 40 00 00 02 b8 7e 40 00 00 03 c8 7e 40 00 c4 08 @...¸~@...È~@.Ä.
00009a80 e8 ef fe ff 42 6f 72 6c 61 6e 64 20 43 2b 2b 20 èïŝ˙Borland C++
00009a90 2d 20 43 6f 70 79 72 69 67 68 74 20 31 39 39 39 - Copyright 1999
00009aa0 20 49 6e 70 72 69 73 65 20 43 6f 72 70 6f 72 61 Inprise Corpora
00009ab0 74 69 6f 6e 00 00 00 00 00 b0 40 00 54 b0 40 00 tion.....°@.T°@.
00009ac0 54 b0 40 00 7e b0 40 00 01 00 00 00 00 00 00 00 T°@.~°@.........

Esempio di dump di un eseguibile creato con Visual C++:
0001cbf0 6c 6f 61 64 65 64 0d 0a 00 00 00 00 00 00 00 00 loaded..........
0001cc00 4d 69 63 72 6f 73 6f 66 74 20 56 69 73 75 61 6c Microsoft Visual
0001cc10 20 43 2b 2b 20 52 75 6e 74 69 6d 65 20 4c 69 62 C++ Runtime Lib
0001cc20 72 61 72 79 00 00 00 00 00 00 00 00 52 75 6e 74 rary........Runt

Friscky
01-02-2006, 16:02
Si beh, ma una volta che ho tutto ciò posso trovare un decompilatore adeguato....o sbaglio?...così risalgo al sorgente....

andbin
01-02-2006, 16:17
Si beh, ma una volta che ho tutto ciò posso trovare un decompilatore adeguato....o sbaglio?...così risalgo al sorgente....
Un decompilatore al massimo potrebbe tirarti fuori un listato in linguaggio Assembly dell'eseguibile.

Ammesso che tu riesca ad ottenere un listato Assembly "pulito", chiaro e che possa essere riassemblabile con un assemblatore (TASM, MASM, ecc...) e ammesso che tu conosca molto bene l'Assembly, allora qualcosa forse ci puoi fare.

Fenomeno85
01-02-2006, 17:52
Si beh, ma una volta che ho tutto ciò posso trovare un decompilatore adeguato....o sbaglio?...così risalgo al sorgente....

no non ce la farai mai come ti ha detto anche andbin ... dovresti possere delle conoscenze di assembly allucinanti ;)

~§~ Sempre E Solo Lei ~§~