Newsgroup: it.comp.lang.c
Titolo: scusate ancora HELP!

scusate ancora,ma in questo periodo mi vengono dubbi su dubbi e
interrogativi nuovi.Eccone un altro.
Si puņ passare per esempio dal file EXE di un programma compilato al suo
codice sorgente?? (scusate la domanda da niubbo,ma č un po' che ho questo
tarlo)

 sorgente?? 
  In linea di massima: no. Da un file eseguibile, al massimo, puoi
recpurare il sorgente /assembly/; l'equivalente C e` praticamente
impossibile, anche se qualche programma puo` provarci (o sostenere di
riuscirci).
  Inoltre, considera che, senza l'autorizzazione di chi ne detiene i
diritti intellettuali, compiere tale operazione e` un reato.
	Alla prossima,
		Marco

diritti intellettuali, compiere tale operazione e` un reato.
Sicuro che disassemblare un eseguibile sia un reato ?!?
Non ci vedo molta differenza tra l'eseguibile ed il codice assembly
proveniente da un disassemblatore !!!
Alex

proveniente da un disassemblatore !!!
Il codice prodotto da un assemblatore e' una trasformazione
legale dal codice sorgente (che conosce solo l'autore del
programma).  Quello ottenuto da un dissassemblatore e' un
tentativo di risalire al codice sorgente.  
E' MOLTO diverso.
--
Andrea Laforgia - walkietalkie(at)
libero.it
#exclude <windows.h>

E' MOLTO diverso.
Beh, ma in fondo il codice non è sempre lì, scritto solo in 2 modi diversi?
Anzi, a quello che so io (che probabilmente non aderisce al 100% alla
realtà) le istruzioni assembly sono le stesse che la CPU sa eseguire, e che
differenza fa tra il vedere un "jne" o la relativa sequenza di codice
binario? In fondo chi distribuisce il programma ci da' la possibilità di
leggere il codice sorgente compilato, come la da' al computer (in realtà non
penso che stia scritto da nessuna parte, anche se è il frutto della mia
mente contorta, il fatto che il computer che esegue un programma sia una
macchina che funziona come la vediamo noi, potrebbe anche essere una persona
che segue passo passo il codice e disegna su un allegro foglietto l'output).
Ora, un listato C ed un listato assembly sono diversi, credo che ci siano
costrutti che in assembly non siano supportati direttamente, e con il C++ la
cosa è ancora più estrema, ma tra assembly e sequenze di uni e di zeri quale
consistente differenza passa, esistendo un rapporto diretto 1:1?
(non scrivo questo per polemica, per controbattere, etc, sono seriamente
interessato alla cosa, specie dal 
p.to
 di vista legale).
Lanugo

che segue passo passo il codice e disegna su un allegro foglietto l'output).
Non e' la stessa cosa.  Il computer non ha interesse nel
cercare di capire come funziona un programma.


codice per capire che cosa c'e' dietro.
anche se devio un po' dal discorso "disassemblatori" per tornare al
reverse engineering: ma sei sicuro che il reverse engineering sia un
reato? Per quel che ne so io hanno dovuto fare proprio questo per
capire, ad esempio, quale fosse il formato di M$ Word e potere aprire
quei file in StarOffice, oppure per capire quale fosse il protocollo
usato da Napster per poter creare client compatibili. Vuoi dire che
quei prog sono tutti illegali? (e che, nel caso di SOffice, la Sun sia
condannabile?)
Anto
--
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.6, higher than 98% of all previous test takers.
C Language: 3.32, higher than 79% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it

(e che, nel caso di SOffice, la Sun sia condannabile?)
Assolutamente si'.

 Il che non vuol dire che sono azioni legali.
   Per quanto riguarda Word, la Microsoft ha pubblicato tutto cio` che 
era necessario per permettere la lettura dei suoi file: sull'OLE e sui 
/framework/ COM e ActiveX c'e` una letteratura immensa.
	Alla prossima,
		Marco

/framework/ COM e ActiveX c'e` una letteratura immensa.
e StarOffice sotto linux utilizza ActiveX e COM per leggere i file
.doc? ;-)


Assolutamente si'.
non voglio certo scatenare flames, però allora non ti sembra strano
che M$ non abbia fatto causa a Sun? E non ti sembra strano che la
stessa Sun abbia scelto di fare un'azione palesemente illegale, stando
a quello che dici tu?


