能力值:
( LV5,RANK:70 )
|
-
-
2 楼
你是安卓注入吗?安卓的X64如下 int ptrace_getregs(pid_t pid, struct pt_regs * regs) { int regset = NT_PRSTATUS; struct iovec ioVec; ioVec.iov_base = regs; ioVec.iov_len = sizeof(*regs); if(ptrace(PTRACE_GETREGSET, pid, (void*)regset, &ioVec) < 0) { LOGD("ptrace_getregs failed\n"); return -1; } return 0; }
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
bluefish蓝鱼
你是安卓注入吗?安卓的X64如下
int ptrace_getregs(pid_t pid, struct pt_regs * regs)
{
int regset = NT_PR ... 安卓的x86,雷电模拟器
最后于 2021-2-26 21:17
被hekes编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
代码没问题,看一下执行这个函数前你的目标进程是否成功进入了tracing stop状态
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
不吃早饭
代码没问题,看一下执行这个函数前你的目标进程是否成功进入了tracing stop状态
先进行的附加,附加是成功的 ptrace(PTRACE_ATTACH, pid, NULL, NULL) adb查看TracerPid值不为0
cat /proc/2240/status|grep TracerPid
TracerPid: 0
aosp:/ # cat /proc/2240/status|grep TracerPid
cat /proc/2240/status|grep TracerPid
TracerPid: 2277
整套代码是网上找的 int WaitPid(pid_t pid, int *status, int option) {
while (waitpid(pid, status, option) == -1) {
if (errno == EINTR)
continue;
else
return -1;
}
return 0;
}
// wrap PTRACE_ATTACH call, don't need WaitPid result maybe because we default think it's ok.
static int Attach(pid_t pid) {
int res=0;
int status=0;
res = ptrace(PTRACE_ATTACH, pid, NULL, NULL);
if (res < 0) {
LOGE("<injectso.c:%d> attach failed:%s\n", __LINE__, strerror(errno));
return -1;
}
WaitPid(pid, &status, 0);
LOGE("WaitPid status:%d,test:%d\n",status,WIFSTOPPED(status));
return res;
}
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
hekes
先进行的附加,附加是成功的ptrace(PTRACE_ATTACH, pid, NULL, NULL)adb查看TracerPid值不为0
ca ... 不只是trace上,还要把attach上的线程stop下来,很简单的道理,如果线程还在执行中,那么寄存器和堆栈都是处于未知状态的,获取到的值也是无意义的。因此attach上去之后必须要把被trace线程stop下来,可以通过发送SIGSTOP信号等方式将其暂停下来
最后于 2021-2-26 21:33
被不吃早饭编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
不吃早饭
hekes
先进行的附加,附加是成功的ptrace(PTRACE_ATTACH, pid, NULL, NU ...
ptrace(PTRACE_ATTACH, pid, NULL, NULL); 附加进程后,调用SIGSTOP kill(pid, SIGSTOP); 让进程暂停,app界面卡死,无法操作 此时调用GETREGS
res = ptrace(pid&data)(res < ) {
(__LINE__strerror(errno))-} 当调用SIGCONT后恢复,界面可正常点击
kill(pid, SIGCONT); 运行后GETREGS还是失败
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
hekes
ptrace(PTRACE_ATTACH, pid, NULL, NULL);附加进程后,调用SIGSTOPkill(pid, ...
stop后当然会卡住,在完成注入前不要恢复执行
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
骗子!
|
|
|