Poiché nel progetto viene utilizzato l'obfuscatore .net, molti modelli vengono ricercati online, come Dotfuscator, xeoncode, foxit, ecc.
Ma la maggior parte delle commissioni, ovviamente, ci sono versioni cracklate, e l'azienda richiede che il software piratata non possa essere utilizzato.
Dopo aver cercato a lungo, finalmente ho trovato ConfuserEX, ed era ok da usare, così l'ho rapidamente tolto e condiviso con voi.
Poiché ci sono poche introduzioni cinesi su Internet, farò un test qui per dimostrartelo:
1. Crea una nuova libreria di classi C#, non cambierò il nome, la chiamerò semplicemente ClassLibrary1, e aggiungerò un metodo semplice sotto la classe Class1.cs:
2. Creare un'altra applicazione console ConsoleTest, aggiungere un ClassLibrary1.dll di riferimento e chiamare il metodo di test in ClassLibrary1.Class1 nel metodo Main:
Dopo aver compilato, apri il ConsoleTest.exe con ILSpy, e puoi vedere il codice sorgente come mostrato qui sotto:
3, Ora proviamo a confondere con ConfuserEx:
Dopo aver scaricato ConfuserEx, sbloccalo e apri il ConfuserEx.exe, come mostrato nella figura seguente:
4. Vedi il prompt "Trascina i moduli di input qui"?
Allora metti il ConsoleTest.exe proprio ora, come mostrato nella foto qui sotto:
5. Clicca su Impostazioni
- Seleziona Packer
- Moduli->ConsoleTest.exe
- Clicca sul segno + per Regola, vero
Come mostrato di seguito:
6. Clicca su Protesta!->Proteggi! , che stimola l'esportazione riuscita (nella directory Confused),
7. Apri con ILspy... Confuso, guarda ConsoleTest.exe il codice sorgente:
Se il metodo è vuoto, copia il ClassLibrary1.dll delle dipendenze di ConsoleTest.exe nella directory Confused, clicca su Esegui ConsoleTest.exe e invia il risultato corretto.
Nota
8. Se confondi solo il file exe, va bene così, se confondi solo un file dll, vedrai il seguente errore:
Errore: Nessun modulo eseguibile, nessun corpo eseguibile?
Non esiste un file exe? Mettiamo il ConsoleTest.exe e confondiamolo con ClassLibrary1.dll, guarda.
9. Secondo il metodo precedente, ho trascinato e lasciato cadere il ConsoleTest.exe e ClassLibrary1.dll in ConfuserEx per confonderli insieme.
Come mostrato di seguito:
Successo rapido.
10. Ma l'abbiamo riaperto... Confuso, ho trovato solo ConsoleTest.exe file confusi, dove ClassLibrary1.dll andato?
Non puoi confondere il file dll?
Non preoccuparti, clicchiamo ConsoleTest.exe provare, oh, ci vado, funziona con successo, come mostrato nell'immagine qui sotto:
L'unica spiegazione qui è che ConfuserEx incorpora il dll nell'exe.
Ora il ConsoleTest.exe confuso è di 17KB, mentre l'originale ConsoleTest.exe è di 5KB e il ClassLibrary1.dll è anch'esso di 5KB.
11. Usiamo ILSpy per vedere il ConsoleTest.exe generato dopo aver confuso ConsoleTest.exe e ClassLibrary1.dll contemporaneamente.
Non riesco a vedere il metodo, né il file dll di riferimento.
Bene, per oggi è tutto.
Allegato: Dato che non ho trovato un modo per confondere la dll separatamente a mezzogiorno, questo studente ha trovato un modo nel pomeriggio @四毛的家, e aggiungerò come confondere la dll separatamente.
Secondo il passo 8, abbiamo riscontrato che veniva segnalato un errore quando si confondeva la dll secondo il metodo EXE, e avremmo dovuto seguire i passaggi seguenti:
Dopo aver trascinato il dll in ConfuserEx, non puoi selezionare Packer nelle Impostazioni, ma clicca sul pulsante a matita a destra, come mostrato qui sotto.
Dopo aver cliccato il pulsante matita, compare la finestra di dialogo Modifica regola, seleziono un elemento nel Preset, seleziono Massimo qui, poi clicco sul pulsante "+" qui sotto, seleziono anti-ildasm (immagino per evitare la compilazione tramite IL), e poi l'esportazione è riuscita.
Stiamo usando ILSpy per controllare il ClassLibrary1.dll appena confuso, come mostrato nella figura sottostante,
Non si vede nulla.
Per testare la dll offuscata disponibile, ho messo la ConsoleTest.exe non offuscata e la ClassLibrary1.dll offuscata in una sola cartella, clicco su Esegui ConsoleTest.exe e ho avuto successo.
|