Título: como encontrar y usar LoadLibrary y Getprocaddress usando PEB? Publicado por: Belial & Grimoire en 26 Junio 2012, 22:05 pm Hola tengo unas dudas sobre PEB
bueno, ya entendi como se encuentra PEB gracias al blog de Nox donde te explica sobre eso estuve haciendo pruebas para verificar si lo que hacia estaba bien, perdon por poner una mezcla de ASM y C pero no encontre otra manera de verificar que realmente la comparacion de PE fuera exacto Código
ahora, lo que sabia es que despues de esto tenia que llegar a IMAGE DATA DIRECTORY, donde se encuentra RVA o VirtualAddress aqui no se dos cosas, cual es el tamaño de IMAGE_OPTIONAL_HEADER? acaso son 0x78? entonces seria 0x76 y 0x78 empieza IMAGE_DATA_DIRECTORY? y lo que tendria que seguir en el codigo para llegar a EAT seria? Citar mov ebx, [ebx + 0x78] y bueno, de aqui que mas tendria que hacer para encontrar por ejemplo, LoadLibraryA y Getprocaddress? e visto que buscan direccion de nombres [0x20] y numero de nombres [0x18] e incluso veo que se saltan eso y van directo a [0x24] que seria numero de funciones me gustaria hacer un ejercicio para mostrar un MessageBox cargando user32.dll con LoadLibrary y mostrando MessageBoxA con GetprocAddress y ponerle algun mensaje, todo usando PEB espero me puedan ayudar P.D. Nox, me podrias decir que compilador usaste para compilar el ejemplo de tu blog, porfavor? salu2 Título: Re: como encontrar y usar LoadLibrary y Getprocaddress usando PEB? Publicado por: Иōҳ en 27 Junio 2012, 01:25 am Eso lo hice en la sintaxys de masm32, para el mismo ensamblador.
Mira aquí te dejo esto, zeropad ha vuelto y está terminando su trabajo: http://ricardonarvaja.info/WEB/OTROS/PROGRAMACION%20DE%20VIRUS/ Él obtiene el módulo del kernel32 a través del stack, que sería lo "mismo" que lo hagas con el PEB, entonces sitúate en el momento donde ya encontró el módulo de kernel y se dispone a obtener la función getproceaddress, que ahí lo explica detallado. También te recomiendo que leas sobre sobre el Formato PE. Saludos, Nox. Título: Re: como encontrar y usar LoadLibrary y Getprocaddress usando PEB? Publicado por: x64core en 27 Junio 2012, 10:57 am Accediendo al PEB no es necesaria ninguna API para usar las DLL's. con obtener la direccion base de un modulo ya reemplazas
la LoadLibrary/GetModuleHandle y luego con esa direccion vas recorriendo la estructura del modulo hasta llegar a la tabla de exportaciones y simular la Getprocaddress, leer los documentos de la estructura PE Título: Re: como encontrar y usar LoadLibrary y Getprocaddress usando PEB? Publicado por: zu-zu en 30 Junio 2012, 03:21 am Accediendo al PEB no es necesaria ninguna API para usar las DLL's. con obtener la direccion base de un modulo ya reemplazas la LoadLibrary/GetModuleHandle Técnicamente, sólo se evita el uso de GetModuleHandle(). ¿O es que acaso podemos cargar librerías sólo leyendo la PEB? (?). Citar aqui no se dos cosas, cual es el tamaño de IMAGE_OPTIONAL_HEADER? acaso son 0x78? Lamentablemente no tengo memoria fotográfica, sin embargo, ¿no sería mejor definir las estructuras correspondientes para evitar esta clase de complicaciones?. |