Protezione software

di il
42 risposte

42 Risposte - Pagina 2

  • Re: Protezione software

    ItaloPasi ha scritto:


    Ciao ragazzi

    Ho provato il programma per decompilare, che tra l' altro non richiede neppure una installazione, e l' unico commento che ho è:

    Incredibile!!!

    Passato il primo stupore poi arriva un certo incazzamento. Ma scusate, alla Microsoft sono pazzi furiosi? Perche hanno messo i sorgenti dentro l' eseguibile? Che motivo c' era di farlo?
    Dentro l'eseguibile NON CI SONO i sorgenti
    La decompilazione consiste nel ricostruire i sorgenti dal codice binario!
    Funziona praticamente con qualunque linguaggio basato su virtual machine (.NET, Java, Visul Basic, Lua, ecc).
    Ovviamente ogni linguaggio ha la sua VM e ogni VM ha il suo modo di essere analizzata per progettare il decompilatore.
  • Re: Protezione software

    ItaloPasi ha scritto:


    Lo sapete che siete forti!

    Perfetto, mi avete fornito delle certezze sull' offuscamento.

    Ora mi potreste svelare i trucchi che usate per impedire la duplicazione abusiva di un vostro programma. Intendo dire, voi vendete il programma al cliente A e volete impedire che lui lo passi al cliente B. Come fate?
    Se si potesse fare, potrebbe essere applicato anche ai CD/DVD video e audio .

    Le soluzioni piu' banali sono cablare nel codice il nome del cliente da usare nelle stampe, se il software prevede una stampa ad uso economico (cioe' dalla stampa il tizio guadagna).

    In questo caso il nome del cliente NONdeve essere presente in modo chiaro, ma deve essere una funzione del tipo:

    blabla =f(nome, key)

    dove key e' una chiave conosciuta da te e dal programma.

    per ricuperare il nome in chiaro, quindi si deve utilizzare

    nome = inverse(f)(blabla, key)


    Se vuoi fare le cose piu' fighe, devi usare dei sistemi di crittografia in chiave pubblica: con la chiave privata cifri il nome del cliente, con la chiave pubblica lo decifri e lo stampi.

    Siccome non e' possibile risalire alla chiave privata dalla pubblica, non e' possibile generare una nuova stringa da sostituire a quella del cliente originario con il nome del nuovo cliente (truffaldino).

    Che cosa e' la crittografia in chiave pubblica? Studia!
    Su Wikipedia trovi un po' di informazioni
  • Re: Protezione software

    migliorabile ha scritto:


    Le soluzioni piu' banali sono cablare nel codice il nome del cliente
    Quello di inserire il nome dell' utente (e magari anche il nome di chi ha sviluppato il software) è una buona idea, oltre che nelle stampe lo puoi mettere anche nella schermata principale, magari accompagnato da un logo, secondo me in genere basta a diassuadere dal farne una copia. Certo dipende dal tipo di programma e dal tipo di cliente. Pensando alle situazioni che conosco, non me lo vedo un cliente che usa un software col nome di un suo concorrente.

    Comunque se ti serve qualcosa di più robusto, potresti fare in modo che al primo avvio il programma richieda un codice di sblocco che solo tu puoi fornire.

    Il programma ti comunica un numero seriale basato sull' hardware (pc differenti generano seriali diversi), in base a questo numero fornisci il codice di sblocco che sarà valido solo su quel pc. Semplice, economico, infallibile (quasi).
  • Re: Protezione software

    No, di infallibile non c'è nulla.

    Qualsiasi codice venga richiesto dal codice, può essere individuato e aggirato.

    TUTTO dipende da quanto si è interessati (e quindi da quanto tempo si può impiegare a superare la protezione).
  • Re: Protezione software

    Barba59 ha scritto:


    Il programma ti comunica un numero seriale basato sull' hardware (pc differenti generano seriali diversi), in base a questo numero fornisci il codice di sblocco che sarà valido solo su quel pc. Semplice, economico, infallibile (quasi).
    Capisco che dietro il 'quasi' c' è una velata ironia, comunque vorrei sapere quanto è sicuro questo sistema, ovvero che modo ha il cliente di aggirarlo. Non mi interessa però il caso in cui venga craccato, di questo ne abbiamo già parlato è mi è chiaro che se si cracca il codice qualsiasi protezione è inutile.

    Quindi la domanda quindi è: un cliente che non è in grado di craccare il codice, può comunque aggirare la protezione che mi dicevi?
  • Re: Protezione software

    Se lo mette su una macchina virtuale può passare la macchina virtuale, perchè l'hw non cambia, altrimenti, senza lavorare in reverse engeneering, non credo che possa farci nulla, quindi in generale non può fare niente.

    ovviamente il tuo programma all'interno deve fare un check tra il codice che stai inserendo e l'hw sottostante
  • Re: Protezione software

    Per quanto riguarda la faccenda della Virtual machine in effetti l'hardware risulterebbe lo stesso.
    Come discriminante legata all'hardware si potrebbe usare il mac address che per forza di cose viene assegnato dal sistema di virtualizzazione alla macchina virtuale.
  • Re: Protezione software

    Il 'quasi' l' avevo messo appunto perché pensavo alle Virtual Machine.

    Toki ha scritto:


    Come discriminante legata all'hardware si potrebbe usare il mac address che per forza di cose viene assegnato dal sistema di virtualizzazione alla macchina virtuale.
    Ciao Toki, stai dicendo che il mac address risulta diverso se sposto la Virtual Machine su un pc diverso?
    In questo caso sarebbe fantastico il sistema sarebbe perfetto (forse).

    Oppure, il software potrebbe essere in grado di capire se è dentro un VM? In questo caso potrebbe rifiutarsi di partire.
  • Re: Protezione software

    1) da programma è possibile capire se si sta su una VM o su una macchina fisica

    2) Il MAC è liberamente assegnabile dall'utente (sia su VM sia su macchina fisica) quindi è inaffidabile

    3) se una protezione viene aggirata da un cliente finale, sicuramente è sbagliata. Se il cliente finale ha effettivamente interesse, si affida ad un "esperto" e cominciano i guai ...
  • Re: Protezione software

    zaknafein83 ha scritto:


    altrimenti, senza lavorare in reverse engeneering, non credo che possa farci nulla
    Ciao zaknafein83,
    Quando dici 'senza lavorare in reverse engeneering' intedi dire che guardando i sorgenti si potrebbe capire il modo in cui generare la chiave, oppure intendi craccare il codice?

    Nel primo caso la cosa interessante è che (se la chiave è stata crittografata), anche esaminando i sorgenti non riusciresti a determinare il modo per generarne un' altra.
  • Re: Protezione software

    Ciao oregon

    oregon ha scritto:


    1) da programma è possibile capire se si sta su una VM o su una macchina fisica
    Perfetto, grazie. Poi magari in un altro thread ti chiedo come si fa.

    oregon ha scritto:


    2) Il MAC è liberamente assegnabile dall'utente (sia su VM sia su macchina fisica) quindi è inaffidabile
    In effetti sapevo che si può forzare il mac address in qualche modo, però non me ne preoccuperei molto.
    Il numero seriale generato a partire dall' hardware dovrebbe tenere conto di vari componenti hardware, mac address, hard disk, bios, ecc. per cui occorrerebbe avere un hardware clone di un altro, se escludiamo le macchine virtuali direi che la cosa è al di la delle possibilità dei miei clienti (almeno spero ).
  • Re: Protezione software

    oregon ha scritto:


    Il MAC è liberamente assegnabile dall'utente (sia su VM sia su macchina fisica) quindi è inaffidabile
    Sono andato a vedere su WmWare hai ragione, lo puoi assegnare manualmente.
  • Re: Protezione software

    Toki ha scritto:


    oregon ha scritto:


    Il MAC è liberamente assegnabile dall'utente (sia su VM sia su macchina fisica) quindi è inaffidabile
    Sono andato a vedere su WmWare hai ragione, lo puoi assegnare manualmente.
    Anche sulle macchine fisiche. Il MAC sta nel registro.
  • Re: Protezione software

    Tu che caratteristiche hardware controlli nelle tue protezioni per le copie?
  • Re: Protezione software

    Perfetto, grazie. Poi magari in un altro thread ti chiedo come si fa.
    Se ne può parlare ...
    non me ne preoccuperei molto.
    Beh, comunque va escluso tra i criteri in quanto non è affatto affidabile.
    tenere conto di vari componenti hardware
    Naturalmente ma ci sono molti problemi

    1) nelle macchine virtuali, l'hardware emulato è sempre il medesimo e comunque è clonabile

    2) nelle macchine fisiche si interviene sul codice per aggirare i controlli. Ed è molto più "scocciante" per il cliente che non può cambiare disco fisso senza doverti chiedere nuovamente la chiave.
Devi accedere o registrarti per scrivere nel forum
42 risposte