Kadangi projekte naudojamas .net obfuscator, internete ieškoma daugelio modelių, tokių kaip Dotfuscator, xeoncode, foxit ir kt.
Tačiau dauguma mokesčių, žinoma, yra nulaužtos versijos, o įmonė reikalauja, kad piratinė programinė įranga nebūtų naudojama.
Ilgai ieškojęs pagaliau radau "ConfuserEX" ir jį naudoti buvo gerai, todėl greitai jį išėmiau ir pasidalinau su jumis.
Kadangi internete yra nedaug kinų įžangų, aš čia padarysiu testą, kad parodyčiau jums:
1. Sukurkite naują C# klasės biblioteką, aš nekeisiu pavadinimo, tiesiog pavadinkite ją ClassLibrary1 ir pridėkite paprastą metodą pagal Class1.cs klasę:
2. Sukurkite kitą konsolės programą ConsoleTest, pridėkite nuorodos ClassLibrary1.dll ir iškvieskite bandymo metodą ClassLibrary1.Class1 pagrindiniame metode:
Sukompiliavę atidarykite ConsoleTest.exe naudodami ILSpy ir pamatysite šaltinio kodą, kaip parodyta toliau:
3, Dabar pabandykime supainioti su "ConfuserEx":
Atsisiuntę "ConfuserEx", išpakuokite jį ir atidarykite ConfuserEx.exe, kaip parodyta šiame paveikslėlyje:
4. Žiūrėkite raginimą "Vilkite įvesties modulius čia"?
Tada įdėkite ConsoleTest.exe tik dabar, kaip parodyta paveikslėlyje žemiau:
5. Spustelėkite Nustatymai
- Pasirinkite Pakuotoją
- Moduliai->ConsoleTest.exe
- Spustelėkite ženklą + Taisyklės, teisinga
Kaip parodyta žemiau:
6. Spustelėkite Protestuoti!->Apsaugoti! , raginantis sėkmingai eksportuoti (kataloge Supainiotas),
7. Atidarykite su ILspy... Sutrikęs, pažvelkite į ConsoleTest.exe šaltinio kodą:
Jei metodas tuščias, nukopijuokite ConsoleTest.exe priklausomybių ClassLibrary1.dll į katalogą Supainiotas, spustelėkite Vykdyti ConsoleTest.exe ir įveskite teisingą rezultatą.
Banknotas
8. Jei tiesiog supainiosite exe failą, tai gerai, jei tiesiog supainiosite dll failą, pamatysite šią klaidą:
Klaida: nėra vykdomojo modulio, nėra vykdomojo teksto?
Ar nėra exe failo? Įdėkime ConsoleTest.exe ir supainiokime jį su ClassLibrary1.dll, žiūrėk.
9. Pagal ankstesnį metodą nutempiau ConsoleTest.exe ir ClassLibrary1.dll į ConfuserEx, kad juos supainiočiau.
Kaip parodyta žemiau:
Greita sėkmė.
10. Bet mes vėl jį atidarėme... Sutrikęs, rado tik supainiotas ConsoleTest.exe failus, kur ClassLibrary1.dll dingo?
Ar negalite supainioti DLL failo?
Nesijaudinkite, spustelėkime ConsoleTest.exe pabandykite, oi, aš einu, jis sėkmingai veikia, kaip parodyta paveikslėlyje žemiau:
Vienintelis paaiškinimas čia yra tas, kad ConfuserEx įterpia dll į exe.
Dabar painus ConsoleTest.exe yra 17 KB, o originalus ConsoleTest.exe yra 5 KB, o ClassLibrary1.dll taip pat yra 5 KB.
11. Naudokime ILSpy, kad pamatytume ConsoleTest.exe, sugeneruotą supainiojus ConsoleTest.exe ir ClassLibrary1.dll tuo pačiu metu.
Nematau metodo, taip pat nematau nurodyto dll failo.
Na, tai viskas šiandien.
Pridedama: Kadangi vidurdienį neradau būdo, kaip supainioti dll atskirai, šis studentas rado būdą po pietų @四毛的家, ir aš pridėsiu, kaip supainioti dll atskirai.
Atlikdami 8 veiksmą, nustatėme, kad buvo pranešta apie klaidą supainiojant dll pagal EXE metodą, ir turėjome atlikti toliau nurodytus veiksmus:
Nuvilkę dll į ConfuserEx, nustatymuose negalite pasirinkti Packer, bet spustelėkite pieštuko mygtuką dešinėje, kaip parodyta toliau.
Spustelėjus pieštuko mygtuką, pasirodo dialogo langas Redaguoti taisyklę, pasirinkite vieną elementą iš anksto, čia pasirenku Maksimalus, tada spustelėkite žemiau esantį mygtuką "+", pasirinkite anti-ildasm (manau, kad užkirstumėte kelią kompiliavimui per IL), ir tada eksportas sėkmingas.
Mes naudojame ILSpy, kad patikrintume ką tik supainiotą ClassLibrary1.dll, kaip parodyta paveikslėlyje žemiau,
Nieko nematyti.
Norėdami išbandyti galimą užmaskuotą DLL, įdėjau neužmaskuotą ConsoleTest.exe ir užmaskuotą ClassLibrary1.dll į vieną katalogą, spustelėkite Vykdyti ConsoleTest.exe ir pavyks.
|