JealousCat / GGMod

提供GameGuardian的MOD教程和代码,如luajava库、修复os.execute函数、完善String库、添加Canvas等。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GGMod

提供GameGuardian的MOD教程和代码,如luajava库、修复os.execute函数、完善String库、添加Canvas等。 相较于提供java源码,提供封装好的dex或smali更能让大多数人直接投入使用,即使他什么语言也不会也能根据教程获得所需。如果是想学Java源码的,那么dex、smali也不会难倒你吧?? 2021.10.01开始不定时更新

最新版luajava获取渠道

通过百度网盘分享的文件:96DM[luajava]修改器各版本汇总 链接:https://pan.baidu.com/s/1pGXO07eHALUW5j6dSht0yw?pwd=ec2b 提取码:ec2b 复制这段内容打开「百度网盘APP 即可获取」

最新版词法分析器获取渠道

链接:https://pan.baidu.com/s/1lSOZHGeAevNw1qYq4WlDKA?pwd=DM66 提取码:DM66

养佬院群文件下载

链接:https://pan.baidu.com/s/1H97XX4CyAOxNoSt0EPiafQ?pwd=DM66 提取码:DM66

手机端工具

MT文件管理器.apk

AIDE.apk

GameGuardian.apk

语言

主要涉及以下语言

Lua

LuaJ

LuaJava

Java

模板

由于luajava没法提供方便的String类的交互,所以我们需要对String类中的一些方法进行封装,并将它加入_G全局表中的string库里

StringLib.java类为luaj原String库编写方式的模板(不是我封装好的那个StringLib的源码),参考该编写方式可有效学习函数封装方法

https://github.com/JealousCat/GGMod/blob/main/Function/StringLib.java

美化教程

注:指对非函数库类功能或UI界面等进行更改,使得修改器使用体验更好,界面更美观

一、更改安装包包名,同时可以起到去除随机安装的作用

二、更换修改器图标

三、桌面图标两个变一个

四、通过arsc文件精简安装包大小

五、通过res文件精简安装包大小

六、通过dex文件精简安装包大小

七、去除脚本执行结束时的“脚本已结束:”字样,方便复制结束内容

八、UI图标美化

九、设置彩色描边透明背景弹窗

弹窗美化教程中的Alert.smali下载

十、去除搜索列表、保存列表的说明文字

十一、状态栏

const/4 v4, 0x1

invoke-virtual {p0, v4}, Landroid/ext/BaseActivity;->requestWindowFeature(I)Z

十二、无错删除主页不常用按钮,美化按钮UI,设置主页背景图

十三、去除弹窗等界面上链接显示

十四、设置透明按钮

const v1, 0x0

invoke-virtual {p0, v1}, Landroid/fix/Button;->setBackgroundColor(I)V

函数添加教程

注:指将编译好的函数文件添加到GG修改器的函数库中

luajava.dex文件下载

(2022.1.17注:luajava的函数库有更新,参见Luajava的readme) LuaJava库将原官方的Loadlib更换为LoadDex,新增luajava.astable、luajava.toArray、luajava.methods。具体用法在后续教程中体现,或使用jadx查看java代码

一、添加luajava库,用于lua与java交互,并可使用java方法

二、添加String库,在原有基础上完善

三、在string和math库添加单个新函数

新增加了两个函数,其添加教程都可以使用如上教程

string.similarity字符串相似度

math.gcd最大公约数计算

四、脱胎于GG原生类的工具函数库ToolsLib.dex

整理了GG原来的所有类中的方法,将可以直接访问的静态方法,且有一定脚本内使用价值的方法均封装在ToolsLib

ToolsLib.dex作为全新编译的拓展库,它可以像StringLib等库一样在Script类中实例化并加载进全局环境中,也可以使用luajava.loadDex进行非合并的本地加载

tools.removeNewLinesChars、tools.getCacheDir、tools.getHiddenDir、tools.getRamSizeKb、tools.isRootMode、tools.tryRoot、tools.toString64、tools.getLogcatFilename、tools.openAppInfo、tools.chmod、tools.executeScript、tools.isScreenOn、tools.getCacheDirHidden、tools.isPackageInsta、tools.alertBigText、tools.getNativePath、tools.exec、tools.prefixLongHex、tools.getFilesDir、tools.sendRestartIntent、tools.dump、tools.compare、tools.getStubLib、tools.hash、tools.crc32、tools.isLandscape、tools.ToHexString、tools.getScreenSize、tools.isX86、tools.trimDirPath、tools.doubleToTime、tools.allowExecute、tools.getSdcardPath、tools.prefix、tools.formatFileSize、tools.dp2px、tools.copyFile、tools.restartApp、tools.longToTime、tools.getDaemonDir、tools.getDaemonPath、tools.getFilesDirHidden、tools.parseTime、tools.getFreeMem、tools.getDataDirSafe

有机会再详细说明各个函数的用法

五、dex转samli

反编译arsc、xml

六、apk签名

你可以luajava库来访问它们

七、CoroutineLib协程添加

八、新增LogPrint,可实时查看打印内容,区别于print需要脚本结束才能看。使用方法见LogPrint.lua

九、RSA加密解密,类中三个方法:decrypt、encrypt、generateKeyPair

十、Root管理类,类中有execRootCmd、execRootCmdSilent、haveRoot

十一、屏幕参数类,通过initIfNeeded初始化Activity得到一些参数,具体内容点击链接查看源码

十二、zip管理类,有压缩方法zip、解压方法unzip、数据流拷贝copy方法、向压缩包内追加内容append方法

十三、新增table.equals用于比较两个表内容是否相等;table.allPerm数组全排列。需要与classes.dex合并,教程参考MathLib的补充教程

十四、Jsoup让你解析网页更专业!

函数编写教程

注:指函数源码编写过程,可学习LuaJ和luajava的API

一、安装手机端AIDE

二、编写一个StringUtils调试luajava库

三、String库的完善与相关函数编写

①主要讲解LuaValue.valueOf的使用

②展示一些函数的编写过程

③教学封装StringLib的函数如何与原库合并

新增内容如下:

string.compare、string.endsWith、string.equals、string.hashCode、string.intern、string.startsWith、string.split、string.toCharArray、string.trim、string.delet、string.insert、string.setCharAt、string.newString、string.isLetter、string.isDigit、string.isUpper、string.isLower、string.toUpper、string.toLower

用法可参考Java原方法,或者查看StringLib.dex的源码来学习函数用法

Lua实现的一些工具

Lua实现的Lua词法分析 API

需要注意其中使用了gg.bytes代替string.byte来获取byte[]

使用上述API实现的Lua代码格式化工具

可实现将压缩成一行的,可读性差的Lua源码格式化为正常的文件

About

提供GameGuardian的MOD教程和代码,如luajava库、修复os.execute函数、完善String库、添加Canvas等。


Languages

Language:Lua 74.2%Language:Smali 25.4%Language:Java 0.5%