Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-01-2008, 11:13   #1
marxt
Senior Member
 
L'Avatar di marxt
 
Iscritto dal: Feb 2004
Messaggi: 459
[C++] proteggere sw

ciao a tutti,

avrei bisogno di inserire nel mio programma un meccanismo di protezione, qualcosa che sia più affidabile del semplice controllo di una password scritta nel codice, pensavo a file di licenza che l'utente deve tenere in una determinata cartella e la cui presenza viene controllata ad ogni avvio del programma.

Qulcuno di voi conosce come si fanno queste cose? esiste una procedura standard? Cosa mi consigliate di fare?
magari utilizzando librerie .NET che potrebbero semplificarmi la vita.

Grazie a tutti
marxt è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 11:14   #2
isAlreadyInUse
Senior Member
 
L'Avatar di isAlreadyInUse
 
Iscritto dal: Sep 2007
Messaggi: 754
Ma devi proteggere l'accesso o la copia del programma
__________________
http://www.tevigroup.it/
isAlreadyInUse è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 13:21   #3
marxt
Senior Member
 
L'Avatar di marxt
 
Iscritto dal: Feb 2004
Messaggi: 459
l'accesso
marxt è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 13:24   #4
isAlreadyInUse
Senior Member
 
L'Avatar di isAlreadyInUse
 
Iscritto dal: Sep 2007
Messaggi: 754
Impronta digitale
__________________
http://www.tevigroup.it/
isAlreadyInUse è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 13:28   #5
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Quote:
Qulcuno di voi conosce come si fanno queste cose? esiste una procedura standard?
Se esistesse una procedura standard per proteggere esisterebbe anche un crack universale... Invece la protezione di un software è affidata alla fantasia e all'esperienza del programmatore. In realtà esistono librerie e componenti che permettono di proteggere un'applicazione, ma io eviterei di usarle per quanto scritto prima.

Quote:
magari utilizzando librerie .NET che potrebbero semplificarmi la vita.
Stai sviluppando in Managed C++?

Quote:
l'accesso
Sei proprio sicuro di voler proteggerne l'accesso (cosa intendi per "accesso"?) e non la possibilità di usare copie non regolarmente acquistate del software?
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 14:47   #6
marxt
Senior Member
 
L'Avatar di marxt
 
Iscritto dal: Feb 2004
Messaggi: 459
voglio che il software sia usabile solo dagli utenti autorizzati a cui verra rilasciata una chiave o una licenza.

come dicevo mi basta qlc di più di una semplice password all'avvio, quindi mi va bene anche usare delle librerie standard.

avete qlc link o qlc procedura da consigliarmi?
marxt è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 15:03   #7
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Quale compilatore C++ utilizzi? Fai ricorso a framework particolari?
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 15:15   #8
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Non per mia personale esperienza ma in genere per questo tipo di problematica, molti utenti esperti su questo forum hanno consigliato in passato una chiave hardware.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 16:21   #9
marxt
Senior Member
 
L'Avatar di marxt
 
Iscritto dal: Feb 2004
Messaggi: 459
uso visual studio 2005, framework 2.0

ho visto da qualche parte che ci sono librerie .NET per il licensing, ma non trovo maggiori informazioni
marxt è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 18:12   #10
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da marxt Guarda i messaggi
uso visual studio 2005, framework 2.0

ho visto da qualche parte che ci sono librerie .NET per il licensing, ma non trovo maggiori informazioni
Allora non stiamo parlando di C++.
Se usi il framework .NET evita quell'abominio del C++ managed.
Però stai attento che l'IL è perfettamente in chiaro per chi detiene l'assembly, devi ricorrere a tool come dotFuscator (non so se sia presente in tutte le versioni di VS2005), i quali limitano alcune proprietà del linguaggio come la Reflection.

Potresti affidarti ai tradizionali product key basati sull'Elliptic Curve Cryptografy.

Il problema che non sono mai riuscito a risolvere è che comunque nel codice del programma è presente la chiave per decifrare il product key, se in C++ ci vuole una certa perizia anche solo per capire che dei numeracci messi lì costituiscono la chiave (si può pensare anche di tenerli in modo che siano necessarie determinate operazioni prima di ottenere i singoli byte della chiave), con .NET tutto diventa più semplice (a lavoro per test ho cracckato un nostro stesso programma protetto con queste chiavi e offuscato, chiaramente non sapevo dove cercare la chiave, ma non è stato troppo complicato trovarla).
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 18:57   #11
marxt
Senior Member
 
L'Avatar di marxt
 
