Coprimir exe de proyecto c# en Visual Studio 2008

Iniciado por jor1980, 22 Octubre 2010, 00:20 AM

0 Miembros y 1 Visitante están viendo este tema.

jor1980

Hola, me gustaría comprimir un archivo .exe de un proyecto creado por mi, he probado con aspack pero el exe creado no funciona. Cual podría usar?


[D4N93R]

Hola,

Puedes crear un proyecto Setup, y eso te crea un exe y un msi..

jor1980

Cita de: [D4N93R] en 22 Octubre 2010, 02:01 AM
Hola,

Puedes crear un proyecto Setup, y eso te crea un exe y un msi..

La intención es comprimirlo para que la gente tenga que hacer un esfuerzo si quiere decompilarlo

[D4N93R]

Podrías empezar por ahí xP

Bueno, son dos cosas:

1) Una aplicación que genere un archivo cifrado a apartir de uno o más ensamblados.
2) Esa aplicación generada (Llamémosla launcher) tiene que ser capaz de leer el archivo, descomprimirlo/descifrarlo usando el mismo algoritmo y luego cargarlo en memoria y ejecutar el EntryPoint por reflection.

Un saludo.

PD: No hace falta citar el mensaje anterior.

.:Weeds:.

Haz como si hicieras indetectable un troyano, pasale el themida xD


.::IT::.

si lo que buscas es hacer tu codigo ilegible ya sea para proteger cadenas de conexion o claves de algoritmos de encriptamiento pues

http://msdn.microsoft.com/es-es/library/ms227240%28VS.90%29.aspx

tambien hay una versión profesional pero con eso bastaria.
Simplemente .::IT::.

43H4FH44H45H4CH49H56H45H

#7
Para utilizar algun "Dotfuscator" ya sea libre o de pago, primero hay que ir probando con cada avance del proyecto, depende mucho del tipo de proyecto, en varias pruebas que hice como ejemplo:
Código (csharp) [Seleccionar]
using Microsoft.Office.Interop.Word;
Código (csharp) [Seleccionar]
using System.Runtime.InteropServices;
y algunas mas cuando el nivel de complejidad era medio, al usar algun "Dotfuscator" el *.exe quedaba inservible, es decir no se llegaba a cargar y simplemente daba un error.

Respecto a los compresores, la mayoria que funcionan con proyectos .NET tienen problemas (en Windows 7 y algunos casos en WinXP) con:

Código (csharp) [Seleccionar]
folderBrowserDialog
Código (csharp) [Seleccionar]
DragDrop
Código (csharp) [Seleccionar]
[STAThread]

Si es un proyecto grande, hay que ir acomodando el diseño respecto al compresor o el "Dotfuscator", para evitarse problemas al final, que diagnosticarlos luego de terminado el proyecto si es una...

Si el proyecto es pequeño, no creo que haya problemas, pero como dije es mejor probar con cada avance del proyecto.

Por mi parte recomendaria utilizar un compresor, puesto que los "Dotfuscator" son muy sencillos de revertir y existen muchas herramientas ya hechas, y de todos modos no sirven de mucho cuando desensamblas el *.exe, al contrario de los compresores que pueden lograr un poco de confusión respecto a si es un proyecto hecho en .NET.

Cita de: [D4N93R] en 22 Octubre 2010, 13:47 PM1) Una aplicación que genere un archivo cifrado a apartir de uno o más ensamblados.
2) Esa aplicación generada (Llamémosla launcher) tiene que ser capaz de leer el archivo, descomprimirlo/descifrarlo usando el mismo algoritmo y luego cargarlo en memoria y ejecutar el EntryPoint por reflection.

Al descompilar el code se puede ver todo eso y modificarlo directamente, al descomprimirlo se puede copiar el archivo descifrado
Código (csharp) [Seleccionar]
fileSystemWatcher

Es lo malo de .NET y tb de JAVA, que es sencillo relativamente obtener el codigo fuente.

Algo interesante es que los descompiladores para .NET no pueden leer ciertos bucles combinados con el manejo de API's de Windows.

Bueno como dije antes, en mi opinion es mejor utilizar un compresor y acomodar el proyecto a las limitaciones que tenga por el uso de dicho compresor.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

[D4N93R]

Sí, yo se  43H4FH44H45H4CH49H56H45H,

Pero, lo que yo digo es hacer todo eso en Memoria, ya yo lo he probado y testeado con personas que intentan "leer" el código de la aplicación, además de que hace más confuso el flujo de la aplicación.

43H4FH44H45H4CH49H56H45H

Tienes un ejemplo hecho?
Podrias subir el *.exe para ver la dificultad de "lectura"  ;D

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W