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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Crear Ejecutables y Modificar Variables en C#.NET
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Crear Ejecutables y Modificar Variables en C#.NET  (Leído 7,614 veces)
43H4FH44H45H4CH49H56H45H
Wiki

Desconectado Desconectado

Mensajes: 502



Ver Perfil
Crear Ejecutables y Modificar Variables en C#.NET
« en: 8 Marzo 2010, 07:14 am »

Primero necesitamos tener un ejecutable creado, en este caso para el ejemplo usare uno  hecho en ASM y ensamblado con MASM32

Código
  1. .386
  2. .model flat,stdcall
  3. option casemap:none
  4. Ventana proto :DWORD,:DWORD,:DWORD,:DWORD
  5. include \masm32\include\windows.inc
  6. include \masm32\include\user32.inc
  7. include \masm32\include\kernel32.inc
  8. includelib \masm32\lib\user32.lib
  9. includelib \masm32\lib\kernel32.lib
  10.  
  11. .data
  12. ClassName db "cVentana",0
  13. ;Declaramos la variable a cambiar
  14. Variable db "esperando",0
  15. cTexto db "edit",0
  16.  
  17. .data?
  18. hInstance HINSTANCE ?
  19. CommandLine LPSTR ?
  20. hwndEdit HWND ?
  21.  
  22. .const
  23. IDedit equ 1
  24.  
  25. .code
  26. start:
  27. invoke GetModuleHandle, NULL
  28.        mov    hInstance,eax
  29. invoke GetCommandLine
  30. invoke Ventana, hInstance,NULL,CommandLine, SW_SHOWDEFAULT
  31. invoke ExitProcess,eax
  32. Ventana proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD
  33. LOCAL wc:WNDCLASSEX
  34. LOCAL msg:MSG
  35. LOCAL hwnd:HWND
  36. mov   wc.cbSize,SIZEOF WNDCLASSEX
  37. mov   wc.style, CS_HREDRAW or CS_VREDRAW
  38. mov   wc.lpfnWndProc, OFFSET WndProc
  39. mov   wc.cbClsExtra,NULL
  40. mov   wc.cbWndExtra,NULL
  41. push  hInst
  42. pop   wc.hInstance
  43. mov   wc.hbrBackground,COLOR_BTNFACE+1
  44. mov   wc.lpszClassName,OFFSET ClassName
  45. invoke LoadIcon,NULL,IDI_QUESTION
  46. mov   wc.hIcon,eax
  47. mov   wc.hIconSm,eax
  48. invoke LoadCursor,NULL,IDC_HELP
  49. mov   wc.hCursor,eax
  50. invoke RegisterClassEx, addr wc
  51. INVOKE CreateWindowEx,WS_EX_CLIENTEDGE,ADDR ClassName,ADDR Variable,\
  52.           WS_SYSMENU,600,\
  53.           600,150,100,NULL,NULL,\
  54.           hInst,NULL
  55. mov   hwnd,eax
  56. INVOKE ShowWindow, hwnd,SW_SHOWNORMAL
  57. INVOKE UpdateWindow, hwnd
  58. .WHILE TRUE
  59.                INVOKE GetMessage, ADDR msg,NULL,0,0
  60.                .BREAK .IF (!eax)
  61.                INVOKE TranslateMessage, ADDR msg
  62.                INVOKE DispatchMessage, ADDR msg
  63. .ENDW
  64. mov     eax,msg.wParam
  65. ret
  66. Ventana endp
  67. WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
  68. .IF uMsg==WM_DESTROY
  69. invoke PostQuitMessage,NULL
  70. .ELSEIF uMsg==WM_CREATE
  71. invoke CreateWindowEx,WS_EX_CLIENTEDGE, ADDR cTexto,NULL,\
  72.                        WS_CHILD or WS_VISIBLE or WS_BORDER or ES_LEFT or\
  73.                        ES_AUTOHSCROLL,\
  74.                        20,15,100,25,hWnd,IDedit,hInstance,NULL
  75. mov  hwndEdit,eax
  76. invoke SetWindowText,hwndEdit,ADDR Variable
  77. invoke SetFocus, hwndEdit
  78. .ELSE
  79. invoke DefWindowProc,hWnd,uMsg,wParam,lParam
  80. ret
  81. .ENDIF
  82. xor    eax,eax
  83. ret
  84. WndProc endp
  85. end start
  86.  

