美文网首页框架【库】程序员
Android Hook 之劫持登录

Android Hook 之劫持登录

作者: CaptainXero | 来源:发表于2016-08-23 22:13 被阅读532次

    利用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的关键在于对目标应用的逆向,找到关键方法
    • 写的比较粗略,如果疑问欢迎留言交流

    相关文章

      网友评论

      本文标题:Android Hook 之劫持登录

      本文链接:https://www.haomeiwen.com/subject/jdjnsttx.html