获取目标进程的信号信息,通常用于GDB获取目标进程的异常地址、exit_code、pending信号等信息; 18)PTRACE_GETEVENTMSG 获取目标进程与特定 ptrace事件 相关联的消息,例如GDB获取目标进程fork创建的子进程/子线程pid信息、位于系统调用入口处/出口处 等信息; 19)PTRACE_GETREGSET 获取目标进程的寄存器集合; 20)PTRACE_SET...
ptrace -e read <length> 复制代码 若要获取进程的寄存器值,可以使用ptrace的getregset命令: ptrace -e getregset <register_set> <pid> 复制代码 若要跟踪进程的执行,可以使用ptrace的singlestep命令: ptrace -e singlestep <pid> 复制代码 当你完成性能分析后,可以使用ptrace的detach命令从目标进程中分离: ...
拷贝tracee的通用寄存器值或者浮点寄存器值到tracer的data处。不是所有的CPU架构都支持该请求 7) PTRACE_GETREGSET 读取tracee的寄存器 8) PTRACE_SETREGS,PTRACE_SETFPREGS 修改tracee的通用寄存器或者浮点寄存器 9) PTRACE_SETREGSET 修改tracee的寄存器 10) PTRACE_GETSIGINFO 获取导致tracee停止执行的信号量。通过data...
ptrace(PTRACE_GETREGSET, child, (void*)NT_PRSTATUS, &io); if (status >> 8 == (SIGTRAP | (PTRACE_EVENT_SECCOMP << 8)) ){ switch (regs.regs[8]) { case __NR_openat: read_file(child, orig_file,regs); if (strcmp(file_to_avoid, orig_file) == 0){ putdata(child,regs.regs[...
if(ptrace(PTRACE_GETREGSET, pid,(void*)regset, (size_t)&ioVec )<0){ printf("\n errno %d\n",errno); } #else ptrace(PTRACE_GETREGS,pid ,0, (size_pt)regs ); #endif } void quit(pid_t pid) { puts("quit"); ptrace(PTRACE_DETACH, pid, NULL, NULL); exit(0); } int main...
waitpid(pid, &dummy_status,0);// 获取 registersptrace(PTRACE_GETREGSET, pid, NT_PRSTATUS, &iov);/* set up indirect arguments */// 在栈上构造假的数据,作为后面 execve 的参数unsignedlongscratch_area = (regs.rsp -0x1000) & ~0xfffUL;structinjected_page{unsignedlongargv[2];unsignedlongenv...
通常,ptracex支持ptrace对任何针对 64 位地址 (例如 GPRs , LR , CTR , IAR 和 MSR) 扩展的调用进行修改时执行的所有调用。 必须以明显的方式允许 64 位进程的大小增大的任何值 (例如,PT_REGSET必须是 64 位调试器的长长整型数组)。 参数 请求
prctl(PR_SET_SECCOMP, SECCOMP_MODE_STRICT); } intmain(intargc, char*argv[]) { intinfd, outfd; if(argc <3) { printf("Usage:\n\t%s \n", argv[0]); return-1; } printf("Starting test seccomp Y/N?"); char c=getchar(); if(c...
regset_no=regset-view->regsets; kiov->iov_len=min(kiov->iov_len, (__kernel_size_t)(regset->n*regset->size)); if(req==PTRACE_GETREGSET) returncopy_regset_to_user(task,view,regset_no,0, kiov->iov_len,kiov->iov_base...
项目地址: https://github.com/chroblert/JC-AntiPtrace环境:kali2020,ndkr17c,arm64,pixel2,android8.1一、适用场景描述:zygote通过fork()系统调用,fork出一个appapp内通过ptrace(PTRACE_TRACEME,0,0,0);将父进程zygote做为自己的tracer这样其他进程就无法ptrace