-
-
未解决 [讨论][原创]看了珍惜大佬的文章去实现注入so 修改svc遇到的一点问题 10雪币
-
发表于: 2024-10-16 14:46 501
-
看来这个珍惜大佬的文章之后
我用ptrace+svc hook的方式
用xposed去注入so 在注入的so文件里面jni_onload里面去用ptrace去attach线程 线程是attach上去了 但是app界面进不去了 一直卡在启动界面
bfp的规则是这样定义的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | void installFilterForE() { struct sock_filter filter [] = { BPF_STMT(BPF_LD | BPF_W | BPF_ABS, (offsetof(struct seccomp_data, nr))), BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, __NR_openat, 0 , 1 ), BPF_STMT(BPF_RET | BPF_K, SECCOMP_RET_TRACE), / / BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, __NR_read, 0 , 1 ), / / BPF_STMT(BPF_RET | BPF_K, SECCOMP_RET_TRACE), / / BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, __NR_close, 0 , 1 ), / / BPF_STMT(BPF_RET | BPF_K, SECCOMP_RET_TRACE), BPF_STMT(BPF_RET | BPF_K, SECCOMP_RET_ALLOW), }; struct sock_fprog prog = { . len = (unsigned short) (sizeof( filter ) / sizeof( filter [ 0 ])), . filter = filter , }; if (prctl(PR_SET_NO_NEW_PRIVS, 1 , 0 , 0 , 0 ) = = - 1 ) { log( "prctl(PR_SET_NO_NEW_PRIVS)" ); } if (prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &prog) = = - 1 ) { log( "when setting seccomp filter" ); } } |
被注入app没有任何的检测 是自写一个简单app
我这样去attach线程的 我不知道是我写的有问题还是怎么的 也没有大佬帮忙解答一下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | void onloadersvc(pid_t mypid){ pid_t pid = fork(); if (pid = = 0 ) { int ck = ptrace(PTRACE_ATTACH, mypid, 0 , 0 ); if (ck < 0 ) { log( "attach失败" ); exit( 1 ); } else { log( "ptrace的返回值是:%d" , ck); } log( "被调试跟踪的进程是:%d" ,mypid); int st = ptrace(PTRACE_SETOPTIONS, mypid, 0 , default_ptrace_options | PTRACE_O_TRACESECCOMP); if (st < 0 ) { log( "选项注册失败:%d %s %d" ,errno, strerror(errno),st); } else { process_signal(mypid); } } else { installFilterForE(); int sy = ptrace(PTRACE_TRACEME, 0 , 0 , 0 ); } } |
小弟学艺不精 有大佬解答的话 小弟万分感谢
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
看原图
赞赏
雪币:
留言: