diff --git a/libEXEIO/src/exeio_src.cpp b/libEXEIO/src/exeio_src.cpp index fb59192a94afc3277db34d14e79b633cb8d54eea..b5b068684ce155e5ecd1b1c5e5517591e8340e4d 100644 --- a/libEXEIO/src/exeio_src.cpp +++ b/libEXEIO/src/exeio_src.cpp @@ -19,15 +19,19 @@ void exeio::load(char* filename) if(!instream) assert(0 && "Cannot open file"); + int c0=instream.get(); + int c1=instream.get(); + int c2=instream.get(); + int c3=instream.get(); // check for elf magic number - if( instream.get()=='E' && instream.get()=='L' && instream.get()=='F' ) + if(c0 == '\177' && c1=='E' && c2=='L' && c3=='F') { - backend=new exeio_elf_backend_t(); + backend=new exeio_elf_backend_t; } // we assume it's ELF or PE. else - backend=new exeio_pe_backend_t(); + backend=new exeio_pe_backend_t; backend->load(this, filename);