LuaXposed:使用Lua编写Xposed模块
Xposed仓库地址
https://repo.xposed.info/module/com.sll.luahook
Github地址
https://github.com/ihbing/LuaXposed
原理
借用LuaJ引擎实现,主要对以下几个Api进行了封装
globals.set("Log", CoerceJavaToLua.coerce(Log.class));globals.set("LocalLog", CoerceJavaToLua.coerce(LocalLog.class));globals.set("NewXCMethodHook", new NewXCMethodHook());globals.set("NewXCMethodReplacement",new NewXCMethodReplacement());globals.set("ParametersBuilder", CoerceJavaToLua.coerce(ParametersBuilder.class));globals.set("XposedHelper", CoerceJavaToLua.coerce(XposedHelpers.class));globals.set("XposedBridge", CoerceJavaToLua.coerce(XposedBridge.class));
Hook Toast消息例子
简单版
--入口函数
function handleLoadPackage(lpparam)XposedBridge:hookAllMethods(XposedHelper:findClass("android.widget.Toast",nil),'makeText',NewXCMethodHook(function(param)--替换吐司内容为Hello,World!param.args[2]='Hello,World!'end,function(param) end))
end
详细版
glpparam=nil
--入口函数,与原生Xposed入口函数一致
function handleLoadPackage(lpparam)glpparam=lpparamstart()
end
function start()--打印日志XposedBridge:log('start ::')--将日志输出到文件,文件目录为/sdcard/luaxposed/+包名+/线程名.txtLocalLog:logString(glpparam.packageName,"start","::")--构建Hook参数local paramsBuilder=ParametersBuilder.new()--吐司实现函数参数结构:Toast.makeText(android.content.Context,java.lang.CharSequence,int)paramsBuilder:addParameterType('android.content.Context')paramsBuilder:addParameterType('java.lang.CharSequence')paramsBuilder:addParameterType('int')--设置函数拦截回调paramsBuilder:setCallback(NewXCMethodHook(function(param)--函数执行之前,param为被Hook函数参数详情local arg0 = param.args[2]LocalLog:logString(glpparam.packageName,"before",arg0)param.args[2]=param.args[2]..',,,,test3'end,function(param)--函数执行之后local result = param:getResult()LocalLog:logString(glpparam.packageName,"after","result:"..tostring(result))end))--执行注入代码,跟原生Xposed一样调用方式XposedHelper:findAndHookMethod(XposedHelper:findClass("android.widget.Toast",nil),"makeText",paramsBuilder:toParams())XposedBridge:log('end ::')LocalLog:logString(glpparam.packageName,"end","::")
end
LuaXposed:使用Lua编写Xposed模块相关推荐
- AndroidStudio编写Xposed模块并Hook某方法
1.新建一个Android项目,有没有Activity都行. 2.在项目的app文件夹里新建一个lib文件夹 (普通的文件夹) project 右边 下拉标志那 选择 项目 3.把XposedBrid ...
- Android Studio编写Xposed模块
要Hook的App 1.新建安卓工程 2. 打开AndroidManifest,加入以下配置 <!-- 添加标识 --> <meta-data android:name=" ...
- Xposed模块的编写
编写Xposed模块 1,在AXML文件里添加以下代码: <!-- 添加标识--><meta-dataandroid:name="xposedmodule"and ...
- 《移动安全》(8)为挂钩而战-Xposed模块编写
1.Xposed框架 Xposed是Android平台上的一个常用的HOOK框架,可以在不改变程序源代码的前提下,影响程序的运行.一个支持Xposed的Android应用程序被称为一个Xposed模块 ...
- Xposed 模块开发入门
Xposed模块开发入门 阅读本文之前,你应该准备好以下事项: 安装 Android Studio,并完成配置 掌握 Xposed 的安装和使用方法 拥有阅读 Java 代码的能力 阅读本文之后你将掌 ...
- Xposed模块开发入门-最基本的项目创建
本人结合网络上的种种教程以及自己实践,记录下一个完整的基本Xposed模块项目的创建过程. 开发环境: Mac系统 AndroidStudio 3.2.1 gradle 3.2.1 VirtualXp ...
- 安卓端自行实现工信部要求的隐私合规检测一(教你手写Xposed模块代码)
前言 友情提示:文章较长,源码及相关使用教程都在文尾. 之所以写这篇文章,是因为不久前,我们公司上架的app被打回来了.信通院那边出了个报告,里面说我们app未经授权就自动获取了手机的mac地址.当时 ...
- Android Studio Xposed模块编写(二)
阅读本文前,假设读者已经看过Android Studio Xposed模块编写(一) 相关环境已经搭建完成.本文演示案例与上文环境一致,不在赘述. 1.概述 Xposed是非常牛叉的一款hook框架 ...
- xposed模块编写教程_最新的Xposed模块编写教程
前言:最近看了很多的Xposed的入门教程,根据的我的实践,写此教程,希望对新手有所帮助. 1.编写一个被Hook的App.代码 1 packagecom.example.hookdemo;2 3 i ...
- xposed模块编写教程_新手不要再被误导!这是一篇最新的Xposed模块编写教程
在互联网上,关于Xposed模块编写的教程可谓是一抓一大把.但由于时间的推移,很多工具和方法都发生了变化(如Eclipse退出安卓编程舞台,AndroidStudio 不断升级导致其一些设置也随之变化 ...
最新文章
- linux syn 队列,linux 防御SYN攻击
- matlab腐蚀膨胀代码_(三十二)形态学----膨胀和腐蚀
- 统计决策理论1 统计问题与统计决策
- php 画布插入图像,javascript – 如何在PHP中将html5画布图像保存到数据库
- 进程线程005 SwapContext函数分析
- margin百分比,重叠和auto
- 轻量易用的微信Sdk发布——Magicodes.Wx.Sdk
- 当你辛辛苦苦写的博客文章被无情复制,成为了他的原创,你作何感想?
- java和asp.net core,VS 2019教程:创建ASP.NET Core Web App
- 一对一软件开发:在一对一社交app源码中加入这个功能,很有用...
- JAVA大数据习题Week2
- Pixel Bender 浅尝
- Linux查找命令与find命令详解
- SSD容量也不宜小,最好1T往上
- 羊毛之家,青龙脚本,几乎全部可用
- 多个小球碰撞的java_原生JS实现多个小球碰撞反弹效果示例
- 计算机五笔打字口诀,电脑五笔打字的字根口诀是什么?
- 《数学之美(第一版)》笔记 —— 第6章
- pcb 布线电容 影响延时--信号跨分割
- [GBase 8s 教程]GBase 8s 事务(TRANSACTION)
热门文章
- 进入旅游营销时代,携程有什么“大招”?
- cad断点快捷键_CAD打断(BREAK)命令的使用技巧
- Android中的SQLite数据库
- ubuntu搭建dns服务器
- 微信小程序开发VIP商城项目
- android 拼音字母语音,拼音发音点读app
- 常用测试软件01——串口调试软件
- PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space翻译
- WPF流程图制作系列相关基础一
- 计算机专门存储数据的单元,认识算法的数据存储单元——变量