Будни извращенцев

Jul 01, 2008 17:43

Недавно всё-таки нашел пусть и извращенную замену для:
asm volatile ("leal 1f-virus_start(%0),%%eax; jmp *%%eax; 1:" :: "r"(nloc):"%eax");
void __attribute__((stdcall)) jmp(uint32_t addr) { *(unsigned int*)(&addr - 1) = addr; } ... /* давим оптимизацию */ if (foobar == 0xdeadbeef) goto L; uint32_t addr = nloc + (uint32_t)&&L - (uint32_t)&virus_start; jmp(addr); L:
Previous post Next post
Up