Título: Como desencyptar y ejecutar en Memorya Publicado por: PokiPoki en 26 Mayo 2014, 03:10 am Muy buenas a todos los componentes del Foro,vengo a pediros informacion de como desencryptar un archivo y poder ejecutarlo en Memorya.
Recien empiezo a usar este leguaje y aun me cuesta entender el uso de algunas funciones,ya que mi ingles es muy basico y me ayudo del vendito San Google :( ,bueno este es el codigo que estoy utilizando como Loader. Código
y este seria Test.exe,solo pongo la parte del sub main ya que el Form1 y los demas modulos llevan mucho code Código
Tanto si tengo Test.exe en el mismo directorio,como si lo agrego como recurso funciona bien,mi problema es cuando lo intento desencyptar, bueno el caso es que yo encrypto Test.exe,con Base64 por ejemplo y lo guardo con otro nombre,a primera vista parece un archivo roto digo roto por que no tiene icono ni nada,lo abro con notepad++ y dentro como es logico solo encuentro un string muy largo que coresponde al encryptado de Test.exe,pues lo que quisiera saber es como desencryptarlo y ejecutarlo en memorya sin tener que escribir otra vez los byte en el pc osea hacer todo el proceso en memorya. E leido sobre como utilizar MemoryStream,pero devido a que recien empiezo a entender y comprender este lenguaje aun no e podido hacerlo funcionar corectamente. Un saludo compañeros PD: No es mas sabio el que mas sabe,si no el que menos pregunta <<<< By PokiPoki Título: Re: Como desencyptar y ejecutar en Memorya Publicado por: kub0x en 27 Mayo 2014, 00:14 am Muy buenas PokiPoki,
existen varías formas de codificar y decodificar base64, en tu caso si quisieras codificar el archivo utilizarías un array de bytes ( Byte() ). Si quisieras decodificar el archivo entonces extraerías la cadena base64 del ejecutable y la decodificarías con la siguiente función: Código
El code fue extraido de : http://www.nonhostile.com/page-vb-net-base64-encoding-decoding.asp, pues ando bastante vago :D Este code simplemente convertiría el string base64 extraído del ejecutable codificado en un Array de bytes ( Byte() ) el cual podrías cargar en el proceso deseado mediante Assembly.Load. Si tu propósito fuera codear un Crypter entonces necesitarías decodificar un bloque de datos ( Byte() ) que represente el programa en b64. Saludos! Título: Re: Como desencyptar y ejecutar en Memorya Publicado por: PokiPoki en 27 Mayo 2014, 18:19 pm Hola kub0x,no se si no lo hago bien,pero no me funciona,asi e dejado el code
la funcion que tu me as dejado ya la estaba utilizando 'Convert.FromBase64String' esto hace la funcion si no me equivoco :huh: Código
y con esto encrypto Test.exe para pasarlo a Encrypt.exe,esto si lo e sacado de un crypter...pero mi intencion no es hacer un crypter si no,poder desencryptar Encrypt.exe y ejecutar esos byte en el Assembly.Load,ya que esa funcion crea un proceso en memorya si no me equivoco Código
no se que lechugas hago mal,no lo se,igual tendria que añadir algo mas? si como lo e planteado no esta bien agradeceria que me organizaces un poco el code Un saludo para el Foro Título: Re: Como desencyptar y ejecutar en Memorya Publicado por: kub0x en 27 Mayo 2014, 23:07 pm Citando tu código:
Código
En tu ejecutable codificado tendrás el string en base64 que representa el conjunto de instrucciones o código de ese ejecutable. Lo que tienes que hacer es abrir dicho ejecutable, extraer la cadena en b64 y decodificarla en un array de bytes ( Byte() ) de esa forma podrías hacer Assembly.Load para cargar el ensamblado dinámicamente. En tu código simplemente formas un string con la ruta del archivo codificado y mandas dicho string a ser decodificado en b64, a ver si nos fijamos un poquito más la siguiente vez ;) Saludos! |