"Variable" será sustituida en el programa hecho en c#.NET
Ahora necesitamos saber en que posición se encuentra la variable en el ejecutable para ello utilizamos un editor hexadecimal:


y vemos que está entre 2057 y 2065.

Realizamos el programa:


Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using System.IO;
  9.  
  10. namespace recursos
  11. {
  12.    public partial class Form1 : Form
  13.    {
  14.        public Form1()
  15.        {
  16.            InitializeComponent();
  17.        }
  18.        private void butExtraer_Click(object sender, EventArgs e)
  19.        {
  20.            try
  21.            {
  22.                SFguardar.Filter = "Archivo Ejecutables|*.exe";
  23.                SFguardar.Title = "Guardar archivo ejecutable nuevo";
  24.                SFguardar.ShowDialog();
  25.                if (SFguardar.FileName != "")
  26.                {
  27.                    int contador = 0;
  28.                    int iLetra = 0;
  29.                    int iTexto = 0;
  30.                    FileStream stream = new FileStream(SFguardar.FileName, FileMode.Create, FileAccess.Write);
  31.                    BinaryWriter writer = new BinaryWriter(stream);
  32.                    iTexto = txtVariable.Text.Length;
  33.                    foreach (int i in Properties.Resources.prueba)
  34.                    {
  35.                        if (contador > 2056 && contador < 2066)
  36.                        {
  37.                            if (iLetra < iTexto)
  38.                            {
  39.                                writer.Write(Convert.ToByte(txtVariable.Text[iLetra]));
  40.                                iLetra++;
  41.                            }
  42.                            else writer.Write(Convert.ToByte(0));
  43.                        }
  44.                        else writer.Write(Convert.ToByte(i));
  45.                        contador++;
  46.                    }
  47.                    writer.Close();
  48.                    stream.Close();
  49.                }
  50.            }
  51.            catch (Exception er)
  52.            {
  53.                MessageBox.Show(er.Message);
  54.            }
  55.        }
  56.  
  57.        private void txtVariable_TextChanged(object sender, EventArgs e)
  58.        {
  59.            butExtraer.Enabled = true;
  60.        }
  61.        private void txtVariable_KeyPress(object sender, KeyPressEventArgs e)
  62.        {
  63.            if (Convert.ToInt32(e.KeyChar) == 13) butExtraer_Click(null, null);
  64.        }
  65.  
  66.    }
  67. }
  68.  

El código se encargará de leer uno a uno los elementos del array representado por el archivo de recursos que en este caso  es el ejecutable mencionado, al llegar a la posición 2057 empezara a escribir el contenido del textbox en lugar de los datos originales y una vez que termina continua escribiendo el resto del contenido original, como resultado tenemos:


Así tb, si no utilizamos todos los caracteres que tiene la variable el programa los reemplazará con valores nulos así podremos reemplazar la variable total o parcialmente.

Tb puede hacerse de otro modo, si hacemos un programa que lea el contenido de un  ejecutable y lo escriba en un *.txt, este lo utilizaremos para declarar un array y seguiremos los mismos pasos que utilizamos cuando era un archivo de recurso.

Este seria el resultado guardado en un *.txt de prueba.exe, el cual utilizaremos para declarar un array para escribir el ejecutable con la variable modificada.

