Android Hook 之劫持登录

利用Xposed框架编写模块实现登录劫持

用到的环境:

Xposed的使用:

  • Xposed可以在不修改APK的情况下对应用的运行结果产生影响,是一款比较常用的Android Hook工具。
  • 首先安装Xposed框架对应APK文件到已经root的手机中,安装完成后打开Xposed如下图所示:
安装好的Xposed框架
  • 接着点击“安装/更新”。注意:安装Xposed存在手机变砖的风险,如果你不明白什么是变砖,也不知道如何解决此问题,请慎重。
  • 这样Xposed框架就在手机中安装完成了,但是这仅仅是一个框架,我们需要下载或者自行编写功能模块。

编写测试应用

  • 我们要模拟一个登陆劫持,下面给出一个模拟登录的APP,界面如图:
登录失败
登录成功
  • 下面附上测试应用关键登陆验证代码:
登录验证.png
  • 测试应用的包名为:'com.example.administrator.logintest'

编写Hook模块

  • 使用AndroidStudio新建一个Android工程,可以没有Activity
  • 找到AndroidMainfest文件,添加如下几个标签:
添加标签.png
  • 其中xposedminversion是API的最小版本,这里我们使用的版本为54
  • 将API导入工程:
导入jar包.png
  • 注意不要放在libs里,新建一个lib文件夹粘贴进去,然后add library
  • 修改build.gradle,把compile改为provided:
gradle.png
  • 新建一个类,继承 IXposedHookLoadPackage,Hook的关键步骤在此,下面直接上代码:
Hook.png
  • 这里有两个比较关键的方法:handleLoadPackage获取包加载时候的回调并拿到其对应的classLoader;findAndHookMethod对指定类的方法进行Hook。

编译并安装模块

  • Build APK后使用adb install XXXX.apk 命令将模块APK安装到手机中:
InstallHookMoudle.png
  • 手机上的Xposed框架检测的模块安装:
检测到模块
  • 激活模块,重启手机:
激活模块
  • 打开模拟登陆应用,进行登录操作,在Xposed的日志中查看劫持到的信息:
查看劫持到的信息

Acknowledge

  • 感谢《Android安全技术揭秘与防范》这本书和其作者 周圣韬
  • Hook的关键在于对目标应用的逆向,找到关键方法
  • 写的比较粗略,如果疑问欢迎留言交流
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容