环境和工具 :

模拟器:雷电 4.0.43版本

安卓版本:7.1.2  x86

Xposed :xposed-installer-3-1-5

反编译根据:jadx,Android killer

基于上偏文章 继续学习 XP

模拟器 安装 对应的 apk应用,随便输入账号密码,点击登录,提示 “账号错误,请重新输入”

“账号错误,请重新输入” 就从这切入,使用 jadx 打开 apk文件,全局搜索 这个提示文字

可以搜索到结果,同时可以看到 login 的方法

login(String user, String pwd)   user 是获取输入的账号,pwd 是获取输入的密码

我们写个 XP 插件就获取 自己输入的账号和密码 ,并打印日志

     

分析找到 逻辑的函数,和我们需要的目标函数后,就开始写 xp 插件(上一篇的demo直接用了)

XposedHelpers.findAndHookMethod  XP框架的api,看名字应该就知道 意思,获取指定hook的方法

根据方法的参数 传入对应的参数即可

编写一个 简易的 XP hook 插件,指定一个应用,hook 该应用的 login 方法 ,并打印日志

获取指定方法的报名的方式:

# 第一种 :获取 手机展示页面的 活动页面,可以看到包名
adb shell dumpsys activity top# 第二种:直接模糊搜索 包名 q 是包名包含的字母
adb shell pm list packages | grep q
        // 判断 当前的 启动的模板程序是否是 需要hook的 应用,这里要知道 应用的报名// 如果不判断指定 报名 启动 插件的话,打开所有的应用都会 启动插件,就会保存,其他的应用 不一定用这个指定方法if(loadPackageParam.packageName.equals("com.qianyu.helloworld")) {// hook 方法  普通方法 静态方法XposedHelpers.findAndHookMethod("com.qianyu.helloworld.LoginActivity", // 指定加载类,包名+类名loadPackageParam.classLoader,  // 类加载器"login",           // 指定hook的方法String.class, String.class,    // 指定hook的方法的参数列表,参数类型.classnew XC_MethodHook() {@Override  // 执行指定方法之前 要做的操作,就可以在这个方法里面 写逻辑protected void beforeHookedMethod(MethodHookParam param) throws Throwable {super.beforeHookedMethod(param);// param.args 方法的 传入参数XposedBridge.log("args1: " + param.args[0]);XposedBridge.log("args2: " + param.args[1]);}@Override  // 执行指定方法之后 要做的操作,就可以在这个方法里面 写逻辑protected void afterHookedMethod(MethodHookParam param) throws Throwable {super.afterHookedMethod(param);// 在 执行 方法之后,获取方法的返回值 param.getResult()XposedBridge.log("result: " + param.getResult());}});}

编写完成,运行安装,模拟器会提示 XP插件没有激活,点击 xposed应用,在模块里面勾选并重启

重启后打开应用,在输出账号密码登录,再去xposed应用的日志去查看,可以看到打印的结果

安卓逆向——AS开发Xposed插件HOOK案例相关推荐

  1. 安卓逆向——AS开发Xposed插件demo案例

    AS开发Xposed插件demo案例 环境和工具 : 模拟器:雷电 4.0.43版本 安卓版本:7.1.2  x86 Xposed :xposed-installer-3-1-5 安装好 androi ...

  2. xposed安装,与android逆向工程之xposed的hook

    Xposed installer安卓安装和使用 文章目录 Xposed installer安卓安装和使用 (一)Xposed installer安卓安装 0.百度网盘-我所用的apk(3.1.5)和z ...

  3. 安卓逆向_24( 一 ) --- Hook 框架 frida( Hook Java层 和 so层) )

    From:Hook 神器家族的 Frida 工具使用详解:https://blog.csdn.net/FlyPigYe/article/details/90258758 详解 Hook 框架 frid ...

  4. Android逆向分析之Xposed的hook技术

    转载自:http://blog.csdn.net/qq_18870023/article/details/51753587 Android逆向工程里常用到的工具除了的dex2jar,jd-gui,   ...

  5. 使用Android studio 开发xposed插件

    1.在已经root的手机上安装xposed installer.apk 2.打开android studio 新建工程 如果不需要界面的 可以选择Add no activity 3.新建完成后,找到 ...

  6. Android开发xposed,用Android Studio开发Xposed插件项目步骤

    1.使用Android Studio新建项目,在app目录下新建lib,并导入xposed的jar包. jar包下载地址:https://jcenter.bintray.com/de/robv/and ...

  7. 安卓逆向高阶之frida hook java层

    文章目录 1. 初次hook Java 层函数 2. hook 修改函数返回值 3. hook调用静态函数和非静态函数 4. hook设置成员变量 5. hook内部类 6. hook 动态加载dex ...

  8. 安卓逆向——Xposed插件常用HOOK方法

    1.   hook 普通静态方法 jadx 反编译分析查看代码,找到需要hook的类和方法 Xposed 插件的写法 // 判断 当前的 启动的模板程序是否是 需要hook的 应用,这里要知道 应用的 ...

  9. 2020-10-26(安卓逆向开篇)

    学习逆向的初衷是想系统学习Android下的hook技术和工具, 想系统学习Android的hook技术和工具是因为Android移动性能实战这本书. 这本书里用hook技术hook一些关键函数来计算 ...

最新文章

  1. 智源沙龙 | 人工智能“3个30年”之后,下个30年将走向何方?
  2. android学习资料
  3. python编程计算1!+2!+...+10!_如何用C语言编程计算 1!+2!+3!+…+10!?
  4. Ubuntu 16.04 和 Ubuntu 18.04 启用 点击Launcher图标,窗口实现最小化 功能
  5. 多年经验的程序员迷失了自己,该怎么办?
  6. Docker 的4种网络模式
  7. Spring容器创建流程——总结
  8. linux服务器遭攻击,记一次linux服务器被攻击与防护
  9. 机器人把大龙拉出来_LOL-LPL夏季赛:Wei男枪打野未换惩戒 ES让BLG拿下首胜
  10. UVA - 11029
  11. 自动外呼——设计思路整理篇
  12. 扎心实战案例:麻(shi)雀(zhan)虽小,五脏俱全
  13. b h em strong mark
  14. c语言程序怎样输出一个图形,C语言循环输出各种 * 组成的图形
  15. html怎么去除照片背景颜色,怎么去掉背景色?
  16. sms 7bit编码
  17. 图片处理-----毛玻璃效果
  18. notepad++格式化xml文件
  19. 苹果CMS V10自动采集脚本开始执行 版本:v1.0
  20. 查询所有的员工信息 和对应的部门信息

热门文章

  1. java基础知识和JDBC
  2. 使用Tensorflow Object Detection API进行集装箱识别并对集装箱号进行OCR识别
  3. 【只摘金句】Linux开发模式带给我们的思考
  4. 能哄老婆睡觉的小故事
  5. 我自己制作的导航页网站,源码免费分享~
  6. 零基础怎样制作自己的网页网站具体流程 - WordPress建站
  7. python调用有道翻译_Python调用有道翻译
  8. gitbook结合github写书及发布到gitbook上
  9. css设置元素抛物线,CSS3 抛物线波动(Parabola Wave)
  10. SIM7600 4G at指令调试