Código:
77,90,144,0,3,0,0,0,4,0,0,0,255,255,0,0,184,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,0,0,0,14,31,186,14,0,180,9,205,33,184,1,76,205,33,84,104,105,115,32,112,114,111,103,114,97,109,32,99,97,110,110,111,116,32,98,101,32,114,117,110,32,105,110,32,68,79,83,32,109,111,100,101,46,13,13,10,36,0,0,0,0,0,0,0,56,25,93,41,124,120,51,122,124,120,51,122,124,120,51,122,242,103,32,122,105,120,51,122,128,88,33,122,125,120,51,122,82,105,99,104,124,120,51,122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,69,0,0,76,1,3,0,156,54,147,75,0,0,0,0,0,0,0,0,224,0,15,1,11,1,5,12,0,2,0,0,0,4,0,0,0,0,0,0,0,16,0,0,0,16,0,0,0,32,0,0,0,0,64,0,0,16,0,0,0,2,0,0,4,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,64,0,0,0,4,0,0,0,0,0,0,2,0,0,0,0,0,16,0,0,16,0,0,0,0,16,0,0,16,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,72,32,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,72,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,116,101,120,116,0,0,0,234,1,0,0,0,16,0,0,0,2,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,96,46,114,100,97,116,97,0,0,240,1,0,0,0,32,0,0,0,2,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,64,46,100,97,116,97,0,0,0,36,0,0,0,0,48,0,0,0,2,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106,0,232,221,1,0,0,163,24,48,64,0,232,205,1,0,0,106,10,255,53,28,48,64,0,106,0,255,53,24,48,64,0,232,6,0,0,0,80,232,172,1,0,0,85,139,236,131,196,176,199,69,208,48,0,0,0,199,69,212,3,0,0,0,199,69,216,9,17,64,0,199,69,220,0,0,0,0,199,69,224,0,0,0,0,255,117,8,143,69,228,199,69,240,16,0,0,0,199,69,248,0,48,64,0,104,2,127,0,0,106,0,232,51,1,0,0,137,69,232,137,69,252,104,139,127,0,0,106,0,232,27,1,0,0,137,69,236,141,69,208,80,232,33,1,0,0,106,0,255,117,8,106,0,106,0,106,100,104,150,0,0,0,104,88,2,0,0,104,88,2,0,0,104,0,0,8,0,104,9,48,64,0,104,0,48,64,0,104,0,2,0,0,232,196,0,0,0,137,69,176,106,1,255,117,176,232,243,0,0,0,255,117,176,232,247,0,0,0,106,0,106,0,106,0,141,69,180,80,232,178,0,0,0,11,192,116,20,141,69,180,80,232,213,0,0,0,141,69,180,80,232,150,0,0,0,235,217,139,69,188,201,194,16,0,85,139,236,131,125,12,2,117,9,106,0,232,149,0,0,0,235,104,131,125,12,1,117,77,106,0,255,53,24,48,64,0,106,1,255,117,8,106,25,106,100,106,15,106,20,104,128,0,128,80,106,0,104,19,48,64,0,104,0,2,0,0,232,62,0,0,0,163,32,48,64,0,104,9,48,64,0,255,53,32,48,64,0,232,95,0,0,0,255,53,32,48,64,0,232,78,0,0,0,235,21,255,117,20,255,117,16,255,117,12,255,117,8,232,17,0,0,0,201,194,16,0,51,192,201,194,16,0,204,255,37,64,32,64,0,255,37,56,32,64,0,255,37,52,32,64,0,255,37,32,32,64,0,255,37,16,32,64,0,255,37,20,32,64,0,255,37,24,32,64,0,255,37,28,32,64,0,255,37,60,32,64,0,255,37,36,32,64,0,255,37,40,32,64,0,255,37,44,32,64,0,255,37,48,32,64,0,255,37,4,32,64,0,255,37,0,32,64,0,255,37,8,32,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,188,33,0,0,174,33,0,0,206,33,0,0,0,0,0,0,18,33,0,0,32,33,0,0,44,33,0,0,62,33,0,0,4,33,0,0,94,33,0,0,112,33,0,0,126,33,0,0,146,33,0,0,240,32,0,0,222,32,0,0,82,33,0,0,204,32,0,0,0,0,0,0,148,32,0,0,0,0,0,0,0,0,0,0,162,33,0,0,16,32,0,0,132,32,0,0,0,0,0,0,0,0,0,0,226,33,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,188,33,0,0,174,33,0,0,206,33,0,0,0,0,0,0,18,33,0,0,32,33,0,0,44,33,0,0,62,33,0,0,4,33,0,0,94,33,0,0,112,33,0,0,126,33,0,0,146,33,0,0,240,32,0,0,222,32,0,0,82,33,0,0,204,32,0,0,0,0,0,0,86,0,67,114,101,97,116,101,87,105,110,100,111,119,69,120,65,0,131,0,68,101,102,87,105,110,100,111,119,80,114,111,99,65,0,0,147,0,68,105,115,112,97,116,99,104,77,101,115,115,97,103,101,65,0,0,34,1,71,101,116,77,101,115,115,97,103,101,65,0,148,1,76,111,97,100,67,117,114,115,111,114,65,0,152,1,76,111,97,100,73,99,111,110,65,0,213,1,80,111,115,116,81,117,105,116,77,101,115,115,97,103,101,0,225,1,82,101,103,105,115,116,101,114,67,108,97,115,115,69,120,65,0,0,22,2,83,101,116,70,111,99,117,115,0,0,61,2,83,101,116,87,105,110,100,111,119,84,101,120,116,65,0,0,72,2,83,104,111,119,87,105,110,100,111,119,0,0,94,2,84,114,97,110,115,108,97,116,101,77,101,115,115,97,103,101,0,0,106,2,85,112,100,97,116,101,87,105,110,100,111,119,0,0,117,115,101,114,51,50,46,100,108,108,0,0,155,0,69,120,105,116,80,114,111,99,101,115,115,0,230,0,71,101,116,67,111,109,109,97,110,100,76,105,110,101,65,0,52,1,71,101,116,77,111,100,117,108,101,72,97,110,100,108,101,65,0,0,107,101,114,110,101,108,51,50,46,100,108,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,86,101,110,116,97,110,97,0,101,115,112,101,114,97,110,100,111,0,101,100,105,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