Iscritto dal: Feb 2004
Messaggi: 459
per l'esattezza uso C++/CLI,
sapete niente di una certa classe "License" e "LicenceManager" e di come si utilizzano??
marxt è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 19:09   #12
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Quote:
per l'esattezza uso C++/CLI
Come proteggi il tuo codice dalla decompilazione?

Quote:
sapete niente di una certa classe "License" e "LicenceManager" e di come si utilizzano??
L'uso di tale classe è illustrato in How to: License Components and Controls, come puoi notare non serve per proteggere un'applicazione ma i propri componenti.
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 19:50   #13
marxt
Senior Member
 
L'Avatar di marxt
 
Iscritto dal: Feb 2004
Messaggi: 459
allora mi sa che mi manca qualche pezzo.

qual'è la differenza tra proteggere componenti e proteggere l'uso dell'applicazione?

c'è un modo per fare quello che voglio fare io?
marxt è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 19:55   #14
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Quote:
c'è un modo per fare quello che voglio fare io?
Progettare un TUO schema di protezione customizzato?

Devi inventare un meccanismo per la generazione e la verifica di codici seriali ed integrarlo nella tua applicazione.
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 22:40   #15
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da marxt Guarda i messaggi
ciao a tutti,

avrei bisogno di inserire nel mio programma un meccanismo di protezione, qualcosa che sia più affidabile del semplice controllo di una password scritta nel codice, pensavo a file di licenza che l'utente deve tenere in una determinata cartella e la cui presenza viene controllata ad ogni avvio del programma.
ti propongo un'idea migliore: il file di licenza contiene una chiave crittografica che viene utilizzata per decriptare una parte chiave del programma. però ovviamente ciascun utente regolare deve avere una licenza diversa, il che significa che a ciascun utente regolare devi distribuire una copia crittografata diversamente.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 22:50   #16
dupa
Senior Member
 
L'Avatar di dupa
 
Iscritto dal: Jan 2002
Città: Napoli
Messaggi: 1727
inizia a usare un encrypter e compressore di exe.. che di sicuro renderà la vita meno agevole al cracker di turno.

ciao
__________________
Se buttassimo in un cestino tutto ciò che in Italia non funziona cosa rimarrebbe? Il cestino.
dupa è offline   Rispondi citando il messaggio o parte di esso
Old 05-01-2008, 11:52   #17
marxt
Senior Member
 
L'Avatar di marxt
 
Iscritto dal: Feb 2004
Messaggi: 459
Quote:
Originariamente inviato da 71104 Guarda i messaggi
ti propongo un'idea migliore: il file di licenza contiene una chiave crittografica che viene utilizzata per decriptare una parte chiave del programma. però ovviamente ciascun utente regolare deve avere una licenza diversa, il che significa che a ciascun utente regolare devi distribuire una copia crittografata diversamente.
cosa intendi per decriptare una parte chiave del programma? criptare una parte del codice?
ma come si fa praticamente a compilare un programma con un pezzo del suo codice cifrato?
marxt è offline   Rispondi citando il messaggio o parte di esso
Old 05-01-2008, 12:42   #18
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da marxt Guarda i messaggi
cosa intendi per decriptare una parte chiave del programma? criptare una parte del codice?
ma come si fa praticamente a compilare un programma con un pezzo del suo codice cifrato?
veramente criptare una parte dell'eseguibile principale sarebbe un po' troppo complicato, dovresti avere a che fare con codice automodificante; io avevo in mente più che altro una DLL o un file essenziale.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 05-01-2008, 14:02   #19
marxt
Senior Member
 
L'Avatar di marxt
 
Iscritto dal: Feb 2004
Messaggi: 459
ho capito, e cosa potrei usare per criptare/decriptare?
marxt è offline   Rispondi citando il messaggio o parte di esso
Old 05-01-2008, 14:18   #20
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Potresti usare la classe Rijndael del namespace System.Security.Cryptography.

Non hai risposto alla mia domanda precedente: come proteggi la tua applicazione dalla decompilazione?
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Instagram permette ora di aggiungere all...
Zuckoff scopre gli occhiali Meta attorno...
Samsung potrebbe lanciare i suoi primi o...
DLSS con Multi Frame Generation su RTX 2...
È questo il successore dei Fitbit...
Il nuovo Apple Watch ascolta le conversa...
Portatili in offerta su Amazon: MacBook ...
DeepSeek V4.1-Flash sostituisce il model...
Sciopero negli Apple Store italiani nel ...
vivo V70 5G a 461,70€: smartphone con fo...
Metal Slug Ultimate Collection annunciat...
Basta file di testo in chiaro: Android s...
Dalla CO2 al metano usando l'elettricità...
iOS 27 arriva il 14 settembre: ecco qual...
Ray-Ban Meta dentro il carcere: il video...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:25.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v