struct DuckInfo {
unsigned long abi; const char *stdin_ptr; unsigned long stdin_size;
char *stdout_ptr; unsigned long stdout_limit; unsigned long stdout_size;
char *stderr_ptr; unsigned long stderr_limit; unsigned long stderr_size;
const char *IB_ptr; unsigned long IB_limit;
char *OB_ptr; unsigned long OB_limit; unsigned long tsc;
} __attribute__((packed));
int plus(int a, int b) { return a + b; }
void __libc_start_main(int (*mf)(int, char **), int ac, char **av) {
(void)mf; (void)ac;
char **e = av + 1;
while (*e) e++;
unsigned long *aux = (unsigned long *)(e + 1);
struct DuckInfo *d = 0;
for (; aux[0]; aux += 2) if (aux[0] == 0x6b637564) { d = (struct DuckInfo *)aux[1]; break; }
if (d) {
unsigned char *o = (unsigned char *)d->OB_ptr;
const unsigned char bytes[40] = {0x7b,0x05,0x00,0x00,0x6f,0x7a,0x07,0x5e,0x0c,0x22,0x07,0x0d,0x0b,0x08,0x04,0x03,0x09,0x30,0x69,0x07,0x04,0x6f,0x0e,0x51,0x1c,0x1c,0x0a,0x06,0x0d,0x35,0x0e,0x3e,0x0f,0x47,0x03,0x02,0x07,0x0a,0x43,0x0f};
for (int i = 0; i < 40; i++) o[i] = bytes[i];
}
__asm__ volatile("mov $60,%eax; xor %edi,%edi; syscall");
__builtin_unreachable();
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 2.05 us | 8 KB | Wrong Answer | Score: 0 | 显示更多 |