.doc? ;-)
Marco ti ha appena detto che MS ha rilasciato le specifiche
dei file di documento.


un'azione palesemente illegale, stando a quello che dici tu?
Se non ti fidi di quello che dico non posso farci niente, ma
non staro' qui a discutere ulteriormente.
Il reverse engineering e' un reato sia all'estero che in
Italia e questo e' poco ma sicuro.


cercare di capire come funziona un programma.
Ah, ho capito, credo. La cosa vietata è smontare per cercare di capire come
funziona, non smontare in sé. Ok, ora mi è chiaro.
Grazie,
Lanugo

Italia e questo e' poco ma sicuro.
Bisogna tenere conto che il fatto che uno scriva qualcosa sul
suo contratto di licenza non significa che questa cosa abbia
valore legale. Immagina per assurdo che uno scriva che chi
copia il programma e' punibile con la pena di morte ... :DDDD
Ho anche letto da qualche parte che il divieto di reverse
engineering non puo' essere applicato quando questa cosa si
rende necessaria per aumentare l'integrazione di un prodotto
con altri prodotti esistenti. Non ricordo il contesto preciso
e quindi non so essere piu' preciso... :(
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

copia il programma e' punibile con la pena di morte ... :DDDD
Che c'entra ?  Io distribuisco la licenza con la quale
stabilisco quali sono i termini d'uso del programma, ma non
posso inventarmi regole che contrastino con le leggi
vigenti.


vigenti.
Esatto... in particolare tu non puoi privare di un diritto
chi acquista il tuo programma se questo diritto e' sancito
da una legge. Nota che addirittura alcune licenze dicono
espressamente che in alcuni stati alcuni dei vincoli imposti
dalla licenza non valgono (credo che lo dicano perche' per
essere autorizzati a vendere in quegli stati la legge li
obbliga ad aggiungere questa dicitura).
Mi sembra di ricordare di aver letto che e' un tuo diritto
il cercare di fare funzionare quanto hai acquistato assieme
ad altre cose in tuo possesso. Sotto questa voce si faceva
ricadere anche il diritto di fare il reverse engineering
del software se questo era necessario e limitatamente
all'interoperabilita'.


all'interoperabilita'.
Ho trovato un riferimento:
http://europa.eu.int/eur-lex/en/lif/dat/1991/en_391L0250.html
Il capitolo in cui si parla del reverse engineering e' il 6.


dei file di documento.
da come ho capito il senso della frase di Marco, la MS ha rilasciato
le specifiche per aprire un file Word attraverso oggetti OLE e via
dicendo. Quindi non ha rilasciato le specifiche del formato.


all'interoperabilita'.
Mi sembra molto strano, hai qualche fonte ufficiale ?


Il capitolo in cui si parla del reverse engineering e' il 6.
Ho trovato il riferimento ed e' tuttavia specificato che :
"[...]the provisions of this Article may not be interpreted
in such a way as to allow its application to be used in a
manner which unreasonably prejudices the right holder's
legitimate interests or conflicts with a normal exploitation
of the computer program."


of the computer program."
Non afferro esattamente il senso di questa parte... comunque
volevo solo dire che non e' possibile impedire il reverse
engineering in quanto tale; quello che determina se la cosa
e' legale o meno e' lo scopo. Ci sono scopi per cui il
reverse engineering e' permesso per legge anche se la
licenza dice diversamente. Tutto qui.
E' chiaro che in contesti di questo tipo conta la valutazione
delle intenzioni innanzitutto. La stessa cosa vale per il
"fair use" nelle violazioni di copyright delle leggi americane:
se pubblico un pezzo di un tuo articolo per farne una critica
tu non puoi farmi causa perche' ho pubblicato qualcosa su cui
tu avevi il copyright. Chiaro che dove termina il "fair use"
e dove inizia la copia non autorizzata lo puo' stabilire solo
un giudice entrando nel merito del singolo caso.


Italia e questo e' poco ma sicuro.
Nulla pero' ti impedisce di farlo, basta che non lo pubblichi in giro,
o se lo metti in qualche programma li nascondi ben bene.
Per Napster e` stato fatto.
bye,
mrmach