Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Nascondere variabili dal disassembly
Forum - C/C++ - Nascondere variabili dal disassembly

Avatar
Stefano (Ex-Member)
Rookie


Messaggi: 32
Iscritto: 27/12/2007

Segnala al moderatore
Postato alle 18:11
Lunedì, 04/10/2010
Salve a tutti, avrei una domanda un po' complicata da porvi..
Ho la necessità di "dare via" alcune mie applicazioni contenenti alcune password necessarie a decriptare il contenuto di alcuni file..
ad esempio nel mio "defines.h" ho:

Codice sorgente - presumibilmente C/C++

  1. static char CHECKSUMKEY[] = "lamiapassword"



ora, utilizzando Visual Studio come IDE, ho specificato anche come output "Assembly con codice sorgente"...andando ad aprire il file main.asm e scorrendo il file mi sono trovato davanti a un codice del genere:
Codice sorgente - presumibilmente Plain Text

  1. _CHECKSUMKEY DB    'lamiapassword', 00H
  2.     ORG $+3



per cui per un bravo smanettone è "facile" beccare la password in pochi minuti..
esiste quindi un modo per nascondere i dati o rendere piu difficile il disassembly?

Grazie a tutti anticipatamente ;)

PM
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1787
Iscritto: 26/06/2009

Up
5
Down
V
Segnala al moderatore
Postato alle 19:12
Lunedì, 04/10/2010
Non basterebbero interi libri per esaurire ogni dettaglio dell'argomento.

In generale, inserire una password all'interno di un programma è sbagliato.
Potresti magari spezzarla in sotto stringhe, da ricomporre, o da manipolare in modo pseudocasuale per recuperare la password originale a runtime. Un lamer si fermerebbe già al disassembly, mentre chiunque capisca un po' di assembly potrà comunque risalire all'algoritmo e ricostruire la password.

Ci sono altri metodi via via più sofisticati, ma alcuni di questi vanno contestualizzati, in base al particolare tipo di utilizzo per cui l'applicazione è stata progettata.


Software Failure: Guru Meditation
Forum su Informatica, Elettronica, Robotica e Tecnologia: http://www.nonsoloamiga.com
PM
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1787
Iscritto: 26/06/2009

Up
3
Down
V
Segnala al moderatore
Postato alle 20:28
Lunedì, 04/10/2010
Testo quotato

Postato originariamente da Stefano:

innanzi tutto grazie per la risposta..
il mio programma è un editor di mappe per un gioco che sto realizzando..per cui vorrei proteggere le mappe in modo che solo con il mio editor possano essere utilizzate (e aperte).

Avresti per caso qualche articolo o qualche pagina di libro da consigliarmi in merito? Ti ringrazio ;)



odio per principio la tecnica di bloccare il modding dei contenuti (tutti i grandi produttori di VG incitano invece la produzione di mods!)... comunque appena trovo qualcosa di appropriato ti linko la pagina.

Intanto, come al solito, ti invito a leggerti un po' di articoli su gamedev.net e gameprog.it


Software Failure: Guru Meditation
Forum su Informatica, Elettronica, Robotica e Tecnologia: http://www.nonsoloamiga.com
PM
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1787
Iscritto: 26/06/2009

Up
2
Down
V
Segnala al moderatore
Postato alle 21:20
Lunedì, 04/10/2010
Testo quotato

Postato originariamente da Stefano:

Testo quotato

Postato originariamente da TheKaneB:

odio per principio la tecnica di bloccare il modding dei contenuti (tutti i grandi produttori di VG incitano invece la produzione di mods!)... comunque appena trovo qualcosa di appropriato ti linko la pagina.

Intanto, come al solito, ti invito a leggerti un po' di articoli su gamedev.net e gameprog.it



ti capisco..ma il mio progetto prevederà l'estensibilità tramite una serie di SDK..perchè ritengo che rilasciare un gioco open source sia un po' controproducente..ma non siamo qui a parlare di questo ;)
Tuttavia ho già iniziato ad adocchiarmi in giro ma ho visto che l'argomento è alquanto complesso e già ho visto che si parla di anti-disassembly ( http://www.springerlink.com/content/f58j3535h7207765/fullt ... )...avevi una idea del genere anche tu?



hai trovato una pubblicazione molto interessante! Beh, si, come avrai capito è un campo veramente vasto e difficile da padroneggiare.
Il mio consiglio è "scegli una tecnica che sia *abbastanza* forte", perchè la sicurezza ASSOLUTA non la potrai mai trovare :-)
Devi scegliere qualcosa che dia un giusto compromesso tra difficoltà di cracking e difficoltà di implementazione...


Software Failure: Guru Meditation
Forum su Informatica, Elettronica, Robotica e Tecnologia: http://www.nonsoloamiga.com
PM
Avatar
Stefano (Ex-Member)
Rookie


Messaggi: 32
Iscritto: 27/12/2007

Up
1
Down
V
Segnala al moderatore
Postato alle 20:44
Lunedì, 04/10/2010
Testo quotato

Postato originariamente da TheKaneB:

odio per principio la tecnica di bloccare il modding dei contenuti (tutti i grandi produttori di VG incitano invece la produzione di mods!)... comunque appena trovo qualcosa di appropriato ti linko la pagina.

Intanto, come al solito, ti invito a leggerti un po' di articoli su gamedev.net e gameprog.it



ti capisco..ma il mio progetto prevederà l'estensibilità tramite una serie di SDK..perchè ritengo che rilasciare un gioco open source sia un po' controproducente..ma non siamo qui a parlare di questo ;)
Tuttavia ho già iniziato ad adocchiarmi in giro ma ho visto che l'argomento è alquanto complesso e già ho visto che si parla di anti-disassembly ( http://www.springerlink.com/content/f58j3535h7207765/fullt ... )...avevi una idea del genere anche tu?

Ultima modifica effettuata da Stefano il 04/10/2010 alle 20:45
PM
Avatar
Stefano (Ex-Member)
Rookie


Messaggi: 32
Iscritto: 27/12/2007

Up
0
Down
V
Segnala al moderatore
Postato alle 20:25
Lunedì, 04/10/2010
innanzi tutto grazie per la risposta..
il mio programma è un editor di mappe per un gioco che sto realizzando..per cui vorrei proteggere le mappe in modo che solo con il mio editor possano essere utilizzate (e aperte).

Avresti per caso qualche articolo o qualche pagina di libro da consigliarmi in merito? Ti ringrazio ;)

PM