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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [C] Buscando una funcion de la IAT
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C] Buscando una funcion de la IAT  (Leído 1,317 veces)
mr.blood

Desconectado Desconectado

Mensajes: 150


Ver Perfil
[C] Buscando una funcion de la IAT
« en: 23 Enero 2013, 16:36 pm »

Pues traigo un programa que busca X funcion en X libreria en su propia Import Address Table. No hay mucha explicacion. Esta bastante chapucero solo queria que pudieran ver un codigo sencillo que haga esto ya que yo no encontre nada estos dias.

Código
  1. #include <string.h>
  2. #include <stdio.h>
  3. #include <windows.h>
  4.  
  5. int main()
  6. {
  7.        const char libreria[]="KERNEL32.dll";
  8.        const char funcion[]="ExitProcess";
  9.        DWORD image_base=(DWORD)GetModuleHandleA(0);
  10.        PIMAGE_DOS_HEADER DOS;
  11.        PIMAGE_NT_HEADERS NT;
  12.        PIMAGE_IMPORT_DESCRIPTOR IT;
  13.        PIMAGE_IMPORT_BY_NAME *IMPORTED_FUNCTIONS;
  14.        PIMAGE_THUNK_DATA Funcion;
  15.        DWORD *IMPORTED_DLL_NAME;
  16.        DWORD *IMPORTED_FUNCTION_NAME;
  17.        unsigned int i=0;
  18.  
  19.        DOS=(PIMAGE_DOS_HEADER)image_base;
  20.        NT=(PIMAGE_NT_HEADERS)(DOS->e_lfanew + image_base);
  21.        IT=(PIMAGE_IMPORT_DESCRIPTOR)(NT->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress + image_base);
  22.        IMPORTED_DLL_NAME=(DWORD *)(IT->Name + image_base);
  23.  
  24.        while( (IT->Name) != 0 )
  25.        {
  26.                IMPORTED_DLL_NAME=(DWORD *)(IT->Name + image_base);
  27.                if(!strcmp((char *)IMPORTED_DLL_NAME, libreria))
  28.                {
  29.                        printf("%s\n", (char *)IMPORTED_DLL_NAME);
  30.                        break;
  31.                }
  32.                IT++;
  33.        }
  34.  
  35.        IMPORTED_FUNCTIONS=(PIMAGE_IMPORT_BY_NAME *)(IT->Characteristics + image_base);
  36.  
  37.        for(i=0;;i++)
  38.        {
  39.                IMPORTED_FUNCTION_NAME=(DWORD *)((*IMPORTED_FUNCTIONS)->Name + image_base);
  40.                if(((*IMPORTED_FUNCTIONS)!=0) && (!strcmp((char *)IMPORTED_FUNCTION_NAME, funcion)))
  41.                {
  42.                        printf("\t%s\n", (char *)IMPORTED_FUNCTION_NAME);
  43.                        break;
  44.                }
  45.                IMPORTED_FUNCTIONS++;
  46.        }
  47.  
  48.        Funcion=(PIMAGE_THUNK_DATA)(IT->FirstThunk + image_base);
  49.        Funcion+=i;
  50.        printf("\t\tDireccion funcion: %p \t Addr en IT: %p\n", *Funcion, Funcion);
  51.        getchar();
  52.        return 0;
  53. }
  54.  

Sa1uDoS


En línea

ApOkAlizE

Desconectado Desconectado

Mensajes: 150


¿sabes lo que vales? ¡consigue lo que te mereces!


Ver Perfil
Re: [C] Buscando una funcion de la IAT
« Respuesta #1 en: 25 Enero 2013, 13:17 pm »

¡Gracias por la colaboración mr.blood!


En línea

Los virus informaticos son como las personas, hacen lo posible para destruir y hacen lo impossible para no ser destruidos... - ApOkAlizE
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
manejo de argumentos en funcion dentro de funcion ???
PHP
SpiderNet 2 3,420 Último mensaje 30 Septiembre 2008, 03:01 am
por SpiderNet
Función System() exec() passthru() Buscando codigo
PHP
Dem0ny 4 3,086 Último mensaje 4 Enero 2010, 22:58 pm
por Dem0ny
Función que retorna el valor de retorno de otra función
Programación C/C++
naderST 7 4,714 Último mensaje 7 Diciembre 2011, 23:45 pm
por naderST
Evaluar Una Funcion dentro de otra funcion Python
Scripting
cristiantorres 1 10,346 Último mensaje 14 Abril 2012, 06:20 am
por cristiantorres
[javascript] llamar a funcion que se recibe por parametro de la funcion
Desarrollo Web
Graphixx 0 5,616 Último mensaje 24 Abril 2012, 19:36 pm
por Graphixx
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines