巧用日志打印抓取加速器线路(二)--MT注入功能
本帖最后由 正己 于 2021-1-9 14:51 编辑# **前言:**
其实MT的注入功能已经出了有一段时间,不过我一直没去研究,昨晚研究了一下,发现其实很简单。下面就由一个软件来进入这个功能的实战环节。
***
# **过程:**
下面有请我们的主角,没错,又是它,我们可爱的吉吉,我们上一次的主角今天又来了。哦!上帝,原谅这可怜的吉吉!
[巧用日志打印抓取加速器线路教程](
https://www.52pojie.cn/thread-1198026-1-1.html
)
第一步:根据我们以前的经验,把关键点锁定到decrypt方法,看了一下,代码啥也没变。在这个方法中我们需要注意五个信息,分别是
`调用方法:invoke-direct`
`方法参数:[BLjava/lang/String;`
`方法返回值类型:V`
`寄存器数量:{p1, p0, p2}`
`以及类路径:com.github.shadowsocks.utils.Encryptor
(这里的路径必须是这种格式:com.xxx.xxx)`
其中的寄存器数量决定我们是打印方法返回值还是打印方法参数。像图中有三个寄存器,所以我们要在等会到日志注入中选择打印方法参数。
第二步:记下上面的信息后,我们打开MT的注入日志纪录功能(这里需要对dex重新划分一下,不然无法注入,是这个app本身的原因,并不是所有的注入都要加上这个步骤,小白注意了!),把我们刚才的类路径填到需要注入的类里,然后点击右上角的笔,点击打印字符串,开始填写我们的注入信息:
1.注入位置选择
`在invoke指令调用方法之后`
2.勾选匹配invoke-direct指令
3.点击方法匹配选项
4.方法所在类和和方法名勾选匹配容易值(这里也可以填具体的方法和类,酌情而定)
5.方法参数和方法返回值分别填入刚才的值
6.点击确定,然后执行操作选择打印方法参数,如果不知道打印哪个参数就全部勾上,这里因为我们以前的经验,知道p1是关键点,所以这里就只勾打印第一个参数(这里还需要注意的是,只有单寄存器才打印方法返回值,不然就是打印方法参数)
7.然后就可以开始注入了
第三步:
怎么确定我们有正确注入呢?需要我们注入后,进入注入的方法,观察有没有了类似`0001.java:1`的代码,这里的`0001.java:1`可以理解为一个标签,如果我们注入的方法中有多个符合条件的代码,那么这个标签可以帮助我们更好地定位到我们真正注入的位置。例如截图中就有两个标签,而我们真正要的信息就只有标签2,所以等会输出的文件中我们就不需要看标签1的信息了。
第四步:安装,然后记得给软件读写权限,如果没有,就在AndroidManifest.xml加上,打开软件,随便选一个节点。
***
# **最后:**
最后来看一下效果:
哦!上帝,原谅这可怜的吉吉!
第一张是打印全部方法参数:
下面的是打印第一个参数:
测试一下是否能用
mmmaxxx2630 发表于 2022-8-19 16:58
安装,然后记得给软件读写权限,如果没有,就在AndroidManifest.xml加上,打开软件,随便选一个节点。怎么 ...
用MT管理器或者np管理器打开AndroidManifest.xml,在<application上面加上
<uses-permission android:name=“android.permission.READ_EXTERNAL_STORAGE”/>
<uses-permission android:name=“android.permission.WRITE_EXTERNAL_STORAGE”/>
沙发沙发 审核好慢呀 感谢大神分享,好好学习一下。 这是个啥加速器 新版不能注入,加壳了 jerry828 发表于 2021-2-15 13:55
新版不能注入,加壳了
一直都有壳啊,脱一下就好了 正己 发表于 2021-2-15 17:41
一直都有壳啊,脱一下就好了
2.2.1好像没壳啊 jerry828 发表于 2021-2-15 20:47
2.2.1好像没壳啊
反正都一样,免费壳随便脱 正己 发表于 2021-2-15 21:16
反正都一样,免费壳随便脱
2.2.2好像是数字壳