EasyClick 老鬼 编程学院
EasyClick 老鬼 编程学院
老鬼编程学院VIP 教程汇总
EasyClick 教程
原生UI 教程展示
原生UI 教程总纲
原生UI VIP 教程目录
原生UI 模版展示
模版一
模板二
模板三
模板四(暂未完成只有界面数据未处理)
模板 悬浮窗 获取点击坐标
模板 进度条
模板 搜索框
模板 卡密验证
模板 登录界面
模板 登录 主页联动
模板 浮窗启停
模板 运行模式检测
模板 搜索模板美化
模板 日期时间模版
模板 动态排版之加载三方应用列表
模板 UI执行 脚本任务显示
模板 旋转特效启停浮窗按钮加UI假启动
模板 对话框大全
模板 自定义对话框大全
模板 复用xml 高级对话框
模板 自定义listview
模板 浮窗日志
模版 自定义悬浮启停按钮
模版 脚本休息全屏
模板 SeekBar组件
模板 任务首页
模版 圆角悬浮窗日志
坐标拾取器
卡片分组模版
模板 定时任务
模板 自定义菜单多页面切换
模板 viewpager 抖音脚本界面
模板 可编辑表格
模板 侧边悬浮菜单弹窗
登录模版 字体引入
番外避坑
EasyClick 原生UI 避坑指南
商用模板
商用模版一
商用模板二
商用模板三
商用模板四
商用模板五
商用模板六
商用模板七
商用模版八(徒弟作品)
商用模版九
商用模版十
商用模版十一(游戏)
商用模版 十二 (小游戏阅读)
商用模版 十三 (小游戏阅读)
商用模版 十四(小游戏)
商用模版 十五(TK)
商用模版十六 (DY)
商用模版十七(徒弟作品)
原生UI xml文件 标签解释
原生UI教程xml扫盲篇
EasyClick 原生UI与Android UI XML的区别
原生UI 之常用控件一
原生UI 之常用控件二
原生UI 公有属性
原生UI之布局
XML 特殊符号转义
原生UI 学习思路
EasyClick auto.js对比
原生和H5的对比
JavaScript基础教程
JavaScript基础教程
JavaScript调用java函数
JavaScript 调用java函数检测服务器连通性
JavaScript中的正则表达式总结
JavaScript 异常处理(try+catch+finally+throw)
常用数据类型检测结果表
JavaScript 常见问题集锦
JavaScript调用java函数获取MP3文件时长
JavaScript判断变量类型
JavaScript 提取数字
JavaScript 正则Replace方法
JavaScript 运算符使用技巧
JavaScript 字符串 转数组
JavaScript取整取余数的方法
JavaScript 数组随机取值
JavaScript 随机生成汉字
JSON 基础
JavaScript 随机生成字符串
JavaScript 正则 常用写法
EasyClick Android相关教程
ADB shell 之 adb shell之am、pm、dpm命令大全
EasyClick adb、shell命令大全
EasyClick 执行 shell命令
EasyClick shell 命令压缩文件
EasyClick shell分割大文件
Android Intent action 介绍
Android FLAG标志位解释
EasyClick Intent 打开应用详情页
EasyClick intent方式安装卸载APP
Intent教学培训
Activity
Android
安卓 版本API 对照表
Java零基础教程展示
EasyClick Android常用文档
EasyClick 常见错误
常见网络返回代码解释
模拟器连接端口汇总
EasyClick官网文档
EC无法停止的问题
模拟器自动获取root权限
夜神截图黑图解决办法
去除Windows文件^M的办法
EC设置为默认输入法
EasyClick 启动APP 替代方法
EasyClick 插件项目问题
EasyClick 热更乱码问题
EasyClick IEC 热更新 问题
EC 编译错误
打包选项和APP 设置属性对比
常用时间戳API
雷电模拟器开启指针
无障碍音量下键停止脚本
EasyClick IOS 常见问题
EasyClick IOS 2.X 环境安装 教程
EasyClick 黑苹果安装教程、资源、坑点处理
MAC OS Monterey 支持机型列表
工作室环境问题
XCODE签名问题
Windows10 系统盘 节省7G以上
EasyClick 远程调试内网穿透工具
IDEA 教程
EasyClick IDEA 教程
EasyClick IDEA 汉化
IDEA 常用快捷键
IDEA 常用开发插件
IDEA 创建多项目
IDEA 恢复历史记录
IDEA 常见问题
EasyClick 安卓Intent URL scheme VIP 教程
付费产品
EasyClick Android 自动化测试 ROM定制
EasyClick bug反馈工具 OSS版
卡密管理系统
卡密二次验证系统
EasyClick BUG 反馈 公共版
云控定制
设备购买
二手手机资源
Android 一手新机货源表
IOS推荐集线器西普莱厂家直供集线器
本文档使用 MrDoc 发布
-
+
首页
Intent教学培训
### Intent教学培训 1、Intent = 意图 2、你想要做什么?? ### Intent做什么? 1、打开新的Activitiy 2、启动Service 3、BrocastReceiver广播 4、Intent传递数据到目标 ### Intent类型 我要做菜 ====== 目标意图 1、显式类型 我需要盐 -- 召唤出一个 第一个Activity -> MainActivity 点击go按钮 跳转到第二个activity -> SecondActivity startService () -> XXService bindService() -> XXService 2、隐式类型 我要做菜 ----- 召唤出很多可以做出菜品的指令应答方 通过模糊匹配的方式 分别有action,category,data三个节点进行模糊查找 snssdk284://xxxx?xxx=1 隐式的Intent ### ### 为什么打不开App 1、系统限制,从后台程序打开三方程序 2、am命令也打不开,activity的exported属性为false ### 抓取Intent(主要课程) 1、frida 抓Intent,配和root使用,Genymotion 自带root 2、安装frida https://www.cnblogs.com/hankleo/p/12834723.html 3、编译frida的python代码 代码逻辑: - 加载js文件 - 挂载到目标进程 - 启动,是pycharm直接启动Python的代码 ```python # coding: utf-8 import os import sys import frida import sys reload(sys) sys.setdefaultencoding('utf8') data = open("catchintent.js").read() print data jscode = data hdata = open("rpc.js").read() print hdata hook_code = hdata os.system("adb forward tcp:27042 tcp:27042") os.system("adb forward tcp:27043 tcp:27043") def message(message, data): if message["type"] == 'send': print(message['payload']) else: print(message) process = frida.get_remote_device().attach('com.example.intentdemo') script = process.create_script(jscode) script.on("message", message) script.load() sys.stdin.read() ``` 4、js文件的代码 - frida语法结构,Java.perform ```javascript Java.perform(function () { //查找Activity类进行挂载 var activity = Java.use('android.app.Activity'); //对activity中的startActivity函数进行重载 activity.startActivity.overload('android.content.Intent').implementation = function (intent) { send(intent); //对intent获取数据 send("startActivity name ---> " + intent.getComponent()) send("startActivity data ---> " + intent.getData()) send("startActivity getAction ---> " + intent.getAction()) send("startActivity getExtras ---> " + intent.getExtras()) // 让被挂载的代码继续执行 this.startActivity(intent) } // 对activity的onCreate函数进行重载 activity.onCreate.overload('android.os.Bundle').implementation = function (bundle) { send(bundle); let intent = this.getIntent(); send(intent) send("onCreate name ---> " + intent.getComponent()) send("onCreate data ---> " + intent.getData()) send("onCreate getAction ---> " + intent.getAction()) send("onCreate getExtras ---> " + intent.getExtras()) // 有可能是跨进程过来的,所有先获取数据的key集合 // 然后循环从bundle中进行获取数据即可 var bundle = intent.getExtras() var set = bundle.keySet().toArray(); for (let i = 0; i < set.length; i++) { send("key=" + set[i] + " value=" + bundle.get(set[i])) } //继续执行 this.onCreate(bundle) } }); ```
Mr、老鬼
2021年12月25日 11:32
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码