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.