Koska projektissa käytetään .net-obfuskaattoria, monet mallit haetaan verkossa, kuten Dotfuscator, xeoncode, foxit jne.
Mutta suurin osa maksuista on tietysti murrettuja versioita, ja yritys vaatii, että piraattiohjelmistoja ei saa käyttää.
Pitkän etsinnän jälkeen löysin vihdoin ConfuserEX:n, ja se oli käyttökelpoinen, joten otin sen nopeasti esiin ja jaoin kanssasi.
Koska internetissä on vähän kiinalaisia esittelyjä, teen tässä testin osoittaakseni sinulle:
1. Luo uusi C#-luokkakirjasto, en vaihda nimeä, kutsun sitä vain ClassLibrary1:ksi ja lisään yksinkertaisen metodin Class1.cs-luokan alle:
2. Luo toinen konsolisovellus ConsoleTest, lisää viite ClassLibrary1.dll ja kutsu testimetodi ClassLibrary1.Class1:ssä päämetodissa:
Käännösten jälkeen avaa ConsoleTest.exe ILSpyllä, ja näet lähdekoodin alla esitetyn mukaisesti:
3, Yritetään nyt sekoittaa ConfuserEx:
ConfuserExin lataamisen jälkeen avaa se ja avaa ConfuserEx.exe, kuten seuraavassa kuvassa näkyy:
4. Katsotko kehotteen "Vedä input-moduuleja tähän"?
Sitten laita ConsoleTest.exe juuri nyt, kuten alla olevassa kuvassa näkyy:
5. Klikkaa asetuksia
- Select Packer
- Moduulit->ConsoleTest.exe
- Klikkaa +-merkkiä, niin saat säännöt, totta
Kuten alla on esitetty:
6. Klikkaa Protesti!->Suojaa! , mikä käynnistää onnistuneen viennin (Hämmentynyt hakemistossa),
7. Avaa ILspy... Hämmentyneenä, katso ConsoleTest.exe lähdekoodia:
Jos metodi on tyhjä, kopioi ConsoleTest.exe riippuvuuden ClassLibrary1.dll Sekaisin -hakemistoon, klikkaa Suorita ConsoleTest.exe ja tulosta oikea tulos.
Huomautus
8. Jos sekoitat vain exe-tiedoston, se on ok, jos sekoitat vain dll-tiedoston, näet seuraavan virheen:
Virhe: Ei suoritettavaa moduulia, ei suoritettavaa runkoa?
Eikö exe-tiedostoa ole? Laitetaan ConsoleTest.exe ja sekoitetaan se ClassLibrary1.dll, katso.
9. Edellisen menetelmän mukaan vedin ja pudotin ConsoleTest.exe ja ClassLibrary1.dll ConfuserExiin sekoittaakseni ne yhteen.
Kuten alla on esitetty:
Nopea onnistuminen.
10. Mutta avasimme sen uudelleen... Hämmentynyt, löysin vain sekavia ConsoleTest.exe tiedostoja, minne ClassLibrary1.dll katosi?
Etkö voi sekoittaa DLL-tiedostoa?
Älä huoli, klikataan ConsoleTest.exe kokeillaan, ai, mennään, se toimii onnistuneesti, kuten alla olevassa kuvassa näkyy:
Ainoa selitys tässä on, että ConfuserEx upottaa dll:n exe-tiedostoon.
Nyt sekava ConsoleTest.exe on 17KB, alkuperäinen ConsoleTest.exe on 5KB ja ClassLibrary1.dll myös 5KB.
11. Käytetään ILSpyä nähdäksemme ConsoleTest.exe, joka syntyy, kun ConsoleTest.exe ja ClassLibrary1.dll sekoitetaan samanaikaisesti.
En näe metodia, enkä viitattua dll-tiedostoa.
No, siinä kaikki tältä päivältä.
Liitteenä: Koska en löytänyt tapaa sekoittaa dll:ää erikseen keskipäivällä, tämä opiskelija löysi keinon iltapäivällä @四毛的家, ja lisään vielä sen, miten dll sekoitetaan erikseen.
Vaiheen 8 mukaan havaitsimme, että virhe raportoitiin, kun dll sekoitettiin EXE-menetelmän mukaan, ja meidän olisi pitänyt noudattaa alla olevia ohjeita:
Kun olet vetänyt dll:n ConfuserExiin, et voi valita Packeria asetuksista, vaan klikkaa oikealla olevaa kynänappia, kuten alla näkyy.
Kun klikkasin lyijykynänäppiä, Edit rule -valintaikkuna avautuu, valitse yksi kohde Presetistä, valitsen Maksimin, klikkaan alla olevaa "+"-painiketta, valitsen anti ildasm (kai estääkseni kääntämisen IL:n kautta), ja sitten vienti onnistuu.
Käytämme ILSpyä tarkistaaksemme juuri sekoittuneen ClassLibrary1.dll, kuten alla olevassa kuvassa näkyy,
Mitään ei näy.
Testatakseni saatavilla olevaa obfuscated dll:ää, laitoin unobfuscated ConsoleTest.exe ja obfuscated ClassLibrary1.dll yhteen hakemistoon, klikkaan Run ConsoleTest.exe ja onnistun.
|