【分享】基于xposed的关机窃听的demo

来源:互联网 发布:淘宝名气最高的杂货店 编辑:程序博客网 时间:2024/05/20 09:45
标 题: 【分享】基于xposed的关机窃听的demo
作 者: flankersky
时 间: 2014-11-13,13:30:57
链 接: http://bbs.pediy.com/showthread.php?t=194369

上个月的geekpwn中天才少年flanker做了个关机窃听的演示,感觉很高大上。后来flanker在微博中也透露了基本思路,

但是没有放出writeup,伤心,不过还是要感谢flanker的思路。为了能追逐天才少年的步伐,自己最近写了个xposed模块,

实现了geekpwn中演示的部分功能,供大家拿去玩耍吧。

PS:碰巧与天才少年的ID相似,我想我们的id都来自Su27吧。哈哈

没什么好写的,说一下大致的hook流程吧

1、hook关机时的提示按钮
 就是点“关机”按钮后弹出来的那个提示框中的“确定”按钮。
这是一个AlertDialog,所以hook住它的setPositiveButton函数,将参数中的onClickListener对象替换掉。
在自定义的onClickListener中实现,播放关机动画,设置屏幕超时等功能。

播放关机动画的地方有点问题,执行一次关机动画命令bootanimation只能播放大概5s钟就停了,为了播放的长一点,

播放了两次,然后屏幕超时,自动熄屏。为了标明当前处在“假关机”状态,将状态写入了文件/data/local/tmp/1024.hack中,

这应该是最简单的方法了吧,有人说还可以通过broadcast或者service来完成进程间通信,没有测试。


2、hook电源服务,防止屏幕亮起
hook住PowerManagerService中的setScreenStateLocked方法,阻止点亮屏幕。

3、处理电源按键
在“假关机”状态中处理电源按键,如果检测到长按,执行reboot命令重启手机,清除1024.hack中的假关机标志。

4、hook来电
hook 住CallNotifier中的handleMessage方法,如果检测到新的来电,直接调用PhoneUtils中的answerCall方法,就可以接通电话。

      没了,就实现了这么点东西。其中会有不少bug,尤其是在全局的标志文件1024.hack上。不知道天才flanker是怎么实现的。

我自己也是想拿来玩玩的,也并没有像把它写成真正有攻击性的木马,毕竟那也是需要深厚功力的。另外,对于TK在微博中提到的

那些细节点(参考教主微博http://weibo.com/1401527553/BsyghjzjZ?ref=&type=comment),个人只去想了一下

那个“您拨打的电话已关机”,想用转接的方法实现,后来看了点资料,好像是没有方法能实时的转接一个进来的来电。

不知道各位大牛有什么想法,有的话可以点拨一下小弟。


-----------------------------------
代码可以参考@monsterok牛的,我就不持续性丢人了。
0 0