Newsgroup: it.comp.java
Titolo: proteggere java(la vendetta)

ho realizzato la mia protezione in vb dovendo utilizzare le api di win32.
richiamo tale applicazione dal mio programma java col metodo
runTime.exec( ).
il mio dubbio adesso č: come faccio ad essere certo che
il programma chiamato sia proprio quello che io ho scritto in vb?
puo' java fare un controllo tipo crc?
per ora controllo coi metodi della classe File che la dimensione del file e
la sua data di creazione
corrispondano con quelli di "fabbrica".
un po poco non credete?
ribadisco che la mia intenzione non č rendere il mio programmea
inespugnabile, ma dissuadere i furbi
( soprattutto se anche ignoranti ) e imparare qualcosa di nuovo, che non fa
mai male.
p.s. da java posso leggere una chiave nel registro di windows?
ciao,
nello

 un po poco non credete?
Direi che č "un po' poco" in generale. Non ho capito cosa vuoi 
proteggere con il programma vb esterno.

 ha scritto nel messaggio
news:C_Cdc.51457$rM4.2...@news4.tin.it...


 se faccio una dll e la chiamo da java è piu' sicuro?
Non c'è nemmeno bisogno di un debugger per eluderlo.

> se faccio una dll e la chiamo da java č piu' sicuro?
imho e' MENO sicuro.
sinceramente non so se sia possibile proteggere un programma in java

 
beh potreggerlo si puo' ma e' sempre a rischio di decompilazione,
forse xo' compilandolo nativo per la macchina su cui va usato
almeno si evita questo e si costringe "l'attaccante" ad usare
un disassemblatore...

 un disassemblatore...
beh, si, ci sono offuscatori (a pagamento) anche buoni, che tendono ad
offuscare ed incasinare anche il normale flusso del programma, e al momendo
della decompilazione ti ritrovi un casino di istruzioni bytecode
incomprensibili.... ma bypassare un if credo che sia semplice anche nelle
peggiori situazioni (non ci ho mai provato, ma credo che ogni protezione
alla fine si riconduce a uno o piu' if)

 peggiori situazioni 
si ma chiaramente il discorso e'
sbattimento a sproteggerlo vs benifici ottenuti
x quanto possano sbattersi quelli di autodesk a proteggerlo,
Autocad continuera' ad essere sprotetto xche' c'e' tanta domanda
per quel sw.
la persona che ha iniziato questo post vuole solo avere un
minimo di protezione x cui se lui vende il sw non vuole che
un utente anche poco competente sia in grado di copiare
impunemente il sw da un pc all'altra.
Anche un ignorante (informatico) e' in grado di:
-copiare l'installazione di un sw da un pc all'altra
usando cd/dischetti/chiavette
-scopiazzare nomeutente/password di registrazione e usarla
per installare il sw sul suo computer
se invece c'e' qche protezione piu' "profonda", non penso
che l'utente medio vada a cercare online un decompiler,
un disassemblatore o altre cose di questo tipo.
insomma diciamo che sono diversi livelli di protezione
a seconda di quel che si vuol fare, chiaramente poi
il cracker bravo sara' in grado di togliere anche la
protez. + ostica, ma deve cque esser motivato e interessato
a farlo :)

 per installare il sw sul suo computer
allora il mio consiglio e' di generare un numero univoco che corrisponde a
un computer, e in base a quello generare una chiave.
in questo modo quella chiave non sara' valida su altri computer.
(e' solo un'idea....)

 in questo modo quella chiave non sara' valida su altri computer.
e' quello appunto di cui si parlava in questo 3ad e anche in quello
precedente dello stesso autore ;)

 ha scritto nel messaggio
news:c5gv1c$8oo$1...@lacerta.tiscalinet.it...

....eee che ne pensate invece di questa soluzione che mi è stata ispirata da
voi:
si crea una classe padre dove all'interno si scrive il codice per la
generazione della chiave in base all'id macchina a questo punto si fa
ereditare tutto da quella classe che conterrà anche metodi e argomenti che
dovranno essere usati in tutte le altre classi magari pure l'interfaccia
utente (se ne ha una) e poi si scrive lo stesso codice di riferimento alla
chiave generata in altri punti del codice giusto da renderlo un pò più
complicato così l'eventuale hacker di turno poco esperto si troverà a dover
rigirare su decine di righe di codice praticamente riscrivendo il programma
........  !!!???!!??! :-)
Dani

 .........  !!!???!!??! :-)
se lo hai realizzato come
-leggo il codice da file/da input utente
-prendo l'id del pc e genero il codice corrispondente
-valuto se i due codici sono uguali, se sono uguali
ritorno che va bene altrimenti ritorno non va bene
-usi questa funzione di check in + posti
posso cque aggirare la tua protezione in diversi modi:
1)
-decompilo il tuo codice
-patcho la funzione di confronto in modo che ritorni
sempre "va bene"
-ricompilo il tutto
cosi' se anche hai messo 120 controlli in giro,
non mi cambia niente
2)
-decompilo il tuo codice
-estraggo l'algo di generazione del codice (che
avrai dentro x poter controllare che il codice
x quella macchina corrisponde a quello fornito
dall'utente) dalla tua classe padre
-reimplemento l'algo in un prog esterno
-ecco fatto un keygenerator per il tuo programma ;)
questo pensato al volo,
poi con un po' piu' di tempo magari
mi viene in mente altro :D

 (e' solo un'idea....)
Sģ, ma se decompilando dal sorgente tolgo quella parte di codice.
Secondo me non č possibile proteggere in alcun modo in programma Java
finchč i .class saranno solo bytecode
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

       E con Java le cose sono ancora più semplici.
- Dario