Resultado utilizado en el programa:

Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using System.IO;
  9.  
  10. namespace leerExe
  11. {
  12.    public partial class Form1 : Form
  13.    {
  14.        public Form1()
  15.        {
  16.            InitializeComponent();
  17.        }
  18.        private void butLeer_Click(object sender, EventArgs e)
  19.        {
  20.            FDabrirArchivo.Filter = "Archivo ejecutable|*.exe";
  21.            FDabrirArchivo.Title = "Abrir archivo ejecutable";
  22.  
  23.            if (FDabrirArchivo.ShowDialog() == DialogResult.OK)
  24.            {
  25.                Array bArchivo = File.ReadAllBytes(FDabrirArchivo.FileName);
  26.                SFguardarArchivo.Filter = "Archivo de Texto|*.txt";
  27.                SFguardarArchivo.Title = "Guardar archivo de texto";
  28.                SFguardarArchivo.ShowDialog();
  29.                if (SFguardarArchivo.FileName != "")
  30.                {
  31.                    FileStream stream = new FileStream(SFguardarArchivo.FileName, FileMode.OpenOrCreate, FileAccess.Write);
  32.                    StreamWriter writer = new StreamWriter(stream);
  33.                    foreach (object b in bArchivo)
  34.                    {
  35.                        writer.Write(b + ",");
  36.                    }
  37.                    writer.Close();
  38.                }
  39.            }
  40.        }
  41.  
  42.        private void butCrear_Click(object sender, EventArgs e)
  43.        {
  44.            int[] iArchivo = new int[2560] { 77, 90, 144, 0, 3, 0, 0, 0, 4, 0, 0, 0, 255, 255, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 14, 31, 186, 14, 0, 180, 9, 205, 33, 184, 1, 76, 205, 33, 84, 104, 105, 115, 32, 112, 114, 111, 103, 114, 97, 109, 32, 99, 97, 110, 110, 111, 116, 32, 98, 101, 32, 114, 117, 110, 32, 105, 110, 32, 68, 79, 83, 32, 109, 111, 100, 101, 46, 13, 13, 10, 36, 0, 0, 0, 0, 0, 0, 0, 56, 25, 93, 41, 124, 120, 51, 122, 124, 120, 51, 122, 124, 120, 51, 122, 242, 103, 32, 122, 105, 120, 51, 122, 128, 88, 33, 122, 125, 120, 51, 122, 82, 105, 99, 104, 124, 120, 51, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 69, 0, 0, 76, 1, 3, 0, 156, 54, 147, 75, 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, 15, 1, 11, 1, 5, 12, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 32, 0, 0, 0, 0, 64, 0, 0, 16, 0, 0, 0, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 16, 0, 0, 16, 0, 0, 0, 0, 16, 0, 0, 16, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 32, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 116, 101, 120, 116, 0, 0, 0, 234, 1, 0, 0, 0, 16, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 96, 46, 114, 100, 97, 116, 97, 0, 0, 240, 1, 0, 0, 0, 32, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 64, 46, 100, 97, 116, 97, 0, 0, 0, 36, 0, 0, 0, 0, 48, 0, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 0, 232, 221, 1, 0, 0, 163, 24, 48, 64, 0, 232, 205, 1, 0, 0, 106, 10, 255, 53, 28, 48, 64, 0, 106, 0, 255, 53, 24, 48, 64, 0, 232, 6, 0, 0, 0, 80, 232, 172, 1, 0, 0, 85, 139, 236, 131, 196, 176, 199, 69, 208, 48, 0, 0, 0, 199, 69, 212, 3, 0, 0, 0, 199, 69, 216, 9, 17, 64, 0, 199, 69, 220, 0, 0, 0, 0, 199, 69, 224, 0, 0, 0, 0, 255, 117, 8, 143, 69, 228, 199, 69, 240, 16, 0, 0, 0, 199, 69, 248, 0, 48, 64, 0, 104, 2, 127, 0, 0, 106, 0, 232, 51, 1, 0, 0, 137, 69, 232, 137, 69, 252, 104, 139, 127, 0, 0, 106, 0, 232, 27, 1, 0, 0, 137, 69, 236, 141, 69, 208, 80, 232, 33, 1, 0, 0, 106, 0, 255, 117, 8, 106, 0, 106, 0, 106, 100, 104, 150, 0, 0, 0, 104, 88, 2, 0, 0, 104, 88, 2, 0, 0, 104, 0, 0, 8, 0, 104, 9, 48, 64, 0, 104, 0, 48, 64, 0, 104, 0, 2, 0, 0, 232, 196, 0, 0, 0, 137, 69, 176, 106, 1, 255, 117, 176, 232, 243, 0, 0, 0, 255, 117, 176, 232, 247, 0, 0, 0, 106, 0, 106, 0, 106, 0, 141, 69, 180, 80, 232, 178, 0, 0, 0, 11, 192, 116, 20, 141, 69, 180, 80, 232, 213, 0, 0, 0, 141, 69, 180, 80, 232, 150, 0, 0, 0, 235, 217, 139, 69, 188, 201, 194, 16, 0, 85, 139, 236, 131, 125, 12, 2, 117, 9, 106, 0, 232, 149, 0, 0, 0, 235, 104, 131, 125, 12, 1, 117, 77, 106, 0, 255, 53, 24, 48, 64, 0, 106, 1, 255, 117, 8, 106, 25, 106, 100, 106, 15, 106, 20, 104, 128, 0, 128, 80, 106, 0, 104, 19, 48, 64, 0, 104, 0, 2, 0, 0, 232, 62, 0, 0, 0, 163, 32, 48, 64, 0, 104, 9, 48, 64, 0, 255, 53, 32, 48, 64, 0, 232, 95, 0, 0, 0, 255, 53, 32, 48, 64, 0, 232, 78, 0, 0, 0, 235, 21, 255, 117, 20, 255, 117, 16, 255, 117, 12, 255, 117, 8, 232, 17, 0, 0, 0, 201, 194, 16, 0, 51, 192, 201, 194, 16, 0, 204, 255, 37, 64, 32, 64, 0, 255, 37, 56, 32, 64, 0, 255, 37, 52, 32, 64, 0, 255, 37, 32, 32, 64, 0, 255, 37, 16, 32, 64, 0, 255, 37, 20, 32, 64, 0, 255, 37, 24, 32, 64, 0, 255, 37, 28, 32, 64, 0, 255, 37, 60, 32, 64, 0, 255, 37, 36, 32, 64, 0, 255, 37, 40, 32, 64, 0, 255, 37, 44, 32, 64, 0, 255, 37, 48, 32, 64, 0, 255, 37, 4, 32, 64, 0, 255, 37, 0, 32, 64, 0, 255, 37, 8, 32, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, 33, 0, 0, 174, 33, 0, 0, 206, 33, 0, 0, 0, 0, 0, 0, 18, 33, 0, 0, 32, 33, 0, 0, 44, 33, 0, 0, 62, 33, 0, 0, 4, 33, 0, 0, 94, 33, 0, 0, 112, 33, 0, 0, 126, 33, 0, 0, 146, 33, 0, 0, 240, 32, 0, 0, 222, 32, 0, 0, 82, 33, 0, 0, 204, 32, 0, 0, 0, 0, 0, 0, 148, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 33, 0, 0, 16, 32, 0, 0, 132, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 226, 33, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, 33, 0, 0, 174, 33, 0, 0, 206, 33, 0, 0, 0, 0, 0, 0, 18, 33, 0, 0, 32, 33, 0, 0, 44, 33, 0, 0, 62, 33, 0, 0, 4, 33, 0, 0, 94, 33, 0, 0, 112, 33, 0, 0, 126, 33, 0, 0, 146, 33, 0, 0, 240, 32, 0, 0, 222, 32, 0, 0, 82, 33, 0, 0, 204, 32, 0, 0, 0, 0, 0, 0, 86, 0, 67, 114, 101, 97, 116, 101, 87, 105, 110, 100, 111, 119, 69, 120, 65, 0, 131, 0, 68, 101, 102, 87, 105, 110, 100, 111, 119, 80, 114, 111, 99, 65, 0, 0, 147, 0, 68, 105, 115, 112, 97, 116, 99, 104, 77, 101, 115, 115, 97, 103, 101, 65, 0, 0, 34, 1, 71, 101, 116, 77, 101, 115, 115, 97, 103, 101, 65, 0, 148, 1, 76, 111, 97, 100, 67, 117, 114, 115, 111, 114, 65, 0, 152, 1, 76, 111, 97, 100, 73, 99, 111, 110, 65, 0, 213, 1, 80, 111, 115, 116, 81, 117, 105, 116, 77, 101, 115, 115, 97, 103, 101, 0, 225, 1, 82, 101, 103, 105, 115, 116, 101, 114, 67, 108, 97, 115, 115, 69, 120, 65, 0, 0, 22, 2, 83, 101, 116, 70, 111, 99, 117, 115, 0, 0, 61, 2, 83, 101, 116, 87, 105, 110, 100, 111, 119, 84, 101, 120, 116, 65, 0, 0, 72, 2, 83, 104, 111, 119, 87, 105, 110, 100, 111, 119, 0, 0, 94, 2, 84, 114, 97, 110, 115, 108, 97, 116, 101, 77, 101, 115, 115, 97, 103, 101, 0, 0, 106, 2, 85, 112, 100, 97, 116, 101, 87, 105, 110, 100, 111, 119, 0, 0, 117, 115, 101, 114, 51, 50, 46, 100, 108, 108, 0, 0, 155, 0, 69, 120, 105, 116, 80, 114, 111, 99, 101, 115, 115, 0, 230, 0, 71, 101, 116, 67, 111, 109, 109, 97, 110, 100, 76, 105, 110, 101, 65, 0, 52, 1, 71, 101, 116, 77, 111, 100, 117, 108, 101, 72, 97, 110, 100, 108, 101, 65, 0, 0, 107, 101, 114, 110, 101, 108, 51, 50, 46, 100, 108, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 86, 101, 110, 116, 97, 110, 97, 0, 114, 101, 0, 0, 0, 0, 0, 0, 0, 0, 101, 100, 105, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
  45.            SFguardarArchivo.Filter = "Archivo Ejecutables|*.exe";
  46.            SFguardarArchivo.Title = "Guardar archivo ejecutable nuevo";
  47.            SFguardarArchivo.ShowDialog();
  48.            if (SFguardarArchivo.FileName != "")
  49.            {
  50.                int contador = 0;
  51.                int iLetra = 0;
  52.                int iTexto = 0;
  53.                FileStream stream = new FileStream(SFguardarArchivo.FileName, FileMode.Create, FileAccess.Write);
  54.                BinaryWriter writer = new BinaryWriter(stream);
  55.                iTexto = txtVariable.Text.Length;
  56.                foreach (int i in iArchivo)
  57.                {
  58.                    if (contador > 2056 && contador < 2066)
  59.                    {
  60.                        if (iLetra < iTexto)
  61.                        {
  62.                            writer.Write(Convert.ToByte(txtVariable.Text[iLetra]));
  63.                            iLetra++;
  64.                        }
  65.                        else writer.Write(Convert.ToByte(0));
  66.                    }
  67.                    else writer.Write(Convert.ToByte(i));
  68.                    contador++;
  69.                }
  70.                writer.Close();
  71.                stream.Close();
  72.            }
  73.        }
  74.        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
  75.        {
  76.            if (Convert.ToInt32(e.KeyChar) == 13) butCrear_Click(null, null);
  77.        }
  78.  
  79.        private void txtVariable_TextChanged(object sender, EventArgs e)
  80.        {
  81.            butCrear.Enabled = true;
  82.        }
  83.    }
  84.  
  85. }
  86.  

Descargar los proyectos:
http://www.4shared.com/file/236608224/327e0348/EscribirEXE.html

Si se me paso algo favor avisar, no lo revisé a fondo.


En línea


-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
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Compilacion personalizada en tiempo de ejecucion C#.net
« Respuesta #1 en: 8 Marzo 2010, 15:23 pm »

Buen aporte Codelive

y aca uno mio, para los que no saben ASM (como yo :P) ni usar un editor hexadecimal :xD un compilador personalizado, con cambio de variables incluso (perfecto para troyanos, pero pueden hacerse otros usos, ABMs personalizados por ejemplo)

codigo del troyano simple:
No hice un troyano, hice el principio del bosquejo del troyano :P (es tarea de ustedes continuarlos, yo les doy el mapa, ustedes recorran el camino ;))

