欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[分享]基于xposed的关机窃听的demo

[分享]基于xposed的关机窃听的demo

上个月的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牛的,我就不持续性丢人了。

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功