• Benvenuto in Making Videogames!
  • Dai sfogo alla tua fantasia!
  • Crea il tuo Videogioco!
Benvenuto ospite! Login Registrati




Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Sicurezza software
#12
mhhh fammi pensare ad un esempio semplice...
esempio1:
fai un ciclo che verifica che ogni carattere del seriale inputato, deve essere valore esadecimale il cui modulo con X è 0.
in questo modo non c'è il seriale completo ma solo una verifica.

esempio2:
trasformi il seriale inserito xorando il suo valore con un numero e ne confronti il risultato. in questo modo non confronti il seriale inserito ma uno trasformato.

esempio3:
dal seriale inputato esegui delle operazioni che sono soggette ad un possibile overflow. esempio un possibile numero/0 oppure un integer che finisce dentro un byte,una stringa che finisce dentro un valore byte ecc...
se il seriale inputato non prevede l'algoritmo corretto andra' in overflow o in un altor tipo di exception e utilizzando il seh (Structured Exception Handling) cioè la gestione dell'errore (on error, try catch ecc...) rimandi alla sezione "Errore seriale sbagliato".
Anche in questo caso (come nell'esempio2) non viene effettuato un confronto di un seriale, ma esiste solo una logica matematica.

si possono anche sommare le tecniche di tutti questi esempi, e naturalmente ce ne sono anche altre. Alcune operazioni matematiche non sono reversibili e questo rende la creazione di un keygen ancora piu' difficile.

L'smc (self modify code) è un programma che può modificare il proprio codice eseguibile riscrivendosi a runtime. Io ho fatto vari crackme con smc direttamente in asm perchè è il linguaggio piu' a basso livello che esiste ed è portato per queste cose. Per gli altri linguaggi si può facilmente fare con l'utilizzo delle api readprocessmemory e writeprocessmemory, naturalmente rendendo la sezione .code del PE scrivibile o modificando l'exe con un editor o direttamente da codice, qui i metodi sono essenzialmente un paio. Oppure riaprendo s'è stesso con l'api OpenProcess come farebbe un loader.
Crare un programma smc significa saper riscrivere parte di esso in asm, pertanto in questo caso occorre per forza conoscere l'assembly in proporzione alla complessità di codice riscritto.
 
Rispondi
  


Messaggi in questa discussione
Sicurezza software - da steve - 16-07-2011, 05:27 PM
RE: Sicurezza software - da Lorenz - 16-07-2011, 06:28 PM
RE: Sicurezza software - da Predator - 17-07-2011, 05:32 PM
RE: Sicurezza software - da steve - 17-07-2011, 06:06 PM
RE: Sicurezza software - da Predator - 17-07-2011, 07:40 PM
RE: Sicurezza software - da Zapetino - 17-07-2011, 08:09 PM
RE: Sicurezza software - da Predator - 17-07-2011, 08:20 PM
RE: Sicurezza software - da Zapetino - 17-07-2011, 08:38 PM
RE: Sicurezza software - da Predator - 17-07-2011, 10:25 PM
RE: Sicurezza software - da Zapetino - 17-07-2011, 10:35 PM
RE: Sicurezza software - da steve - 17-07-2011, 11:14 PM
RE: Sicurezza software - da Predator - 18-07-2011, 09:31 AM
RE: Sicurezza software - da Jonathan Archer - 18-07-2011, 09:50 AM
RE: Sicurezza software - da Predator - 18-07-2011, 11:15 AM
RE: Sicurezza software - da Jonathan Archer - 18-07-2011, 02:32 PM
RE: Sicurezza software - da Predator - 18-07-2011, 03:24 PM
RE: Sicurezza software - da Jonathan Archer - 18-07-2011, 03:35 PM
RE: Sicurezza software - da Predator - 18-07-2011, 03:37 PM
RE: Sicurezza software - da Jonathan Archer - 18-07-2011, 03:39 PM
RE: Sicurezza software - da Predator - 18-07-2011, 09:41 PM

Vai al forum:


Browsing: 1 Ospite(i)