Dado que se utiliza el ofuscador .net en el proyecto, se buscan muchos modelos en línea, como Dotfuscator, xeoncode, foxit, etc.
Pero la mayoría de las comisiones, por supuesto, son versiones crackeadas, y la empresa exige que no se pueda usar software pirata.
Después de buscar mucho tiempo, finalmente encontré ConfuserEX, y estaba bien usarlo, así que lo saqué rápidamente y lo compartí contigo.
Como hay pocas introducciones chinas en Internet, voy a hacer una prueba aquí para demostrártelo:
1. Crear una nueva biblioteca de clases en C#, no cambiaré el nombre, solo la llamaré ClassLibrary1 y añadiré un método sencillo bajo la clase Class1.cs:
2. Crear otra aplicación de consola llamada ConsoleTest, añadir un ClassLibrary1.dll de referencia y llamar al método de prueba en ClassLibrary1.Class1 en el método principal:
Después de compilar, abre la ConsoleTest.exe con ILSpy, y puedes ver el código fuente como se muestra a continuación:
3, Ahora intentemos confundir con ConfuserEx:
Después de descargar ConfuserEx, descomprime y abre el ConfuserEx.exe, como se muestra en la siguiente figura:
4. ¿Ves el aviso "Arrastrar módulos de entrada aquí"?
Entonces pon el ConsoleTest.exe justo ahora, como se muestra en la imagen de abajo:
5. Haz clic en Configuración
- Seleccionar empaquetador
- Módulos->ConsoleTest.exe
- Haz clic en el signo + para ver Normas, verdadero
Como se muestra a continuación:
6. ¡Haz clic en Protestar!->¡Proteger! , lo que incita a exportar exitosamente (en el directorio Confused),
7. Abre con ILspy... Confundido, mira ConsoleTest.exe el código fuente:
Si el método está vacío, copia el ClassLibrary1.dll de las dependencias de ConsoleTest.exe al directorio Confused, haz clic en Ejecutar ConsoleTest.exe y muestra el resultado correcto.
Nota
8. Si solo confunes el archivo exe, esto está bien; si solo confunes un archivo dll, verás el siguiente error:
Error: ¿No hay módulo ejecutable, ni cuerpo ejecutable?
¿No hay ningún archivo exe? Vamos a poner el ConsoleTest.exe y confundirlo con ClassLibrary1.dll, mira.
9. Según el método anterior, arrastré y solté el ConsoleTest.exe y ClassLibrary1.dll en ConfuserEx para confundirlos.
Como se muestra a continuación:
Éxito rápido.
10. Pero lo abrimos de nuevo... Confundido, solo encontré confuso ConsoleTest.exe archivos, ¿dónde ClassLibrary1.dll fue?
¿No puedes confundir el archivo DLL?
No te preocupes, vamos a hacer clic ConsoleTest.exe intentar, oh, voy, funciona bien, como se muestra en la imagen de abajo:
La única explicación aquí es que ConfuserEx incrusta la dll en el ejecutable.
Ahora el ConsoleTest.exe confuso es de 17KB, mientras que el ConsoleTest.exe original es de 5KB y el ClassLibrary1.dll también de 5KB.
11. Usemos ILSpy para ver el ConsoleTest.exe generado tras confundir a ConsoleTest.exe y ClassLibrary1.dll al mismo tiempo.
No puedo ver el método, ni el archivo dll referenciado.
Bueno, eso es todo por hoy.
Adjunto: Como no encontré la forma de confundir la dll por separado al mediodía, este alumno la encontró en la @四毛的家 de la tarde, y añadiré cómo confundir la dll por separado.
Según el paso 8, encontramos que se reportó un error al confundir la dll según el método EXE, y deberíamos haber seguido los siguientes pasos:
Después de arrastrar la dll a ConfuserEx, no puedes seleccionar Packer en la configuración, pero haz clic en el botón lápiz a la derecha, como se muestra a continuación.
Después de hacer clic en el botón lápiz, aparece el cuadro de diálogo Editar regla, selecciono un elemento en el Preset, selecciono Máximo aquí, luego hago clic en el botón "+" de abajo, selecciono anti ildasm (supongo que para evitar la compilación a través de IL), y entonces la exportación es exitosa.
Estamos usando ILSpy para comprobar el ClassLibrary1.dll que acaba de confundirse, como se muestra en la figura de abajo,
No se ve nada.
Para probar la DLL ofuscada disponible, pongo la ConsoleTest.exe no ofuscada y la ClassLibrary1.dll ofuscada en un mismo directorio, hago clic en Ejecutar ConsoleTest.exe y tengo éxito.
|