Código
  1. using System;
  2. using System.Windows.Forms;
  3. using System.Net;
  4.  
  5. namespace TroyanCompiler
  6. {
  7.    static class Program
  8.    {
  9.        /// <summary>
  10.        /// The main entry point for the application.
  11.        /// </summary>
  12.        [STAThread]
  13.        static void Main()
  14.        {
  15.            // Aca poner todo lo que puede hacer el troyano
  16.            // Borre el form, ya que si es un troyano, el usuario no tiene que darse cuenta no? =P
  17.  
  18.            string sIP = "{IP}";
  19.            IPAddress ip = new IPAddress(sIP);
  20.            IPEndPoint endPoint = new IPEndPoint(ip, 600);
  21.  
  22.            MessageBox.Show("Aca deberia conectar a IP + " + ip.ToString());
  23.        }
  24.    }
  25. }
  26.  

Tendria la siguente salida


Ahora, el compilador, Un formulario con dos textbox (uno para IP y otro para la Salida del archivo) y un boton para generar (yo inclui un boton para el cuadro de dialogo, guardar)

Código
  1. /*****
  2.  * Generador de codigo personalizable, By Raul338
  3.  * Gracias a Mario Ropero, por su entrada en el blog, Este codigo esta basado en su codigo
  4.  * http://geeks.ms/blogs/mropero/default.aspx
  5.  ****/
  6.  
  7. private void BtnGenerar_Click(object sender, EventArgs e)
  8. {
  9.    // Validamos la IP introducida
  10.    bool isIP = Regex.IsMatch(txtIP.Text, @"^(?>(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?>25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$");
  11.  
  12.    if (!isIP)
  13.    {
  14.        MessageBox.Show("Ponga una IP valida, porque sino el troyano no funcionara");
  15.        return;
  16.    }
  17.  
  18.    // Instanciamos un compilador
  19.    CompilerParameters cp = new CompilerParameters();
  20.    cp.ReferencedAssemblies.Add("system.dll");
  21.    cp.ReferencedAssemblies.Add("system.windows.forms.dll");
  22.    // Opciones de compilador
  23.    cp.GenerateExecutable = true;
  24.    cp.CompilerOptions = "/target:winexe";
  25.    cp.IncludeDebugInformation = false;
  26.    cp.GenerateInMemory = false;
  27.  
  28.    // Cargamos el codigo en un StringBuilder
  29.    StringBuilder code = new StringBuilder();
  30.    // TroyanCode.cs es el codigo anterior
  31.    StreamReader sr = File.OpenText(Application.StartupPath + @"\TroyanCode.cs");
  32.    string linea;
  33.  
  34.    while (!sr.EndOfStream) {
  35.        linea = sr.ReadLine();
  36.        // Buscamos los comodines a reemplazar
  37.        if (Regex.IsMatch(linea, "\"{IP}\";$"))
  38.            linea = Regex.Replace(linea, "{IP}", txtIP.Text, RegexOptions.None);
  39.  
  40.        code.Append(linea + System.Environment.NewLine);
  41.    }
  42.  
  43.    // Compilamos
  44.    CompilerResults cr = CodeDomProvider.CreateProvider("C#").CompileAssemblyFromSource(cp, code.ToString());
  45.    if (cr.Errors.HasErrors) {
  46.        // Hay errores, los mostramos
  47.        StringBuilder error = new StringBuilder();
  48.        error.Append("Error al compilar: ");
  49.        foreach (CompilerError err in cr.Errors)
  50.        {
  51.            error.AppendFormat("{0}\n", err.ErrorText);
  52.        }
  53.        MessageBox.Show("Error al compilar: " + error.ToString());
  54.        return;
  55.    } else {
  56.        // Copiamos de temporales al lugar deseado
  57.        if (File.Exists(txtLugar.Text))
  58.            File.Delete(txtLugar.Text);
  59.        File.Copy(cr.PathToAssembly, txtLugar.Text);
  60.        File.Delete(cr.PathToAssembly);
  61.    }
  62. }
  63.  

