elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [C#] Creacion de un Server Builder con recursos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C#] Creacion de un Server Builder con recursos  (Leído 1,702 veces)
BigBear


Desconectado Desconectado

Mensajes: 545



Ver Perfil
[C#] Creacion de un Server Builder con recursos
« en: 10 Marzo 2015, 18:08 pm »

[Titulo] : Creacion de un Server Builder con recursos
[Lenguaje] : C#
[Autor] : Doddy Hackman

[Temario]

-- =================--------

0x01 : Introduccion
0x02 : Creacion del builder
0x03 : Creacion del stub
0x04 : Probando el programa
0x05 : Builder Tools

-- =================--------

0x01 : Introduccion

En este manual les voy a enseñar como hacer un Server Builder en C# con recursos , en el manual anterior les enseñe como hacerlo mediante EOF , una mejor forma de hacer un server builder es usando recursos.

Empecemos ...

0x02 : Creacion del builder

Para crear el server builder tenemos que crear un nuevo proyecto en Visual Studio de esta manera si usan la version 2010 :

"Archivo -> Nuevo -> Proyecto -> Elegimos Aplicacion de Windows Forms" y le damos en aceptar

Como en la siguiente imagen :



Ahora tenemos que crear dos edit y un boton con el texto "Make Server" como en la siguiente imagen :



Despues deben cambiar el titulo del formulario a "Builder" y cambiarle el nombre por defecto de los edits de la siguiente forma :

textBox1 -> ip
textBox2 -> port

Para empezar vamos al inicio del codigo del programa y agregamos el siguiente codigo para poder manejar recursos :

Código
  1. using System.CodeDom.Compiler;
  2. using Microsoft.CSharp;
  3. using System.IO;
  4. using System.Resources;
  5.  

Una vez hecho hacemos doble click en el boton y ponemos el siguiente codigo :

Código
  1. private void button1_Click(object sender, EventArgs e)
  2. {
  3. string linea = "-ip-"+ip.Text+"-ip-"+"-port-"+port.Text+"-port-"; // Establecemos la variable "linea" como los datos de la IP y el puerto
  4.  
  5. System.Resources.ResourceWriter escribiendo = new System.Resources.ResourceWriter("configuration.resources"); // Empezamos a escribir el
  6. // recurso "configuration"
  7.  
  8. escribiendo.AddResource("configuration",linea); // Agregamos el recurso "configuration" con los datos de la variable "linea"
  9. escribiendo.Close(); // Guarda los recursos y se cierra
  10.  
  11. System.CodeDom.Compiler.CompilerParameters compilador = new System.CodeDom.Compiler.CompilerParameters(); // Iniciamos la instancia CompilerParameters
  12.  
  13. compilador.GenerateExecutable = true; // Aclaramos que queremos que genere un ejecutable
  14. compilador.OutputAssembly = "stub.exe"; // Establecemos el nombre del ejecutable a generar
  15. compilador.ReferencedAssemblies.Add("System.dll"); // Agregamos el ensamblado System
  16. compilador.ReferencedAssemblies.Add("System.Windows.Forms.dll"); // Agregamos el ensamblado System.Windows.Forms
  17. compilador.EmbeddedResources.Add("configuration.resources"); // Agregamos los recursos que se van a incluir en el ejecutable resultante
  18. compilador.CompilerOptions += "/t:winexe"; // Establecemos los argumentos de la linea de comandos que usara el compilador
  19.  
  20. System.CodeDom.Compiler.CompilerResults final = new Microsoft.CSharp.CSharpCodeProvider().CompileAssemblyFromSource(compilador, Properties.Resources.stub);
  21.  
  22. // Compilamos el recurso
  23.  
  24. if (File.Exists("configuration.resources")) // Si existe el archivo "configuration.resources" ...
  25. {
  26. System.IO.File.Delete("configuration.resources"); // Lo borramos
  27. }
  28. MessageBox.Show("Done"); // Mostramos por pantalla un mensaje para decir que el stub esta listo
  29. }
  30.  

El codigo les deberia ver algo asi :



Con eso ya tendriamos hecho el builder.

0x03 : Creacion del stub

Para hacer el stub , tenemos que seguir en el mismo proyecto , entonces vamos a "Proyecto->Propiedades" y seleccionamos la pestaña de "Recursos" , les deberia aperecer esta ventana :



Ahora hacemos click en "Agregar recurso" y seleccionamos "Agregar nuevo archivo de texto" , entonces nos va a aparecer una nueva ventana y escriben "stub".

Como en la siguiente imagen :



Una vez completado veran que pueden escribir en el stub.txt , tienen que poner el siguiente codigo :

Código
  1. using System;
  2. using System.Text;
  3. using System.Windows.Forms;
  4. using System.Resources;
  5. using System.Text.RegularExpressions;
  6.  
  7. namespace stub
  8. {
  9.    class Program
  10.    {
  11.        static void Main()
  12.        {
  13.  
  14.            string ip = ""; // Declaramos la variable string "ip" que contendra la IP
  15.            string port = ""; // Declaramos la variable string "port" que contendra el puerto
  16.  
  17.            ResourceManager leyendo_recurso = new ResourceManager("configuration", System.Reflection.Assembly.GetExecutingAssembly()); // Cargamos los datos
  18.            // del recurso "configuration"
  19.  
  20.            string datos = leyendo_recurso.GetString("configuration"); // Leemos los datos del recurso "configuration"
  21.  
  22.            Match regex = Regex.Match(datos, "-ip-(.*?)-ip--port-(.*?)-port-", RegexOptions.IgnoreCase); // Usamos una expresion regular para buscar la IP
  23.            // y el puerto
  24.            if (regex.Success) // Si se encontro algo ...
  25.            {
  26.                ip = regex.Groups[1].Value; // Guardamos la IP encontrada en la variable "ip"
  27.                port = regex.Groups[2].Value; // Guardamos el puerto encontrado en la variable "port"
  28.            }
  29.  
  30.            MessageBox.Show("[+] IP : " + ip); // Mostramos la IP con un mensaje usando la variable "ip"
  31.            MessageBox.Show("[+] Port : " + port); // Mostramos el puerto con un mensaje usando la variable "port"
  32.  
  33.        }
  34.    }
  35. }
  36.  

Una imagen de como deberia quedar :



Con eso ya terminamos el stub.

0x04 : Probando el programa

Una vez terminado el programa podremos probarlo , entonces cargamos el builder y pongan los datos que quieran , le dan al boton "Make Server" y despues cargan el stub para mostrar los datos cargados desde el builder.

Les deberia que quedar algo asi :









0x05 : Builder Tools

Como regalo les dejo una clase en C# que hice para aplicar el metodo EOF de una forma mas facil y segura (datos cifrados con XOR).

El codigo viene con ejemplos de uso y tiene el siguiente codigo :

Código
  1. // Class Name : Builder Tools
  2. // Version : 0.1
  3. // (C) Doddy Hackman 2015
  4. //
  5. // Examples :
  6. //builder_tools tools = new builder_tools();
  7. //tools.escribir_eof("stub.exe","hola mundo de ***** [ip]morite[ip][port]sdasd[port]","key");
  8. //Console.Write(tools.leer_eof("stub.exe", "key"));
  9. //
  10.  
  11. using System;
  12. using System.Collections.Generic;
  13. using System.Text;
  14.  
  15. using System.IO;
  16. using System.Text.RegularExpressions;
  17.  
  18. namespace builder
  19. {
  20.    class builder_tools
  21.    {
  22.        public string xor_now(string linea, string key)
  23.        {
  24.            // Credits : Based on http://stackoverflow.com/questions/2532668/help-me-with-xor-encryption
  25.            // Thanks to Daniel Earwicker
  26.            var contenido = new StringBuilder();
  27.            for (int i = 0; i < linea.Length; i++)
  28.            {
  29.                contenido.Append((char)((uint)linea[i] ^ (uint)key[i % key.Length]));
  30.            }
  31.            return contenido.ToString();
  32.        }
  33.  
  34.        public bool escribir_eof(string archivo, string texto, string key)
  35.        {
  36.            string delimitador = "-0x646F646479206861636B6D616E-";
  37.  
  38.            FileStream abriendo = new FileStream(archivo, FileMode.Append);
  39.            BinaryWriter seteando = new BinaryWriter(abriendo);
  40.            seteando.Write(delimitador + xor_now(texto, key) + delimitador);
  41.            seteando.Flush();
  42.            seteando.Close();
  43.            abriendo.Close();
  44.  
  45.            return true;
  46.        }
  47.  
  48.        public string leer_eof(string archivo, string key)
  49.        {
  50.            StreamReader viendo = new StreamReader(archivo);
  51.  
  52.            string contenido = viendo.ReadToEnd();
  53.            string rta = "";
  54.  
  55.            Match regex = Regex.Match(contenido, "-0x646F646479206861636B6D616E-(.*?)-0x646F646479206861636B6D616E-", RegexOptions.IgnoreCase);
  56.  
  57.            if (regex.Success)
  58.            {
  59.                rta = xor_now(regex.Groups[1].Value, key);
  60.            }
  61.            else
  62.            {
  63.                rta = "WTF!";
  64.            }
  65.  
  66.            return rta;
  67.        }
  68.    }
  69. }
  70.  
  71. // The End ?
  72.  

Eso seria todo.

--========--
  The End ?
--========--

Version PDF.

Version en Video Tutorial :



En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problema con recursos de power builder
Programación General
XpandyX 0 1,942 Último mensaje 12 Mayo 2012, 14:00 pm
por XpandyX
Creación de builder
Dudas Generales
Slore 0 1,576 Último mensaje 14 Julio 2012, 02:04 am
por Slore
[Delphi] Creacion de un Server Builder « 1 2 »
Programación General
BigBear 11 5,976 Último mensaje 17 Julio 2013, 13:16 pm
por OmarHack
[C#] Creacion de un Server Builder
.NET (C#, VB.NET, ASP)
BigBear 0 2,115 Último mensaje 29 Agosto 2014, 21:13 pm
por BigBear
[Delphi] Creacion de un Server Builder con recursos
Programación General
BigBear 0 1,755 Último mensaje 9 Marzo 2015, 18:45 pm
por BigBear
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines