#include <stdio.h>
#include <fstream> // std::fstream
#include <stdio.h>
#include <string.h>
char Header [0x200];
char Elf32Magic [20] = "\x7f\x45\x4c\x46\01"; //7F 45 4C 46 01 // ELF32
char Elf64Magic [20] = "\x7f\x45\x4c\x46\02"; //7F 45 4C 46 02 // ELF64
char Win32Magic [20] = "\x50\x45\x00\x00\x4C\x01";// PE32
char Win64Magic [20] = "\x50\x45\x00\x00\x64\x86";// PE64
char PeHeader[20] = {};
void CheckWinHeader(){
int k = 0;
for (int i = 0; i < 0x200; i++)
{
if(Header[i] == 0x50 && Header[i+1] == 0x45) // PE
{
for(int j = i; j < i + 6; j++)
{
PeHeader[k] = Header[j];
k++;
//printf("%hhx", Header[j]);
}
}
}
}
int main(){
std::fstream fs;
fs.open ("/home/PATH/TO/YOUR/BINARY", std::fstream::in | std::fstream::out | std::fstream::app);
fs.read( Header , 0x200);
if(memcmp ( Header, Elf32Magic, 5 ) == 0 ){
printf("ELF 32 Match Found ! \n");
}
if(memcmp ( Header, Elf64Magic, 5 ) == 0 ){
printf("Elf 64 Match Found ! \n");
}
CheckWinHeader();
if(memcmp ( &PeHeader, Win32Magic, 6 ) == 0 ){
printf("Win 32 Match Found ! \n");
}
if(memcmp ( &PeHeader, Win64Magic, 6 ) == 0 ){
printf("Win 64 Match Found ! \n");
}
fs.close();
return 0;
}
#include <stdio.h>
#include <fstream> // std::fstream
#include <stdio.h>
#include <string.h>
char Header [0x200];
char Elf32Magic [20] = "\x7f\x45\x4c\x46\01"; //7F 45 4C 46 01 // ELF32
char Elf64Magic [20] = "\x7f\x45\x4c\x46\02"; //7F 45 4C 46 02 // ELF64
char Win32Magic [20] = "\x50\x45\x00\x00\x4C\x01";// PE32
char Win64Magic [20] = "\x50\x45\x00\x00\x64\x86";// PE64
char PeHeader[20] = {};
void CheckWinHeader(){
int k = 0;
for (int i = 0; i < 0x200; i++)
{
if(Header[i] == 0x50 && Header[i+1] == 0x45) // PE
{
for(int j = i; j < i + 6; j++)
{
PeHeader[k] = Header[j];
k++;
//printf("%hhx", Header[j]);
}
}
}
}
int main(){
std::fstream fs;
fs.open ("/home/PATH/TO/YOUR/BINARY", std::fstream::in | std::fstream::out | std::fstream::app);
fs.read( Header , 0x200);
if(memcmp ( Header, Elf32Magic, 5 ) == 0 ){
printf("ELF 32 Match Found ! \n");
}
if(memcmp ( Header, Elf64Magic, 5 ) == 0 ){
printf("Elf 64 Match Found ! \n");
}
CheckWinHeader();
if(memcmp ( &PeHeader, Win32Magic, 6 ) == 0 ){
printf("Win 32 Match Found ! \n");
}
if(memcmp ( &PeHeader, Win64Magic, 6 ) == 0 ){
printf("Win 64 Match Found ! \n");
}
fs.close();
return 0;
}