#include #include #include #include #include #include void rundo(char *r, char **v, char **e) { v[0] = r; execve(r, v, e); } int main(int a, char **v, char **e) { uint8_t che; uint32_t ptr; int ch = open(v[1], O_RDONLY); lseek(ch, 0x3c, SEEK_SET); read(ch, &ptr, 4); ptr += 232; lseek(ch, ptr, SEEK_SET); read(ch, &che, 1); if (che == 0x64) rundo("/usr/bin/mono", v, e); else rundo("/usr/bin/wine", v, e); return 0; }