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模块相关推荐

  1. AndroidStudio编写Xposed模块并Hook某方法

    1.新建一个Android项目,有没有Activity都行. 2.在项目的app文件夹里新建一个lib文件夹 (普通的文件夹) project 右边 下拉标志那 选择 项目 3.把XposedBrid ...

  2. Android Studio编写Xposed模块

    要Hook的App 1.新建安卓工程 2. 打开AndroidManifest,加入以下配置 <!-- 添加标识 --> <meta-data android:name=" ...

  3. Xposed模块的编写

    编写Xposed模块 1,在AXML文件里添加以下代码: <!-- 添加标识--><meta-dataandroid:name="xposedmodule"and ...

  4. 《移动安全》(8)为挂钩而战-Xposed模块编写

    1.Xposed框架 Xposed是Android平台上的一个常用的HOOK框架,可以在不改变程序源代码的前提下,影响程序的运行.一个支持Xposed的Android应用程序被称为一个Xposed模块 ...

  5. Xposed 模块开发入门

    Xposed模块开发入门 阅读本文之前,你应该准备好以下事项: 安装 Android Studio,并完成配置 掌握 Xposed 的安装和使用方法 拥有阅读 Java 代码的能力 阅读本文之后你将掌 ...

  6. Xposed模块开发入门-最基本的项目创建

    本人结合网络上的种种教程以及自己实践,记录下一个完整的基本Xposed模块项目的创建过程. 开发环境: Mac系统 AndroidStudio 3.2.1 gradle 3.2.1 VirtualXp ...

  7. 安卓端自行实现工信部要求的隐私合规检测一(教你手写Xposed模块代码)

    前言 友情提示:文章较长,源码及相关使用教程都在文尾. 之所以写这篇文章,是因为不久前,我们公司上架的app被打回来了.信通院那边出了个报告,里面说我们app未经授权就自动获取了手机的mac地址.当时 ...

  8. Android Studio Xposed模块编写(二)

    阅读本文前,假设读者已经看过Android Studio Xposed模块编写(一)  相关环境已经搭建完成.本文演示案例与上文环境一致,不在赘述. 1.概述 Xposed是非常牛叉的一款hook框架 ...

  9. xposed模块编写教程_最新的Xposed模块编写教程

    前言:最近看了很多的Xposed的入门教程,根据的我的实践,写此教程,希望对新手有所帮助. 1.编写一个被Hook的App.代码 1 packagecom.example.hookdemo;2 3 i ...

  10. xposed模块编写教程_新手不要再被误导!这是一篇最新的Xposed模块编写教程

    在互联网上,关于Xposed模块编写的教程可谓是一抓一大把.但由于时间的推移,很多工具和方法都发生了变化(如Eclipse退出安卓编程舞台,AndroidStudio 不断升级导致其一些设置也随之变化 ...

最新文章

  1. linux syn 队列,linux 防御SYN攻击
  2. matlab腐蚀膨胀代码_(三十二)形态学----膨胀和腐蚀
  3. 统计决策理论1 统计问题与统计决策
  4. php 画布插入图像,javascript – 如何在PHP中将html5画布图像保存到数据库
  5. 进程线程005 SwapContext函数分析
  6. margin百分比,重叠和auto
  7. 轻量易用的微信Sdk发布——Magicodes.Wx.Sdk
  8. 当你辛辛苦苦写的博客文章被无情复制,成为了他的原创,你作何感想?
  9. java和asp.net core,VS 2019教程:创建ASP.NET Core Web App
  10. 一对一软件开发:在一对一社交app源码中加入这个功能,很有用...
  11. JAVA大数据习题Week2
  12. Pixel Bender 浅尝
  13. Linux查找命令与find命令详解
  14. SSD容量也不宜小,最好1T往上
  15. 羊毛之家,青龙脚本,几乎全部可用
  16. 多个小球碰撞的java_原生JS实现多个小球碰撞反弹效果示例
  17. 计算机五笔打字口诀,电脑五笔打字的字根口诀是什么?
  18. 《数学之美(第一版)》笔记 —— 第6章
  19. pcb 布线电容 影响延时--信号跨分割
  20. [GBase 8s 教程]GBase 8s 事务(TRANSACTION)

热门文章

  1. 进入旅游营销时代,携程有什么“大招”?
  2. cad断点快捷键_CAD打断(BREAK)命令的使用技巧
  3. Android中的SQLite数据库
  4. ubuntu搭建dns服务器
  5. 微信小程序开发VIP商城项目
  6. android 拼音字母语音,拼音发音点读app
  7. 常用测试软件01——串口调试软件
  8. PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space翻译
  9. WPF流程图制作系列相关基础一
  10. 计算机专门存储数据的单元,认识算法的数据存储单元——变量