Kuna projektis kasutatakse .net obfuscatorit, otsitakse veebis palju mudeleid, nagu Dotfuscator, xeoncode, foxit jne.
Aga enamik tasudest on muidugi murtud versioonid ning ettevõte nõuab, et piraattarkvara ei tohi kasutada.
Pärast pikka otsimist leidsin lõpuks ConfuserEX-i ja seda oli okei kasutada, nii et võtsin selle kiiresti välja ja jagasin teiega.
Kuna internetis on vähe hiina tutvustusi, teen siin testi, et teile näidata:
1. Loo uus C# klassi teek, ma ei muuda nime, nimetan selle lihtsalt ClassLibrary1-ks ja lisan Class1.cs klassi alla lihtsa meetodi:
2. Loo teine konsoolirakendus ConsoleTest, lisa viite ClassLibrary1.dll ja kutsu testmeetod ClassLibrary1.Class1 peamise meetodi kaudu:
Pärast kompileerimist ava ConsoleTest.exe ILSpy-ga ja näed lähtekoodi allpool näidatud:
3, Nüüd proovime segamini ajada ConfuserExiga:
Pärast ConfuserExi allalaadimist avage see ja avage ConfuserEx.exe, nagu näidatud järgmisel joonisel:
4. Vaata prompti "Lohista siia sisendmoodulid"?
Siis pane ConsoleTest.exe just praegu, nagu alloleval pildil näha:
5. Klõpsa Seaded
- Select Packer
- Moodulid->ConsoleTest.exe
- Klõpsa + märgile, et näha reeglid, õige
Nagu allpool näidatud:
6. Klõpsa Protest!->Kaitse! , mis viitab edukale ekspordile (segaduses kaustas),
7. Alusta ILspyga... Segaduses, vaata ConsoleTest.exe lähtekoodi:
Kui meetod on tühi, kopeeri ConsoleTest.exe sõltuvuste ClassLibrary1.dll segaduses kausta, klõpsa Run ConsoleTest.exe ja väljasta õige tulemus.
Märkus
8. Kui sa lihtsalt ajad exe-faili segamini, on see okei, kui sa ajad segamini dll-faili, näed järgmist viga:
Viga: Puudub käivitatav moodul, puudub käivitatav keha?
Kas exe-faili pole? Paneme ConsoleTest.exe sisse ja ajame ClassLibrary1.dll segamini, vaata.
9. Eelmise meetodi järgi lohistasin ja kukutasin ConsoleTest.exe ja ClassLibrary1.dll ConfuserExi, et need omavahel segamini ajada.
Nagu allpool näidatud:
Kiire edu.
10. Aga me avasime selle uuesti... Segaduses, leidis ainult segaduses ConsoleTest.exe failid, kuhu ClassLibrary1.dll kadusid?
Kas sa ei saa DLL-faili segamini ajada?
Ära muretse, klikkime ConsoleTest.exe proovime, oh, ma lähen, see töötab edukalt, nagu alloleval pildil näha:
Ainus seletus siin on see, et ConfuserEx manustab dll-faili exe-sse.
Nüüd on segane ConsoleTest.exe 17KB, algne ConsoleTest.exe 5KB ja ClassLibrary1.dll samuti 5KB.
11. Kasutame ILSpyt, et näha ConsoleTest.exe, mis tekib pärast ConsoleTest.exe ja ClassLibrary1.dll samaaegset segamist.
Ma ei näe meetodit ega viidatud dll faili.
Noh, tänaseks on kõik.
Kinnitatud: Kuna ma ei leidnud võimalust dll-i eraldi segamini ajada keskpäeval, leidis see õpilane @四毛的家 pärastlõunal viisi, ja lisan juurde, kuidas dll-i eraldi segamini ajada.
8. sammu järgi leidsime, et dll-i segamini ajamisel EXE meetodi järgi teatati viga ning oleksime pidanud järgima alljärgnevaid samme:
Pärast dll-i lohistamist ConfuserExi ei saa seadetes valida Packerit, vaid klõpsa paremal oleval pliiatsinupul, nagu allpool näidatud.
Pärast pliiatsinuppu vajutamist ilmub Edit reegli dialoogiaken, vali üks element Presetist, valin siin maksimumi ja siis vajutan allolevale "+" nupule, valin anti ildasm (ilmselt selleks, et vältida kompileerimist IL-i kaudu), ja siis eksport õnnestub.
Kasutame ILSpyt, et kontrollida just segamini ajatud ClassLibrary1.dll, nagu alloleval joonisel näidatud,
Midagi ei paista.
Et testida saadaolevat obfuscated dll-i, panin unobfuscated ConsoleTest.exe ja obfuscated ClassLibrary1.dll ühte kausta, klõpsan Run ConsoleTest.exe ja õnnestun.
|