Come scegliere un codice digitale per un programma. Chiave di licenza di un programma o di un gioco. Hacking fisico del programma

Quando si seleziona una password, nessuno garantisce il successo di questa impresa). Tuttavia, ci sono alcune regole che possono aumentare significativamente le tue possibilità di un esito favorevole di questa questione.

Da dove cominciare

  1. Spesso è richiesta non solo una password, ma anche un login. Se stai cercando di trovare un login, ad esempio per entrare nel computer del tuo collega, usa il suo nome. Se non funziona, guarda come questa persona si definisce sui social network (Twitter, Facebook, Vkontakte, ecc.) - spesso funziona al 100%.
  2. Verifica se ci sono restrizioni sulla lunghezza della password inserita o sui caratteri utilizzati. Spesso la password deve essere lunga almeno sei caratteri e contenere almeno un numero. Se non sai che ci sono tali restrizioni, prova a creare il tuo account, ad esempio sul sito per il quale selezioni una password: durante la registrazione ti verranno comunicati i requisiti per le password.
  3. Richiedi una domanda di suggerimento. Spesso le pagine di immissione della password hanno questa funzionalità. Di norma, domande come "Cognome da nubile della mamma?", "Come si chiama il tuo animale domestico?", "In quale città sei nato?" vengono utilizzate come domande immediate. ecc. Questo si restringerà notevolmente possibili opzioni parole, soprattutto se sai almeno qualcosa della persona!

Usa i trucchi

  1. Basta indovinare la password. Molto spesso le persone usano lo stesso password standard. Il loro elenco è noto da tempo ed è costantemente aggiornato). Di seguito troverai le 25 password più comuni (secondo Splash Data):
    parola d'ordine
    123456
    12345678
    abc123
    qwerty
    scimmia
    Fammi entrare
    Drago
    111111
    baseball
    Ti amo
    trustno1
    1234567
    luce del sole
    maestro
    123123
    Benvenuto
    ombra
    Ashley
    calcio
    Gesù
    Michael
    ninja
    mustang
    password1

    Ecco alcune statistiche:
    Il 4,7% degli utenti utilizza la password;
    L'8,5% degli utenti sceglie una delle due opzioni: password o 123456;
    Il 9,8% degli utenti sceglie una delle tre opzioni: password, 123456 o 12345678;
    Il 14% degli utenti sceglie una delle 10 password più popolari;
    Il 40% degli utenti sceglie una delle 100 password più popolari;
    Il 79% degli utenti sceglie una delle 500 password più popolari;
    Il 91% degli utenti sceglie una delle 1.000 password più popolari.

  2. Applicare regole di selezione note. È stato stabilito sperimentalmente che se una password contiene numeri, allora sarà il numero 1 o 2 e si troverà alla fine. Inoltre, se la password ha una lettera maiuscola, sarà all'inizio della parola, seguita da una vocale.
  3. Il sesso di una persona può fornire un indizio. È noto che le donne preferiscono utilizzare nomi personali (il nome del marito o dell'amante) come password, mentre gli uomini preferiscono utilizzare i propri hobby e interessi (il nome della squadra sportiva preferita, della marca automobilistica, ecc.).

Utilizzare le informazioni rilevanti per la persona

  1. Nomi propri: nomi di coniugi, familiari, animali domestici, atleti, soprannomi di bambini, ecc.
  2. Hobby e interessi: nomi dei programmi preferiti, personaggi dei film, professioni, piatti culinari, ecc.
  3. Numeri e date importanti: compleanno, indirizzo, numero di telefono, ecc.

Disclaimer: tutto quanto scritto di seguito è scritto esclusivamente per scopi didattici e di ricerca, nonché per comprendere i meccanismi di protezione contro l'hacking. L'autore in nessun caso consiglia l'utilizzo questa informazione per programmi di hacking.

In questo articolo voglio parlare di tre modi e mezzo principali per hackerare i programmi .NET. L'obiettivo che perseguo è aiutare gli sviluppatori a comprendere meglio i meccanismi di sicurezza dei loro programmi, ad es. identificare le minacce più evidenti e intraprendere le azioni appropriate (o meno).

Non entrerò nei dettagli né utilizzerò strumenti di hacking complessi. Tutto verrà descritto “for dummies”, cioè tutti gli strumenti saranno semplici, facilmente accessibili e gratuiti. E il principale sarà Reflector, un decompilatore di programmi per .NET

Come cavia, ho scelto Expresso, un analizzatore espressioni regolari. Questo programmaÈ gratuito, la licenza non sembra dire nulla sull’hacking, ma senza registrazione funzionerà solo per 60 giorni. In altre parole, il danno derivante dall'hacking di questo programma è minimo e la sua struttura interna è molto adatta per l'addestramento. Spero che l'autore di questo programma non si offenda con me.


Innanzitutto, un breve programma didattico sulla struttura del programma .NET, per coloro che non hanno familiarità con lo sviluppo di questo Framework: tutto il codice scritto in qualsiasi linguaggio .NET (C#, Visual Basic, F#, Delphi.NET) è compilato in uno speciale linguaggio intermedio, solitamente chiamato IL o MSIL. Questo è qualcosa come un assemblatore, solo molto intelligente e con istruzioni molto potenti. E questo, in linea di principio, è lo stesso linguaggio del C#, solo la sintassi è peggiore (e ci sono più possibilità). Inoltre, il programma .NET utilizza attivamente i metadati, ad es. tutte le informazioni su classi, metodi, proprietà, attributi e tutto il resto vengono salvate nel file eseguibile.
Quelli. infatti decompilare un programma non è un concetto molto corretto in questo caso. È già tutto in forma aperta e gli strumenti sotto forma di Reflector sono impegnati a portare i costrutti MSIL ai corrispondenti costrutti di C# o di un altro linguaggio, aumentando la leggibilità del codice.

Passiamo all'hacking vero e proprio.

0. Ripristino di prova

In realtà, questo non è nemmeno un hack, ma un modo semi-legale per prolungare la vita di un programma inattivato. Consiste nel fatto che esiste un luogo in cui la data del primo lancio viene memorizzata e modificata/distrutta. Dopodiché potrai continuare a utilizzare il programma fino alla scadenza successiva.

Diamo un'occhiata al nostro soggetto del test con un riflettore:
Dopo aver esaminato un po' il codice, troviamo una riga interessante nel costruttore MainForm


Apri l'editor del registro, vai su HKEY_CURRENT_USER\Software\Ultrapico\Expresso e visualizza le seguenti chiavi:


Li eliminiamo e otteniamo altri 60 giorni di lavoro.

Questa opzione, ovviamente, è semplice e ovvia, ma anche se fosse più complicata, ci vorrebbe un po' più di tempo nel riflettore per scoprire tutti i punti in cui sono scritte le informazioni e cancellarli.

Consiglio agli sviluppatori che proveranno a scrivere dati in un luogo nascosto: scrivi con più attenzione, altrimenti tutto può trasformarsi in problemi per gli utenti ordinari che per qualche motivo non hanno questo posto o non ne hanno abbastanza diritti.

1. Scrivere keygen

L'opzione più terribile per lo sviluppatore e la più piacevole per l'utente malvagio finale. Il programma si considera concesso in licenza, non è necessario compiere gesti spaventosi.

Apriamo il reflector e cerchiamo il codice per le classi contenenti Licenza o Registrazione, vediamo:

Quando inserisci un nome e un codice, viene calcolato un hash in base al nome e confrontato con il codice.


Questo hash utilizza DES e tutti i tipi di prefissi


I byte vengono convertiti in una stringa utilizzando questo metodo.

Ora è tutto chiaro, apri l'IDE e copia tutti i pezzi di codice necessari (o implementalo noi stessi). Non resta che scoprire quali sono i valori di Prefix, Suffix e dei parametri di implementazione MyDES. Non li fornirò, questi sono dettagli tecnici.

Di conseguenza, generiamo una chiave per qualsiasi nome e vediamo:


Bingo!

La protezione contro i keygen è semplice e ovvia: utilizzare una qualche forma di crittografia asimmetrica. Quelli. fare in modo che sia impossibile generare un codice senza conoscere la chiave privata, e questa chiave si trova solo in un posto: presso l'autore del programma.

2. Utilizzando un involucro

Controllare la correttezza della licenza è un compito piuttosto problematico e lento. Pertanto, gli sviluppatori del programma di solito controllano la licenza una volta e quindi utilizzano il flag risultante - valido/non valido (come opzione, quanto è valido, se sono consentiti diversi tipi di licenze, diverse per capacità). Qui puoi giocarci usando il seguente algoritmo:
  1. Indicare al programma che la licenza è già stata verificata
  2. Indicare al programma che la licenza è corretta
Come farlo? Ho già accennato alla presenza di metadati in file eseguibili all'inizio useremo questo. Vediamo come si lancia il programma e come si controlla la licenza:


Non c'è niente di interessante all'avvio, ma il controllo mostra che se il programma è già registrato, considera che va tutto bene e non esegue ulteriori lavori per determinare la correttezza della licenza.

Usiamo questo:
Creiamo un nuovo progetto, aggiungiamo Reference a Expresso.exe ed eseguiamolo da soli:


Vediamo cosa è successo:


Ebbene, chi ne dubiterebbe.

In questo caso tutto si è rivelato semplice, ma se l'autore del programma avesse sostituito le proprietà pubbliche con quelle private, allora avrebbe dovuto utilizzare solo Reflection per l'accesso e tutto sarebbe tornato al problema originale.

Penso che sia chiaro come puoi provare a proteggerti da questo: controlla periodicamente la licenza, guarda l'ambiente da cui è in esecuzione il programma, rendi impossibile impostare la variabile richiesta.

Ma tutte queste protezioni porteranno all’utilizzo da parte dell’aggressore

3. Hacking fisico del programma

Qui sta diventando tutto serio. L'intero programma viene decompilato in MSIL e quindi assemblato nuovamente da esso (ricordate, ho scritto che MSIL è lo stesso linguaggio di C#?). Per decompilare, abbiamo bisogno di un'utilità dell'SDK chiamata ildasm e per la compilazione il compilatore proviene da .NET Framework ilasm.

Avvia ildasm, apri Expresso.exe e salva il dump in un file .il. Ritroviamo il già discusso metodo IsRegistered e aggiungiamo un po' del nostro codice (senza etichette):

Quindi prendiamo ilasm e rimontiamo tutto (senza dimenticare di collegare le risorse).

Cosa fa questo codice: installs nome desiderato per la registrazione (facoltativo) e restituisce lo stato che tutto va bene.
Per renderlo più chiaro, ecco come appare nel riflettore, in C#

Quelli. È abbastanza ovvio che ora andrà tutto bene:

Un po 'di codice in MSIL: è una macchina stack che non ha registri, tutte le operazioni hanno la forma: inserire il numero richiesto di parametri nello stack, eseguire una funzione che prende il numero richiesto di parametri e inserisce il risultato. Bene, e viceversa: imposta il valore della variabile su ciò che è nello stack. Per capire meglio come funziona tutto questo, ti consiglio una tecnica semplice: scrivere un piccolo programma in un linguaggio familiare, compilarlo, vedere cosa succede in MSILe e comprendere i costrutti del linguaggio.
Allo stesso tempo, alcune cose in MSIL possono essere fatte in modo molto bello, ad esempio scambiando due variabili: 4 belle righe (meno in C#, ma brutte).

Ciò che l’attaccante sacrifica: la firma del programma, ora non è più quella dell’autore, ma sua. In alcuni casi, questo è un problema se il programma utilizza molte librerie. Quindi il malvagio hacker dovrà smontarli tutti e rimontarli di nuovo, ma se riesce a farcela, avrà la "sua" versione firmata del programma il suo chiave.

In realtà c'è poca protezione da tutta questa disgrazia: effettuare l'offuscamento o spostare parte dei controlli logici/di sicurezza nel codice nativo.

Conclusione

Penso di averti detto quanto facilmente tutto può essere rotto su .NET se il creatore non ha fatto uno sforzo per proteggere il suo programma. E sei tu a decidere se vale la pena proteggersi e dedicarci tempo e risorse. O forse semplicemente creare un sistema basato sul web o una versione limitata gratuita. Sta agli sviluppatori decidere.

Vari generatori (password, nickname, numeri casuali e codici) sono molto diffusi in quanto sono ampiamente utilizzati da amministratori pubblici, titolari di organizzazioni e utenti comuni per vari scopi.

Generatore di codici promozionali– un servizio specifico che può essere utilizzato dai titolari di organizzazioni e imprese commerciali per condurre promozioni e concorsi a premi.

Per esempio, utilizzando un codice promozionale, si possono concedere sconti, i buoni regalo possono essere validi nei negozi e su altri servizi possono essere utilizzati per fornire l'accesso a una gamma più ampia di servizi.

Scelta

Per quegli utenti che utilizzano spesso i codici promozionali, è importante trovare un generatore funzionale e conveniente che soddisfi tutte le esigenze.

Tali servizi sono implementati sia come applicazioni per social networks(cosa particolarmente comoda, ad esempio, quando si effettuano promozioni tra gli abbonati pubblici), sia online che sotto forma di programmi installati su un computer (cosa nella maggior parte dei casi del tutto scomoda).

Differiscono nelle impostazioni e nell'elenco delle funzionalità.

Un generatore scelto correttamente può semplificare in modo significativo il processo di organizzazione di promozioni e offerte speciali, nonché di concorsi a premi.

Caratteristiche principali

Tutti i generatori più diffusi (e non così popolari) differiscono l'uno dall'altro per una serie di parametri.

Tra questi ci sono indicatori come il numero di caratteri nel codice, la presenza di un prefisso e un suffisso (che semplifica la classificazione e la divisione dei codici in gruppi), utilizzati in, ecc.

Inoltre, diversi servizi offrono diversi numeri di codici per la generazione simultanea (premendo un pulsante).

Di base specifiche i servizi discussi di seguito sono riportati nella tabella.

Tabella 1 . Caratteristiche comparative di vari servizi per la generazione di codici promozionali
NomeLicenzaPrefisso, postfissoSelezione dei simboli da utilizzareSelezione del numero di caratteriGenerazione rapida di codici multipli
GetEasyCode.ruProva gratuita, pagamento anticipato
Rendi casualeGratuitoNO
TakeTheCodeGratuitoSolo prefisso
AccademiaGratuitoNONONONO
Generatore ukrbio.comGratuitoNOLimitato
Studio F1GratuitoNOLimitato
InglobaleGratuitoSolo prefissoLimitato

In base a queste caratteristiche è più facile fare la scelta giusta.

GetEasyCode.ru

Questo è un sito Web di una pagina a caricamento rapido con un generatore veloce e stabile.

Quasi sempre disponibile.

La principale caratteristica distintiva del servizio– massima funzionalità e alta velocità.

Il menu è semplice e intuitivo, il design è gradevole e non distrae dal lavoro.

  • Ti permette di creare un prefisso e un suffisso;
  • Puoi generare più codici contemporaneamente (da 1 a 100);
  • L'utente può scegliere quali simboli utilizzare nel codice.
  • Commutazione scomoda del numero di codici;
  • Fornitura a pagamento da 100 a 999 codici - costo 299 rubli (al momento in cui scrivo);
  • Fornitura a pagamento di 1000 codici o più - costa 999 rubli (anche al momento della scrittura);
  • È necessario premere costantemente il pulsante "Non sono un robot".

Ecco cosa dicono gli utenti che hanno già utilizzato questo generatore: "Servizio conveniente e multifunzionale", "Prezzi piuttosto alti per la generazione", "È conveniente usare questo generatore: lo uso solo io".

Rendi casuale

Questo sito è progettato per generare in modo casuale varie password, codici promozionali, numeri, ecc.

È multifunzionale e conveniente per chi fa vari scherzi o utilizza molte password.

Questo generatore è posizionato come servizio premium per i negozi online.

Non è il più semplice da usare, ma è un servizio davvero ricco di funzionalità e gratuito.

La caratteristica principale del servizio è la cosiddetta modalità di generazione del codice “individuale”.

In questa modalità è possibile scrivere il codice esistente, indicando che solo alcuni caratteri devono essere modificati.

  • Possibilità di registrare un prefisso;
  • Possibilità di inserire manualmente i simboli utilizzati;
  • Disponibilità di una modalità di generazione dei parametri “individuale”;
  • Puoi generare fino a 10 milioni di codici e scaricarli in un formato o nell'altro;
  • Indicazione della probabilità di selezione per codici di diverso tipo.
  • Impossibilità di registrare un suffisso;
  • Numero limitato di caratteri (da 4 a 16);
  • Vengono generati almeno 1000 codici.

Gli utenti rispondono al servizio nel modo seguente: "È conveniente poter generare molti codici contemporaneamente" e il menu non è molto conveniente."

Accademia

Questo generatore è disponibile per l'uso al collegamento https://academy.ru/personal/promo-gen/.

Questo è un sito multifunzionale, tra le sue tante funzioni c'è, tra le altre cose, un generatore di codici promozionali.

Un design piuttosto complesso e molte pagine portano al fatto che il servizio impiega molto tempo a caricarsi.

È importante capire che questo sito non è un generatore specializzato. Può aiutare per la generazione una tantum.

Ma è impossibile utilizzarlo su larga scala.

  • Generazione rapida senza impostazioni non necessarie;
  • Comoda copia del codice premendo un pulsante;
  • Database pronto dei codici promozionali non utilizzati.
  • Un numero molto limitato di funzioni: non è possibile selezionare il numero o il numero di codici generati contemporaneamente, ecc.;
  • Non è possibile specificare un prefisso o un suffisso; anche il disegno del codice è selezionato dal sistema per impostazione predefinita;
  • Ci sono molti collegamenti diversi e complicazioni di progettazione sulla pagina, il che rende il lavoro non troppo semplice.

Gli utenti parlano del generatore in questo modo: "Potrebbe essere giusto ricevere un codice promozionale, ma non è chiaro come utilizzarlo in modo più ampio", "Molto scomodo e poche funzioni".

Generatore ukrbio.com

Questo è un generatore di una pagina con un menu semplice e un'interfaccia intuitiva.

Ha un design semplice e piacevole, grazie al quale la pagina si carica rapidamente.

Il servizio funziona stabilmente e fornisce un insieme sufficiente di funzioni.

Questo servizio ti permette di generare combinazioni solo da numeri, solo da lettere, miste, comprese o.

Puoi anche modificare il formato delle lettere e visualizzare tutti i codici in un formato o nell'altro.

  • Menu semplice e design minimalista della pagina del sito Web;
  • Creazione gratuita di un numero molto elevato di codici (da 1 a 9999 pezzi);
  • Esistono possibilità piuttosto ampie nella personalizzazione del formato e dell'aspetto dei codici futuri.
  • <Рис. 8 Studio F1>

    Questo servizio di generazione multifunzionale è disponibile su https://studiof1.ru/blog/developing/passgen/.

    Il sito web è una risorsa multifunzionale con servizi per la promozione del sito web, ecc.

    La risorsa ha un design abbastanza semplice ed è comoda da utilizzare nei casi in cui l'utente, oltre alle promozioni, organizza concorsi a premi e altri eventi per attirare il pubblico.

    A rigor di termini, questo servizio si chiama generatore di password ed è in grado di creare combinazioni piuttosto complesse e varie che possono essere utilizzate come codici promozionali.

    Dopotutto, questo servizio ti consente di utilizzare quasi tutte le stesse impostazioni offerte dal generatore di codici promozionali.

    • Possibilità di selezionare la lunghezza della password e la sua composizione (lettere minuscole e maiuscole, numeri, segni);
    • Possibilità di generare più codici password contemporaneamente;
    • Questo sito ha molte funzioni ausiliarie, spesso necessarie, a portata di mano.
    • Impossibilità di impostare prefisso e suffisso;
    • Non è possibile limitare o selezionare i caratteri utilizzati;
    • Tutti i codici sono scritti in una parola senza spazi e hanno approssimativamente lo stesso aspetto, non possono essere scaricati, ma solo copiati come testo semplice, il che è scomodo se ce ne sono molti.

Immaginiamo una situazione in cui dovevi “distruggere Windows” (rimuovere il sistema operativo sistema Windows) e installarne uno nuovo. Se riesci a far fronte a questo, potrebbe sorgere un problema come l'installazione di programmi e giochi che ti sono già familiari. Va bene se sono disponibili gratuitamente e gratuitamente, ma cosa fare quando hai pagato per un programma (o un gioco) e quando lo reinstalli, ti richiede di farlo chiave di licenza(e questo è abbastanza normale)? Va bene se lo hai salvato da qualche parte e lo hai annotato, ma cosa succede se hai perso o non hai lasciato la chiave? In questo caso ci sono due soluzioni.

1) Scrivere a sostegno di questo programma e spiegare la situazione. Se gli sviluppatori sono normali e dimostri loro che hai davvero acquistato il loro prodotto, allora ti aiuteranno.
2) Usane uno programma gratuito, di cui ci sarà testo qui sotto.

Quindi si chiama il programma Belarc Advisor: controllo gratuito del PC personale

Il processo di installazione è normale.
Innanzitutto siamo d'accordo con il messaggio informativo secondo cui esiste anche una versione per Android

Quindi accettiamo il contratto di licenza


Successivamente, fai clic sul pulsante Installa (il programma non chiede dove installare) e accetta di analizzare il sistema per cercare le chiavi:


Stiamo aspettando il completamento


Alla fine si aprirà una finestra (questo tipo di report) con varie informazioni (sistema operativo, tutti i componenti, utenti, reti, ecc.). Qui cerchiamo la voce Licenze software in basso e vediamo tutto ciò che ha trovato il programma:

Non ho molto, perché... Per lo più utilizzo soluzioni gratuite, ma il significato è chiaro.

Pertanto, utilizzando questo programma puoi scoprire le chiavi di licenza non solo per sistema operativo e programmi, oltre a scoprire statistiche dettagliate sul tuo computer (fino alle ultime unità flash collegate). Pertanto, penso che questo programma ti sarà utile e vale la pena conoscerlo.




Superiore