Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    49

    crittografare oppure offuscare un file

    Eccovi un mio nuovo quesito.

    Ammesso che io abbia un file X dentro una cartella Y, questo file viene usato dal processo Z.

    Ora per il file X esistono tanti programmi per modificare tale file e vederne il sorgente (più o meno), posso offuscare questo file / crittografarlo, in modo che non possa essere modificato o difficilmente reversibile, però allo stesso tempo che possa essere letto dall'applicazione Z ?

    Non so se ho reso l'idea, in sostanza devo modificare dei files di un client di gioco online, siccome il client di gioco deve essere per forza pubblico (sennò gli altri come entrano in gioco), vorrei proteggere i miei files dalla copia e modifica visto che ci ho lavorato molto.. come fare?

    Se provo offuscarlo comunemente il client di gioco poi non legge più questi files... quindi come posso fare?

  2. #2
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    A) Checksum del file e poi lo controlli nel tuo software.
    B) OpenSSL per decriptare il file quando necessario.

    C) A+B
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  3. #3
    Chiariamo la questione: tu vuoi che un certo file rimanga leggibile da una applicazione Z, ma non da una applicazione K (che consente di modificarlo), senza cambiare le specifiche del file (perché né Z né K sono applicazioni tue)? Detta così semplicemente non è possibile, perché, se entrambe le applicazioni supportano il file in questione alla stessa maniera, il file risulta leggibile dall'una se e solo se lo è anche dall'altra.

    Se il punto è offuscare in qualche maniera il file (in modo che rimanga "eseguibile" ma se aperto per modificarlo sia sostanzialmente illeggibile), tutto dipende dal tipo di file in questione.

    Se il punto è crittografare il file, andrà decrittografato "al volo" prima che l'applicazione principale ne faccia uso, nel qual caso tipicamente si fa un "launcher" di qualche genere che si occupa di decrittografare il file e lanciare l'applicazione subito dopo (anche se ovviamente non è una soluzione "a prova di bomba", visto che la chiave di decifratura sta nel launcher e il file in chiaro probabilmente deve essere salvato da qualche parte durante l'esecuzione dell'applicazione).

    Ergo: chiarisci un po' meglio la richiesta (ed eventualmente valutiamo se questa è la sezione più corretta).
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    49
    Ok allora,

    il software Z in questione deve poter leggere ed eseguire il file, però l'applicazione K non deve poter leggere questo file dando possibilità di modifica.

    Quello che interessa a me è impossibilitare la modifica di tale file utilizzando l'applicazione K.

    Ne Z e ne K sono miei applicativi, quindi l'unica via di uscita è una crittograffazione / offuscazione del file in modo che sia sempre eseguibile ma non modificabile.

    Poi altro problema, i file vengono "letti" da Z, in quanto utilizzano una estensione apposita, non sono comuni .exe sono come dei files di "database" per chiarirci, contenenti tutte le informazioni utilizzate da Z.

    Solo che utilizzando K chiunque può accedere a tale files e modificarli a piacimento copiando e rubando così tutto il mio lavoro sudato su tale files.

  5. #5
    Come già detto, per quanto riguarda l'offuscazione (in particolare, fattibilità ed efficacia), tutto dipende dal tipo preciso dei file in questione. Per la crittografia, ho già detto sopra: devi scrivere un launcher di qualche genere che decrittografi il file prima di fare partire il programma Z, altrimenti questo non sa come accedervi.
    (e in ogni caso, anche qui il sistema non è a prova di bomba, dato che la chiave di decrittazione risiede necessariamente nel tuo launcher - di recente ho "smontato" proprio un sistema del genere nel giro di un'oretta, senza avere chissà che competenze specifiche)
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    49
    Io cercavo però un software che potessa fare al caso mio...
    scrivere di mio un launcher non ne ho il tempo.

    Per l'offuscazione come detto in precedenza sono dei file tipo database più o meno.

  7. #7
    Originariamente inviato da faby90
    Io cercavo però un software che potessa fare al caso mio...
    Difficile che ci sia qualcosa di generico, la problematica richiede accorgimenti abbastanza specifici, e se non fornisci dettagli è difficile darti consigli mirati.
    scrivere di mio un launcher non ne ho il tempo.
    Allora sei nella sezione sbagliata... per delegare progetti completi a terzi c'è la sezione "offro lavoro/collaborazione"
    tutto dipende dal tipo preciso dei file in questione
    sono dei file tipo database più o meno

    Come detto, devi spiegare bene di cosa si tratta; partiamo quantomeno da cos'è questo fantomatico programma Z e che cosa sono 'sti file che devi proteggere.

    In ogni caso, per l'offuscazione puoi ottenere qualche risultato se dentro a questo database c'è roba (tipo codice sorgente e simili) che può essere trasformata in roba illeggibile senza perdere funzionalità (tipicamente gli offuscatori rimuovono tutto il whitespace possibile, cambiano i nomi di variabili e funzioni a caso, eccetera). Se invece il problema sono immagini, altri dati non modificabili o il grosso degli elementi deve avere un nome ben definito perché altrimenti il programma Z non è in grado di leggerli è difficile che ci si possa fare alcunché.
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    49
    Originariamente inviato da MItaly
    Difficile che ci sia qualcosa di generico, la problematica richiede accorgimenti abbastanza specifici, e se non fornisci dettagli è difficile darti consigli mirati.

    Allora sei nella sezione sbagliata... per delegare progetti completi a terzi c'è la sezione "offro lavoro/collaborazione"


    Come detto, devi spiegare bene di cosa si tratta; partiamo quantomeno da cos'è questo fantomatico programma Z e che cosa sono 'sti file che devi proteggere.

    In ogni caso, per l'offuscazione puoi ottenere qualche risultato se dentro a questo database c'è roba (tipo codice sorgente e simili) che può essere trasformata in roba illeggibile senza perdere funzionalità (tipicamente gli offuscatori rimuovono tutto il whitespace possibile, cambiano i nomi di variabili e funzioni a caso, eccetera). Se invece il problema sono immagini, altri dati non modificabili o il grosso degli elementi deve avere un nome ben definito perché altrimenti il programma Z non è in grado di leggerli è difficile che ci si possa fare alcunché.
    Allora, vediamo se riesco spiegarmi meglio. Intanto hai frainteso la mia risposta, io non ho nessuna intenzione di delegare il progetto a terzi, solo non ho il tempo di andare a creare un launcher nuovo da zero.

    Per quanto riguarda i files, sono dei files scritti in c++ (credo), con all'interno tutti i dati per fare funzionare Z (nome degli oggetti che trovi in gioco, quest, nome dei mostri, livelli dei mostri, coordinate ecc).
    Il software Z è un client di gioco online.

    Successivamente hanno creato K che è un editor (non un client), in grado di aprire tali files e vederne il contenuto modificandolo a piacimento. Tant'è che io ho utilizzato K per creare e modificare tali files. Ora però siccome su questi files ci ho speso 7 mesi di lavoro, non gradirei che qualcuno rubasse il mio lavoro modificandolo e poi dicendo di averlo fatto loro.

    Se servono altre informazioni disponibile ad aggiungerle.. L'offuscazione può essere una soluzione?

  9. #9
    Originariamente inviato da faby90
    Per quanto riguarda i files, sono dei files scritti in c++ (credo),
    Dubito fortemente che in un gioco si usi come linguaggio di scripting interno il C++, non è che è un qualche linguaggio con sintassi C-like (che so, JavaScript?)
    Il software Z è un client di gioco online.
    Perché continui a rimanere sul vago? Se continui a non dire di che gioco si tratta non andiamo da nessuna parte...
    Ora però siccome su questi files ci ho speso 7 mesi di lavoro, non gradirei che qualcuno rubasse il mio lavoro modificandolo e poi dicendo di averlo fatto loro.
    La "legge zero" della protezione dei programmi è che nessuna protezione è davvero efficace, in particolare se si tratta di una specie di database contenente dei sorgenti in un linguaggio interpretato e dei dati che devono essere necessariamente in chiaro perché Z richiede che siano tali...
    L'offuscazione può essere una soluzione?
    Come già detto, dipende dal linguaggio e da quello che richiede Z per funzionare, ma se continuiamo di "programma Z" e di "credo C++" è difficile dire alcunché...
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.