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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Mensajes
Páginas: 1 ... 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 [43] 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 ... 91
421  Programación / .NET (C#, VB.NET, ASP) / [Source] Inyector de Dll's en C# en: 2 Junio 2007, 22:42 pm
Bueno, esta tarde como ya estaba cansado de programar otra cosa me decidi a traducir el codigo en C de MazarD sobre inyectar una Dll con el metodo de CreateRemoteThread. Antes lo habia intentado en VB pero me daba error en una API, con este lenguaje no e tenido problemas en traducirlo (lo que mas me a costado a sido buscar las declaraciones de las Apis.... :xD).

Aqui va el codigo:

Código
  1. /* Inyección de Dll escrito por Hendrix
  2.  * en base al codigo en C de MazarD por
  3.  * CreateRemoteThread.
  4.  *
  5.  * Fecha: 2-6-2007
  6.  *
  7.  * Dll echa en Vc++
  8.  */
  9.  
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Text;
  13. using System.Runtime.InteropServices;
  14. using System.Diagnostics;
  15. using System.ComponentModel;
  16. using System.IO;
  17.  
  18. namespace ConsoleApplication1
  19. {
  20.    class Apis
  21.    {
  22.        [DllImport("kernel32.dll", EntryPoint = "OpenProcess")]
  23.        public static extern IntPtr OpenProcess(uint dwDesiredAccess, bool bInheritHandle, uint dwProcessId);
  24.  
  25.        [DllImport("kernel32", CharSet = CharSet.Ansi)]
  26.        public extern static int GetProcAddress(int hwnd, string procedureName);
  27.  
  28.        [DllImport("kernel32.dll", EntryPoint = "GetModuleHandle")]
  29.        public static extern int GetModuleHandle(string lpModuleName);
  30.  
  31.        [DllImport("kernel32.dll", EntryPoint = "VirtualAllocEx")]
  32.        public static extern IntPtr VirtualAllocEx(IntPtr hProcess, IntPtr lpAddress, uint dwSize, uint flAllocationType, uint flProtect);
  33.  
  34.        [DllImport("kernel32")]
  35.        [return: MarshalAs(UnmanagedType.Bool)]
  36.        public static extern bool CloseHandle(IntPtr hObject);
  37.  
  38.        [DllImport("kernel32", EntryPoint = "CreateRemoteThread")]
  39.        public static extern IntPtr CreateRemoteThread(IntPtr hProcess, IntPtr lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, uint lpThreadId);
  40.  
  41.        [DllImport("kernel32.dll",EntryPoint = "WriteProcessMemory")]
  42.        public static extern IntPtr WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] buffer, uint size, IntPtr lpNumberOfBytesWritten);
  43.  
  44.    }
  45.  
  46.  
  47.  
  48.    class Program
  49.    {
  50.        static int Main(string[] args)
  51.        {
  52.            uint pid;
  53.            int load;
  54.            uint tama;
  55.            string ladll;
  56.            string nom;
  57.  
  58.            const uint PROCESS_ALL_ACCESS = 0x000F0000 | 0x00100000 | 0xFFF;
  59.            const uint MEM_COMMIT = 0x1000;
  60.            const uint MEM_RESERVE = 0x2000;
  61.            const uint PAGE_READWRITE = 0x40;
  62.  
  63.            try
  64.            {
  65.                Console.Write("Introduce el nombre del proceso (sin la extension): ");
  66.                nom = Console.ReadLine();
  67.                Console.Write("\nIntroduce la ruta de la dll a inyectar: ");
  68.                ladll = Console.ReadLine();
  69.  
  70.                if (File.Exists(ladll) == false)
  71.                {
  72.                    Console.WriteLine("La ruta de la Dll no existe");
  73.                    Console.Read();
  74.                    return 0;
  75.                }
  76.  
  77.                Byte[] dll = Encoding.ASCII.GetBytes(ladll);
  78.                tama = Convert.ToUInt32(ladll.Length);
  79.  
  80.                Process[] nombre = Process.GetProcessesByName(nom);
  81.                if (nombre.Length == 0)
  82.                {
  83.                    Console.WriteLine("El proceso no existe");
  84.                    Console.Read();
  85.                    return 0;
  86.                }
  87.                pid = Convert.ToUInt32(nombre[0].Id);
  88.  
  89.                IntPtr proc = Apis.OpenProcess(PROCESS_ALL_ACCESS, false, pid);
  90.                load = Apis.GetProcAddress(Apis.GetModuleHandle("kernel32.dll"), "LoadLibraryA");
  91.                IntPtr nLoad = new IntPtr(load);
  92.                IntPtr rems = Apis.VirtualAllocEx(proc, IntPtr.Zero, Convert.ToUInt32(ladll.Length), MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
  93.                Apis.WriteProcessMemory(proc, rems, dll, tama, IntPtr.Zero);
  94.                Apis.CreateRemoteThread(proc, IntPtr.Zero, 0, nLoad, rems, 0, 0);
  95.                Apis.CloseHandle(proc);
  96.                return 1;
  97.            }
  98.  
  99.            catch
  100.            {
  101.                Console.WriteLine("\nUn error ha ocurrido.");
  102.                Console.ReadLine();
  103.                return 0;
  104.            }
  105.  
  106.  
  107.  
  108.        }
  109.    }
  110. }