Aca el codigo completo funcionando:

http://www.mediafire.com/download.php?wjmozjnnmwz



Espero que les sirva!!


« Última modificación: 8 Marzo 2010, 15:28 pm por raul338 » En línea

43H4FH44H45H4CH49H56H45H
Wiki

Desconectado Desconectado

Mensajes: 502



Ver Perfil
Re: Crear Ejecutables y Modificar Variables en C#.NET
« Respuesta #2 en: 8 Marzo 2010, 18:38 pm »

para los que no saben ASM (como yo :P)

El lenguaje de programación (c,c++,vb,vb.net,c#.net,etc) en el que se crea el *.exe a modificar da igual, solo utilize ASM para el ejemplo  :P.

Esta interesante tu Code, lo veo mejor mas tarde  ;D.
En línea


-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
Beowulf

Desconectado Desconectado

Mensajes: 46



Ver Perfil
Re: Crear Ejecutables y Modificar Variables en C#.NET
« Respuesta #3 en: 11 Marzo 2010, 00:08 am »

Muy buenos los dos, probando y APRENDIENDO.... ;-)
En línea

La navaja de Occam: la explicación mas simple suele ser que alguien la ha cagado (G. Hause)
elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Re: Crear Ejecutables y Modificar Variables en C#.NET
« Respuesta #4 en: 11 Marzo 2010, 17:29 pm »

Buen aporte.
En cuanto tenga un minuto lo pruebo porque hace poco estuve necesitando hacer esto.

Saludos!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Python]Crear variables.....
Scripting
Jirp96 3 7,487 Último mensaje 27 Mayo 2011, 01:29 am
por Novlucker
crear variables dinamicamente
Programación Visual Basic
Pegano25 4 2,500 Último mensaje 13 Julio 2011, 21:21 pm
por Pegano25
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines