herm1t LIVE!ng room - Будни извращенцев [entries|archive|friends|userinfo]
herm1t

[ website | twilight corner in the herm1t's cave ]
[ userinfo | ljr userinfo ]
[ archive | journal archive ]

Будни извращенцев [Jul. 1st, 2008|05:43 pm]
Previous Entry Add to Memories Tell A Friend Next Entry
Недавно всё-таки нашел пусть и извращенную замену для:
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:
LinkLeave a comment