Ker se v projektu uporablja .net obfuscator, je veliko modelov iskanih na spletu, kot so Dotfuscator, xeoncode, foxit itd.
Večina stroškov pa je seveda v različicah crackanih, podjetje pa zahteva, da piratska programska oprema ne sme biti uporabljena.
Po dolgem iskanju sem končno našel ConfuserEX, ki je bil v redu za uporabo, zato sem ga hitro vzel ven in delil z vami.
Ker je na internetu malo uvodov v kitajščino, bom tukaj opravil test, da vam to pokažem:
1. Ustvariti novo knjižnico razredov v C#, imena ne bom spreminjal, samo poimenoval jo bom ClassLibrary1 in pod razred Class1.cs dodal preprosto metodo:
2. Ustvarite še eno konzolno aplikacijo ConsoleTest, dodajte referenčni ClassLibrary1.dll in pokličite testno metodo v ClassLibrary1. Class1 v glavni metodi:
Po prevajanju odprite ConsoleTest.exe z ILSpy in lahko vidite izvorno kodo, kot je prikazano spodaj:
3, Zdaj poskusimo zamenjati z ConfuserEx:
Po prenosu ConfuserEx ga razpakirajte in odprite ConfuserEx.exe, kot je prikazano na naslednji sliki:
4. Vidite poziv "Povleci vhodne module tukaj"?
Nato zdaj postavite ConsoleTest.exe, kot je prikazano na spodnji sliki:
5. Kliknite Nastavitve
- Izberi Packer
- Moduli->ConsoleTest.exe
- Kliknite na znak + za pravila, res
Kot je prikazano spodaj:
6. Kliknite Protest!->Zaščitite! , ki sproži uspešen izvoz (v mapi Confused),
7. Začni z ILspy... Zmeden, poglejte ConsoleTest.exe izvorno kodo:
Če je metoda prazna, kopirajte ClassLibrary1.dll ConsoleTest.exe odvisnosti v mapo Confused, kliknite Run ConsoleTest.exe in izpišite pravilen rezultat.
Opomba
8. Če samo zamenjate exe datoteko, je to v redu, če zamenjate samo dll datoteko, boste videli naslednjo napako:
Napaka: Ni izvršljivega modula, ni telesa izvršljive datoteke?
Ali ni exe datoteke? Vstavimo ConsoleTest.exe in ga zamenjajmo s ClassLibrary1.dll, poglej.
9. Po prejšnji metodi sem ConsoleTest.exe in ClassLibrary1.dll potegnil in spustil v ConfuserEx, da bi ju zmedel skupaj.
Kot je prikazano spodaj:
Takojšnji uspeh.
10. Ampak smo ga spet odprli... Zmeden, najden le zmeden ConsoleTest.exe datotekah, kam ClassLibrary1.dll šel?
Ne moreš zamenjati datoteke dll?
Ne skrbi, kliknimo ConsoleTest.exe poskusimo, oh, grem, deluje uspešno, kot je prikazano na spodnji sliki:
Edina razlaga tukaj je, da ConfuserEx vgradi dll v exe.
Zdaj je zmedena ConsoleTest.exe 17KB, medtem ko je originalni ConsoleTest.exe 5KB, ClassLibrary1.dll pa prav tako 5KB.
11. Uporabimo ILSpy za ogled ConsoleTest.exe, ki nastane po zamenjavi ConsoleTest.exe in ClassLibrary1.dll hkrati.
Ne vidim metode, prav tako ne vidim referenčne dll datoteke.
No, to je za danes vse.
Priloženo: Ker nisem našel načina, da bi zamenjal dll ločeno opoldneva, je ta študent našel način popoldne @四毛的家, in dodal bom, kako zamenjati dll posebej.
Po koraku 8 smo ugotovili, da je bila napaka prijavljena pri zamenjavi dll po metodi EXE, zato bi morali slediti spodnjim korakom:
Ko povlečete dll v ConfuserEx, v nastavitvah ne morete izbrati Packerja, ampak kliknete gumb s svinčnikom na desni, kot je prikazano spodaj.
Po kliku na gumb s svinčnikom se odpre pogovorno okno Uredi pravila, izberem en element v Prednastavitvi, tukaj izberem Največ, nato kliknem gumb "+" spodaj, izberem anti ildasm (predvidevam, da preprečim prevajanje prek IL), in izvoz je uspešen.
Uporabljamo ILSpy za preverjanje ClassLibrary1.dll, ki je bil pravkar zmeden, kot je prikazano na spodnji sliki,
Nič ni videti.
Za testiranje zamegljenega dll, ki je na voljo na voljo, sem nezamegljeno ConsoleTest.exe in zamegljeno ClassLibrary1.dll postavil v eno imenik, kliknil Run ConsoleTest.exe in uspel.
|