首页
社区
课程
招聘
[求助]ptrace ATTACH的时候 errno提示1 Operation not permitted.
发表于: 2014-4-11 13:18 22440

[求助]ptrace ATTACH的时候 errno提示1 Operation not permitted.

2014-4-11 13:18
22440
ptrace ATTACH的时候 errno提示1 Operation not permitted.操作不允许
已经申请了root权限了。搞了一个多星期一头雾水 求玩过的大神们赐个教啊

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
贴代码。。。
2014-4-11 13:20
0
雪    币: 141
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
=whnet;1274339]贴代码。。。
jint Java_com_phicomm_hu_JniUtil_PigptraceATTACH(JNIEnv * env, jobject obj, jint pid//绑定进程
{
        int ret=ptrace(PTRACE_ATTACH, pid,NULL,0);
        uid_t peuid=geteuid();
        LOGI("pid[%d] addr[%d] data[%d] euid[%d]", pid,addr,addr,peuid);
        if (ret<0);
        {
                LOGE("pid[%d] addr[%d] data[%d] errno[%d]", pid,addr,data,errno);
                return ret;
        }
        return data;
}
2014-4-11 14:07
0
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
呵呵。 你觉得你现在是root了么?  你打印出来的pid 是0?
2014-4-11 14:31
0
雪    币: 141
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
进程pid没错 自己的epid是10124不知道是什么
2014-4-11 14:32
0
雪    币: 141
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
public static boolean upgradeRootPermission(String pkgCodePath) {  
            Process process = null;  
            DataOutputStream os = null;  
            try {  
                String cmd="chmod 777 " + pkgCodePath;  
                process = Runtime.getRuntime().exec("su"); //切换到root帐号  
                os = new DataOutputStream(process.getOutputStream());  
                os.writeBytes(cmd + "\n");  
                os.writeBytes("exit\n");  
                os.flush();  
                process.waitFor();  
            } catch (Exception e) {  
                return false;  
            } finally {  
                try {  
                    if (os != null) {  
                        os.close();  
                    }  
                    process.destroy();  
                } catch (Exception e) {  
                }  
            }  
            return true;  
        }  

root代码我写在初始化了
2014-4-11 14:33
0
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
无奈了。 又是这个问题。 都不想打字了。 你先理解理解android 里面提权是怎么回事吧。
2014-4-11 14:57
0
雪    币: 141
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
大神。。求正确的提权是怎么做的。。。小弟刚学 别耻笑我了- -都得这么长大的不是吗。。求赐教小鸟一会啊。
2014-4-11 15:02
0
雪    币: 141
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
whnet大哥 求赐教  有偿赐教。+我qq你开价 带小弟弄懂权限问题吧 好吗?QQ7918755
2014-4-11 16:21
0
雪    币: 31
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
同求。。。。
2014-4-11 17:15
0
雪    币: 435
活跃值: (172)
能力值: ( LV13,RANK:280 )
在线值:
发帖
回帖
粉丝
11
现在论坛上伸手党太多,别给自己惹气了,大部分人不会为了技术去学基础的
2014-4-11 18:42
0
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
你连论坛怎么回复都不会。。 这样回我是看不到的。

一、su 是一个setuid 的程序。他的所有者是root,执行后,可以以root权限运行,但这个权限仅这个程序。

二、你的进程是android 程序。 uid 是安装时分给你的。

三、你的代码只是在getRuntime.exec(); 这里执行了su 时, su 取得了root ,所以他可以chmod 777 。你后面的android 代码还是你自己的权限。

四、一般意义上的Android root都是指以root的身份去执行一个命令。 比如说/system/app 下的apk 通过su rm 这种方式就可以删掉了~

五、你想ptrace 再仔细考虑一下。

2014-4-11 19:28
0
雪    币: 31
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
whnet大哥帮忙分析一下我这几句话哈。。。感激不尽
1.一个文件具有root权限,如果他被一个非root的程序调用,那么这个调用也是非root权限。
2.一个文件具有root权限,他能够给一个非root的程序提权为root。
3.楼主的提权代码是通过一个新的process来调用Runtime.getRuntime().exec("su"),然后执行chmod 777来提权。
网络上大多文章都是说用这种方法给apk提权,如果只是su取得了root,那不是自欺欺人吗,这段代码有存在的必要吗= =?
2014-4-14 15:13
0
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
你重新读读。另外多了解一下linux 。你这完全不了解。我也没法跟你说清楚了。
2014-4-14 15:49
0
雪    币: 31
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
好的,有没有什么好的学习资料可以推荐一下的
2014-4-14 16:07
0
游客
登录 | 注册 方可回帖
返回
//