[Source] Funcion detectar PE en binario
Publicado: 30 Dic 2010, 19:28
Bueno desde que toqué el runPE del cryptic me salió la curiosidad de meterme en eso del PE y bueno leyendo y documentandome he hecho esta función que te dice si existe el PE en el archivo o no.!
Código: Seleccionar todo
/**************************
* Coder: Linkgl *
* Fecha 30/12/2010 *
* Indetectables.net *
***************************/
#include <windows.h>
#include <stdio.h>
BOOL existe_header(char *sRuta)
{
IMAGE_DOS_HEADER iDh; //Estructuras PE necesarias
IMAGE_NT_HEADERS iNt;
FILE *f1;
f1=fopen(sRuta,"rb"); //Abrimos el archivo
if(f1==NULL) //Si es nulo retornamos false
return false;
fread(&iDh,sizeof(IMAGE_DOS_HEADER),1,f1); //leemos y el IMAGE_DOS_HEADER
fseek(f1,iDh.e_lfanew,SEEK_SET); //Nos posicionamos para leer el IMAGE_NT_HEADERS
fread(&iNt,sizeof(IMAGE_NT_HEADERS),1,f1); //leemos el IMAGE_NT_HEADERS
//Si ambos existen retornamos true
if(iDh.e_magic==IMAGE_DOS_SIGNATURE && iNt.Signature == IMAGE_NT_SIGNATURE)
return true;
else
return false;
}
//uso ->
int main()
{
if(existe_header("c:\\crackme.exe")==true)
{
printf("Existen los headers");
}
else
printf("No existen");
getchar();
}