Un protettore di codice afferma che "assicura che sia fisicamente impossibile eseguire il codice senza un numero di serie" è una truffa?

5

Il software VMProtect (trovato al link ) afferma che:

"consente la generazione e la verifica dei numeri di serie Sono supportate sia la generazione manuale che quella automatica.I numeri seriali possono essere limitati per ora o data e bloccati sull'hardware, mentre il periodo di aggiornamento gratuito può essere limitato. assicura che sia fisicamente impossibile eseguire il codice senza un numero di serie. "

Credo che la parola "impossibile" sia chiaramente errata perché pensavo che qualsiasi meccanismo di protezione dei numeri seriali potesse essere incrinato spendendo abbastanza tempo per invertire la progettazione.

Tuttavia, ho cercato online e VMProtect è stato usato come un programma di compressione per offuscare il malware attraverso la protezione virtualizzata come descritto qui link così sembra di ottenere "protegge il codice eseguendolo su una macchina virtuale" come afferma. Capisco le idee del software offuscato dalla virtualizzazione e non sto cercando una risposta (l'ho appena usato come esempio di una cosa che VMProtector afferma di fare, cosa che infatti fa).

Questa pubblicità falsa o ci sono nuovi modi fantasiosi per far sì che il codice non funzioni senza numeri seriali?

    
posta whatever489 05.02.2016 - 00:21
fonte

1 risposta

7

Quindi il loro mercato protegge la tua app dagli sguardi indiscreti dei reverse engineering. Io trovo quella pagina un po 'troppo soffice, e un po' troppo scarsa nei dettagli. Io certamente non comprerei il loro prodotto basandosi esclusivamente sulle descrizioni di quella pagina.

In base alle descrizioni, sembra che generino un linguaggio di assemblaggio personalizzato per ogni app, quindi si esegue il codice bizzaro all'interno del proprio traduttore di assiemi (ovvero macchina virtuale) che produce codice di assemblaggio effettivo in fase di runtime. Ho ragione? Posso capire perché questo rende il codice difficile da decodificare.

Ora alla tua domanda. Dal momento che controllano l'imbracatura in cui viene eseguito il codice, potrebbero facilmente aggiungere un controllo all'avvio che dice "il numero di serie fornito corrisponde [il numero di serie che mi aspetto]? In caso contrario, annulla". Quindi, la semplice risposta alla domanda "ci sono nuovi modi fantasiosi per far sì che il codice non funzioni senza numeri seriali?" è si , ma la domanda migliore è "come impedire ai tecnici inversi di capire quale numero di serie è previsto?"

In primo luogo, mi chiedo cosa intendano per "numero di serie". Nel senso più stretto, ciò significa "prendi il numero precedente emesso e aggiungine uno". Quello non dovrebbe essere troppo difficile da falsificare. Inoltre, come fanno a comparire la parte [numero seriale che mi aspetto]? Il loro prodotto richiede l'accesso a Internet al telefono di casa per il numero di serie corretto? Certo, possono fare una connessione SSL a casa per proteggerlo dallo sniffing dei pacchetti, ma dal momento che è in esecuzione sul mio hardware, posso fare un dump della memoria ed estrarre direttamente [il numero seriale che mi aspetto]?

Forse invece di "numero di serie", significano una sorta di impronta digitale dell'hardware del sistema. È un trucco comune nel settore della sicurezza cancellare insieme l'indirizzo MAC, il numero seriale della scheda madre, il numero di modello del processore, la data odierna (se il codice è valido solo per un giorno), ecc. In questo modo non mi interessa se si estrae l'hash che mi aspetto dal mio codice sorgente, buona fortuna virtualizzando l'hardware che produce un hash corrispondente. Un trucco del genere sarebbe coerente con la loro affermazione che è "bloccato sull'hardware", ma in realtà non può essere definito un "numero di serie".

Anche se dispongono di un correttore di impronte digitali fantasioso, l'imbracatura è un assemblaggio regolare, come un tecnico di controllo inverso, posso inserire un goto per ignorare il controllo?

Quindi la risposta più lunga è la seguente: potrebbe essere modi per fare un'app che si rifiuterà di funzionare senza il numero seriale corretto / chiave / impronta digitale, ma probabilmente il tuo intuito ha ragione con abbastanza sforzo. Inoltre, la loro pagina descrittiva non fornisce abbastanza dettagli per ispirare fiducia. Ma * heh *, sono nel gioco dell'offuscamento, cos'altro dovrei aspettarmi? Qualunque cosa abbiano fatto è probabilmente abbastanza buono da tenere occupati i componenti di Symantec per un paio di mesi mentre rastrellano del denaro.

    
risposta data 05.02.2016 - 00:53
fonte

Leggi altre domande sui tag