Le e añadido algo de poca importancia, y es que en el codigo de MazarD te pedia el pid y en este te pide el nombre (sin la extension) del ejecutable donde se tiene que inyectar, que es algo mas comodo.

Un Saludo y espero que le sirva a alguien.  ;)



Nota al moderador:
Si se tiene que mover a Troyenos y Virus se meuve....no lo e posteado hay porque precisamente esta el de MazarD en C... :-\ :-\

422  Programación / Scripting / Re: Envio de archivos... en: 2 Junio 2007, 20:22 pm
Y no es mucho mejor conseguir un FTP gratuito (por ejemplo el Geocites mismo) y subir los archivos hay y luego ya los descargas tu por tu cuenta??? :-\ :-\

423  Programación / Programación Visual Basic / Re: no me cierra el cmd en: 2 Junio 2007, 11:14 am
Para forzar a que se cambie aunque exista la ruta del regedit se pone al final de todo esto: /f

Esto fuerza a la sobreescritura, asi que no va a pedir Y/N.

Un Saludo.  ;)

424  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Tonteria importantisima para el-brujo y moderadores en: 2 Junio 2007, 11:12 am
Ok. Capito.... ;D ;)

Anelkaos, si te da eso nos invitas a una cena...xDDD  ;) ;)
425  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Tonteria importantisima para el-brujo y moderadores en: 2 Junio 2007, 10:41 am
No serian 18446744073709551616???

Ya que 2 elevado a 64 = 18446744073709551616.... :-\ :-\ :-\
426  Programación / Programación Visual Basic / Re: Funcion reemplazar en Visual basic 6.0 en: 1 Junio 2007, 20:16 pm
No se desbordara por la siguiente expresion:

Código:
todo = space(lof(1))

lo que hace eso es modificar el tamaño de la string (por defecto es 4 byts creo) y le establece un tamaño para que quepa justo el tamaño del archivo (LOF = Long of File) y el 1 indica el numerador del archivo que se trata ya que lo abriste con open..blablabla... #1)).

Asi no hay desbordamiento... ;) ;)

Un Saludo.  ;)

427  Programación / Programación Visual Basic / Re: Reproduccir Gif en formulario en: 1 Junio 2007, 14:19 pm
Haber si usamos mas el google... ;) ;)

Dll para reproducir gif animado:
http://www.recursosvisualbasic.com.ar/htm/ocx-componentes-activex-dll/51-dll-gif89-para-reproducir-gifs-animados.htm

Reproducir un gif sin Ocx en VB:
http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/59.htm

Desglosar un Gif animado en VB:
http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/67.htm

Ocx para reproducir Gif's animados:
http://www.recursosvisualbasic.com.ar/htm/ocx-componentes-activex-dll/27-ocx-marchoso-para-reproducir-gifs-animados.htm

Un Saludo.  ;)

428  Programación / Ingeniería Inversa / Re: Mis manuales de crackeo a programas (para iniciados) en: 30 Mayo 2007, 21:16 pm
Si....me gusta muchisimo la busna musica.... ;D ;D ;D

Ok, cuando tenga mas manuales ya los ire posteando... ;) ;)

Un Saludo.  ;)

429  Programación / .NET (C#, VB.NET, ASP) / Re: Archivos Binarios en: 30 Mayo 2007, 21:10 pm
Sacalos a texto plano (si es un exe por ejemplo, va a empezar por MZ...), luego saca los ascii de esas letras y luego al ascii pasalo a binario....aunque no se para que quieres ahcer eso... :-\ :-\ No es mas facil (y elegante) en hexadecimal como un buen editor hexadecimal???

Un Saludo.  ;)

430  Programación / Ingeniería Inversa / Re: Mis manuales de crackeo a programas (para iniciados) en: 29 Mayo 2007, 20:12 pm
Gracias tio....de 156 lecturas eres el primero que agradece, no sabia si era porque eran demasiado faciles apra iniciarse en esto o porque estaban vagos....xDDDD  :xD :xD

Un Saludo.  ;)

Páginas: 1 ... 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 [43] 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 ... 91
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines