Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Il primo headset open-back della linea INZONE arriva a 200 euro con driver derivati dalle cuffie da studio MDR-MV1 e un peso record di soli 199 grammi
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA
Al .NEXT 2026 di Chicago, Nutanix ha mostrato quanto sia cambiata: una piattaforma software che gestisce VM, container e carichi di lavoro IA ovunque, dall’on-premise al cloud pubblico. Con un’esecuzione rapidissima sulle partnership e sulla migrazione da VMware
Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta
Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta
Xiaomi Pad 8 Pro adotta il potente Snapdragon 8 Elite all'interno di un corpo con spessore di soli 5,75 mm e pannello LCD a 144Hz flicker-free, per un tablet che può essere utilizzato con accessori dedicati di altissima qualità. Fra le caratteristiche esclusive, soprattutto per chi intende usarlo con la tastiera ufficiale, c'è la modalità Workstation di HyperOS 3, che trasforma Android in un sistema operativo con interfaccia a finestre
Tutti gli articoli Tutte le news

Vai al Forum
Discussione Chiusa
 
Strumenti
Old 01-09-2006, 10:51   #1
OrcaAssassina
Senior Member
 
Iscritto dal: Feb 2003
Messaggi: 2818
[VB6] Protezione del programma

Ho finito il mio programma.

Ora per evitare che la gente lo installi su tutti i PC, come posso creare un blocco????

Ossia evitare che persone utilizzino il mio programma, senza un mio "permesso"????


Ciao e grazieeeeee
__________________
AMD 3700x --- ASUS X570 CROSSHEAR VIII HERO --- 4x 8GB Corsair Vengeance RGB PRO 3600 MHz --- SSD: Samsung 980Pro 1TBb --- EVGA RTX 2070 SUPER
OrcaAssassina è offline  
Old 01-09-2006, 10:56   #2
fabianoda
Senior Member
 
Iscritto dal: Oct 2002
Messaggi: 305
La soluzione tipica sono gli hardware lock, delle chiavi hardware (parallele o usb - ora vanno di più queste). Il produttore del lock ti fornisce anche una libreria da utilizzare per rendere sicuro il programma.

Questa è la soluzione più semplice anche se non è gratuita. L'alternativa sono i seriali, ma tutto dipende dal tipo di programma e dal numero di installazioni.

ps: le chiavi hardware funzionano anche in rete, cioè fai un'installazione che vale per n computer collegati in una lan
fabianoda è offline  
Old 01-09-2006, 12:30   #3
BountyKiller
Utente sospeso
 
Iscritto dal: Oct 2002
Messaggi: 2156
qualsiasi protezione, anche hardware, è aggirabile....tutto quello che puoi fare è rendere difficile la vita ai cracker inserendo le cosiddette "trappole antidebugging"........
__________________
sign editata dallo staff
BountyKiller è offline  
Old 01-09-2006, 13:28   #4
OrcaAssassina
Senior Member
 
Iscritto dal: Feb 2003
Messaggi: 2818
Cioè

Quote:
Originariamente inviato da BountyKiller
qualsiasi protezione, anche hardware, è aggirabile....tutto quello che puoi fare è rendere difficile la vita ai cracker inserendo le cosiddette "trappole antidebugging"........

Cioè in cosa consiste.

Dammi anche i link

Ciao e grazieeeeee
__________________
AMD 3700x --- ASUS X570 CROSSHEAR VIII HERO --- 4x 8GB Corsair Vengeance RGB PRO 3600 MHz --- SSD: Samsung 980Pro 1TBb --- EVGA RTX 2070 SUPER
OrcaAssassina è offline  
Old 01-09-2006, 13:37   #5
BountyKiller
Utente sospeso
 
Iscritto dal: Oct 2002
Messaggi: 2156
non so esattamente cosa siano non avendole mai usate..... quello che so è che fanno schiantare i programmi come softice che cercano di allacciarsi alla routine di controllo di un serial number (per esempio) con lo scopo crackare la routine....
so che ci sono svariati programmi che le utilizzano ( per esempio c'è un tool per il disegno UML chiamato visual paradigm che ha questa trappola).
__________________
sign editata dallo staff
BountyKiller è offline  
Old 01-09-2006, 15:02   #6
dani&l
Bannato
 
L'Avatar di dani&l
 
Iscritto dal: Nov 2000
Città: mi
Messaggi: 18791
Crei una login e una password criptata su un file dove al momento della creazionie ci aggiungi anche qualche identificativo Hw del pc (come fà windows Xp). Cosi se uno installa il programma e il file criptato contenente la pwd e user e usa lo stesso user e pwd non funziona perchè l'id Hw è diverso
dani&l è offline  
Old 01-09-2006, 15:15   #7
fabianoda
Senior Member
 
Iscritto dal: Oct 2002
Messaggi: 305
Quote:
Originariamente inviato da BountyKiller
qualsiasi protezione, anche hardware, è aggirabile....tutto quello che puoi fare è rendere difficile la vita ai cracker inserendo le cosiddette "trappole antidebugging"........
Beh.. è vero che ogni protezione è aggirabile. Ma penso che per un software prodotto "artigianalmente" per un numero limitato di clienti non ci sia il problema, basta giusto un po' di sicurezza per evitare copie troppo semplici - duplicare il cd (la chiave hw appunto per questo è la soluzione ideale).


Quote:
Originariamente inviato da OrcaAssassina
Cioè in cosa consiste
Non voglio segnalare esplicitamente il nome dei produttori.. ma basta fare una ricerca su google con "chiave hardware" e trovi di sicuro.

Fra l'altro, se non erro, ci sono delle vecchie discussioni sempre su questo argomento.
fabianoda è offline  
Old 01-09-2006, 15:17   #8
fabianoda
Senior Member
 
Iscritto dal: Oct 2002
Messaggi: 305
Quote:
Originariamente inviato da dani&l
Crei una login e una password criptata su un file dove al momento della creazionie ci aggiungi anche qualche identificativo Hw del pc (come fà windows Xp). Cosi se uno installa il programma e il file criptato contenente la pwd e user e usa lo stesso user e pwd non funziona perchè l'id Hw è diverso
Spiegati meglio... non ho ben capito, ma presumi di aver accesso al pc del cliente. Cosa che tu non hai in generale
fabianoda è offline  
Old 01-09-2006, 15:34   #9
dani&l
Bannato
 
L'Avatar di dani&l
 
Iscritto dal: Nov 2000
Città: mi
Messaggi: 18791
Quote:
Originariamente inviato da fabianoda
Spiegati meglio... non ho ben capito, ma presumi di aver accesso al pc del cliente. Cosa che tu non hai in generale
Pensavo che era un programma per la tua azienda, non da cedere a terzi

A questo punto le strade fattibili che mi vengono in mente sono poche:

Il software genera una chiave in base all'hw che ha e lui te la invia via mail. Tu li rimandi la mail con un codice di attivazione basato su quella chiave,lo aggiungi in un posto sperduto del registro di windows e il gioco è fatto... un pò come fanno i vari adobe

Solo chè è uno sbattimento per il cliente. Se poi lo reinstalla con Hw cambiato deve rifare la procedura...

Bho... altrimenti l'unica è abbinargli una chiavetta usb per il funzionamento come ti dicevano prima....
dani&l è offline  
Old 01-09-2006, 15:52   #10
OrcaAssassina
Senior Member
 
Iscritto dal: Feb 2003
Messaggi: 2818
Ok

Quote:
Originariamente inviato da dani&l
Pensavo che era un programma per la tua azienda, non da cedere a terzi

A questo punto le strade fattibili che mi vengono in mente sono poche:

Il software genera una chiave in base all'hw che ha e lui te la invia via mail. Tu li rimandi la mail con un codice di attivazione basato su quella chiave,lo aggiungi in un posto sperduto del registro di windows e il gioco è fatto... un pò come fanno i vari adobe

Solo chè è uno sbattimento per il cliente. Se poi lo reinstalla con Hw cambiato deve rifare la procedura...

Bho... altrimenti l'unica è abbinargli una chiavetta usb per il funzionamento come ti dicevano prima....

Cosi mi piace......lui mi contatta, mi da il seriale, io gli creo la chiave e poi gli mando il file da mettere nella cartella principale del programma.
A questo punto quando il programma parte se il serial dell'hd corrisponde con la chiave inserita il programma si apre.

DOMANDA: sapete dirmi dove trovare il sorgente?????. ahahahahahah

Ciao e grazieeeeeeeee
__________________
AMD 3700x --- ASUS X570 CROSSHEAR VIII HERO --- 4x 8GB Corsair Vengeance RGB PRO 3600 MHz --- SSD: Samsung 980Pro 1TBb --- EVGA RTX 2070 SUPER
OrcaAssassina è offline  
Old 01-09-2006, 15:54   #11
BountyKiller
Utente sospeso
 
Iscritto dal: Oct 2002
Messaggi: 2156
Quote:
Originariamente inviato da fabianoda
Beh.. è vero che ogni protezione è aggirabile. Ma penso che per un software prodotto "artigianalmente" per un numero limitato di clienti non ci sia il problema, basta giusto un po' di sicurezza per evitare copie troppo semplici - duplicare il cd (la chiave hw appunto per questo è la soluzione ideale).

ah questo non lo so, magari è un programma a cui ha dedicato mesi e mesi di lavoro..... volevo solo che avesse chiaro che non esiste un modo per rendere assolutamente non copiabile un programma.... tutto quello che si può fare è rendere la vita difficile a chi vuole fare la copia non autorizzata........
__________________
sign editata dallo staff
BountyKiller è offline  
Old 01-09-2006, 16:06   #12
dani&l
Bannato
 
L'Avatar di dani&l
 
Iscritto dal: Nov 2000
Città: mi
Messaggi: 18791
Quote:
Originariamente inviato da BountyKiller
ah questo non lo so, magari è un programma a cui ha dedicato mesi e mesi di lavoro..... volevo solo che avesse chiaro che non esiste un modo per rendere assolutamente non copiabile un programma.... tutto quello che si può fare è rendere la vita difficile a chi vuole fare la copia non autorizzata........
Fai come i giochi on line : autentificazione on line ogni volta che si lancia una partita al server, con conseguente ban di key illegali... ma non mi sembra neanche questo il caso
dani&l è offline  
Old 01-09-2006, 16:18   #13
fabianoda
Senior Member
 
Iscritto dal: Oct 2002
Messaggi: 305
Quote:
Originariamente inviato da OrcaAssassina
Cosi mi piace......lui mi contatta, mi da il seriale, io gli creo la chiave e poi gli mando il file da mettere nella cartella principale del programma.
A questo punto quando il programma parte se il serial dell'hd corrisponde con la chiave inserita il programma si apre.

DOMANDA: sapete dirmi dove trovare il sorgente?????. ahahahahahah

Ciao e grazieeeeeeeee
Se hai dei clienti non so però quanto questa strada sia perseguibile, ovvero quanto a loro faccia piacere doverti contattare per ogni installazione. Però sarebbe una buona soluzione, soprattutto economica!

fabianoda è offline  
Old 01-09-2006, 16:28   #14
BountyKiller
Utente sospeso
 
Iscritto dal: Oct 2002
Messaggi: 2156
Quote:
Originariamente inviato da dani&l
Fai come i giochi on line : autentificazione on line ogni volta che si lancia una partita al server, con conseguente ban di key illegali... ma non mi sembra neanche questo il caso

bypassabile anche questo
secondo me l'unico modo per avere una ragionevole sicurezza utilizzando un serial number come protezione è cablare questo serial number direttamente nel codice.....ma è un gran casino da implementare....a quel punto bypassare il controllo è inutile.....c'era un'idea di uno sviluppatore di videogiochi che seguiva più o meno questa idea...con una perfida aggiunta..in pratica il gioco registrato con serial number crackato funzionava per un po', poi piano piano rallentava, ogni tanto schiantava, oppure il giocatore a un certo punto non poteva più+ muoversi nell'ambiente, fino al punto da arrivare alla stasi totale!!
in questo modo la frustrazione del giocatore disonesto lo avrebbe presumibilmente indotto a comprare il gioco originale
__________________
sign editata dallo staff
BountyKiller è offline  
Old 02-09-2006, 08:25   #15
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da OrcaAssassina
Ho finito il mio programma.

Ora per evitare che la gente lo installi su tutti i PC, come posso creare un blocco????

Ossia evitare che persone utilizzino il mio programma, senza un mio "permesso"????
aggiungo i miei 2 cents enunciando alcune accortezze per disorientare i crackersz ( ) e tutelare la vostra security by obscurity:

per mettere fuori uso gli API tracers:
  • all'avvio dell'eseguibile, fate perdere le tracce della vostra IAT (Import Address Table): in ciascuna IDE (Import Directory Entry) scambiate L'RVA del "first thunk" con quello dell'"original first thunk" (così facendo la IAT sarà completamente scambiata con la ILT, Import Lookup Table) e azzerate l'RVA della IAT nella directory relativa nell'header opzionale; l'eseguibile risulterà unbound ma continuerà a funzionare senza problemi
  • la maggior parte delle funzioni API sono __stdcall, e perciò il loro codice inizia sempre con:
    Codice:
    PUSH EBP
    MOV EBP,ESP
    che è un prologo che occupa 3 bytes; dunque, anziché usare gli stub della IAT, per effettuare le chiamate API potete scrivere in memoria quelle prime 3 istruzioni e una vostra tabella di stub ciascuno dei quali non salta all'indirizzo della funzione, ma 3 bytes dopo. fatelo per ciascuna API, ma prima controllate che essa inizi effettivamente con quei 3 bytes.

per disorientare i disassemblatori:
  • inserite qua e là nel codice sequenze di assembly come questa:
    Codice:
    JMP SHORT $+1
    DB 0xB8
    non fa niente ma servirà a disallineare le istruzioni immediatamente seguenti offuscandole; un disassemblatore infatti, sapendo che 0xB8 è il primo byte di un'istruzione MOV EAX da 5 bytes, leggerà:
    Codice:
    JMP SHORT $+1
    MOV EAX,...
    ...
    (dai puntini di sospensione in poi è tutto sbagliato); però purtroppo i disassemblatori più furbi non ci cascano ( O.o' ), e la maggior parte delle volte il codice si riallinea dopo poche istruzioni.

inoltre è anche bene rendersi invisibili nel call stack evitando di creare gli stack frames al prologo di tutte le vostre routines, a partire dagli entry points richiamati direttamente da kernel32.dll o user32.dll (WinMain, DllMain, ThreadProc, e callback): anche se il cracker riuscisse a mettere su una funzione API un breakpoint che non viene eluso dal sistema di stub descritto sopra, una volta fermato il programma osservando il call stack avrebbe l'impressione che quelle API siano state chiamate da Windows

a quel punto il cracker può ancora individuare il vostro codice andando comodamente a segnarsi con carta e penna gli indirizzi di ritorno esadecimali dallo stack (sempre che li trova ); insomma, un lavoro sempre meno fattibile se moltiplicato per decine di chiamate API, e comunque fattibile solo per i più esperti ma soprattutto ( ) pazienti.

infine, se siete veramente disposti a tutto , installate un vostro driver per intercettare le interrupt 1 e 3, che sono quelle che di fatto permettono il debug dei programmi.

ah, dimenticavo: durante l'esecuzione di un modulo PE tutti gli headers sono inutili; azzerateli completamente.

Ultima modifica di 71104 : 02-09-2006 alle 08:30.
71104 è offline  
Old 02-09-2006, 09:14   #16
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Inserisco la mia.

Puoi usare un disco chiave di protezione ovvero quando un utente lancia il programma all'avvio viene richiesto di inserire nel floppy A il disco chiave di protezione. Il programma legge il bootsector il codice criptato se corrisponde allora si avvia il programma se non il prg termina.

Il disco chiave di protezione lo devo rendere non copiabile.
Devi farti una sorta di tua formatazione personale... poi scrivi nel bootsector la chiave criptata. Poi all'avvio il prg leggerà il boootsector tornando la stringa dove il prg la confronta. Se è == allora il prg si avvia oppure termina con exit.

Ora un utente può copiare il programma e darlo a 10 persone ma il disco di protezzione è uno solo i 10 utenti che hanno il programma per avviarlo devono avere il disco chiave che è non copiabile.

i 10 utenti dovranno contattare l'autore del prg per farsi spedire un disco chiave di protezione...

Io all'inizio mi rifornivo alla clover informatica (MI) 10 dischetti 180€.
Da 3 anni ad oggi mi sono fatto tutto da solo programmando.

Naturalmente tutto questo è aggirabile da un cracker, come tutto del resto, ma con un pò di accorgimenti puoi rendergli la vita difficile criptando il codice ecc ecc. e facendo thread infiniti con ritorno di istruzioni fasulle.

Ultima modifica di okay : 02-09-2006 alle 09:17.
okay è offline  
Old 02-09-2006, 09:23   #17
OrcaAssassina
Senior Member
 
Iscritto dal: Feb 2003
Messaggi: 2818
Sorgenti

Ci sono dei sorgenti in giro gia fatti per darmi un'occhiata????
__________________
AMD 3700x --- ASUS X570 CROSSHEAR VIII HERO --- 4x 8GB Corsair Vengeance RGB PRO 3600 MHz --- SSD: Samsung 980Pro 1TBb --- EVGA RTX 2070 SUPER
OrcaAssassina è offline  
Old 02-09-2006, 09:23   #18
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da okay
Ora un utente può copiare il programma e darlo a 10 persone ma il disco di protezzione è uno solo i 10 utenti che hanno il programma per avviarlo devono avere il disco chiave che è non copiabile.
perché no? alla fine si tratta di un normale floppy o sbaglio?
71104 è offline  
Old 02-09-2006, 09:25   #19
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da OrcaAssassina
Ci sono dei sorgenti in giro gia fatti per darmi un'occhiata????
sugli argomenti che ho descritto io sarebbero didatticamente inutili: non capiresti niente, non sono sorgenti leggibili a meno che non conosci già le tecniche. se vuoi qualche dettaglio tecnico su qualcuna delle tecniche da me descritte chiedi pure; in effetti ho omesso che è richiesta una discreta conoscenza del formato PE/COFF e di alcune convenzioni usate tra chiamate di funzioni sui processori x86
71104 è offline  
Old 02-09-2006, 10:50   #20
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da 71104
perché no? alla fine si tratta di un normale floppy o sbaglio?
Con una formattazione tua intendo propriamente fatta da te non a 320 o 1440 ecc ecc in quanto con windows lo riterrebbe un disco non copiabile e non valido.

Le prove le ho fatte ed è così. Se tento/ti di copiarlo con l'OS ti esce il messaggio: impossibile formattare il disco oppure disco non copiabile...


ciao
okay è offline  
 Discussione Chiusa


Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori Sony INZONE H6 Air: il primo headset open-back d...
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA Nutanix cambia pelle: dall’iperconvergenza alla ...
Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta Recensione Xiaomi Pad 8 Pro: potenza bruta e Hyp...
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abb...
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz ASUS ROG Swift OLED PG34WCDN recensione: il prim...
L'Italia finanzia CamGraPhIC (2D Photoni...
Google Chrome introduce le Skills, per a...
Dalla RAM agli SSD: il ruolo dell'ECC ne...
Generazione immagini: Microsoft MAI-Imag...
I 7 prodotti tech più venduti su Amazon ...
Il Trump Mobile T1 cambia ancora e diven...
L'auto solare che produce più ene...
Apple Intelligence entra in una nuova er...
Il robot di Unitree è un vero spr...
Il nuovo Motorola Razr 70 Ultra è...
OnePlus anticipa l'arrivo di un tablet t...
Il MacBook Neo è un successo: App...
Lenovo anticipa l'arrivo di un nuovo sma...
Ecovacs presenta la gamma 2026: paviment...
Efficienza energetica fino a 2.000 volte...
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: 09:27.


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