介绍
需要使用mt管理器进行修改操作,无需电脑操作,可将软件内添加弹窗
准备工具
0.一台手机
1.mt管理器
2.需要添加弹窗的软件(建议未加固的)
开始教学
第一步:提取需要添加弹窗的软件的APK安装包
1.打开mt管理器
2.点击左上角的三条杠进入菜单
3.在菜单中的工具分类中点击”安装包提取”
4.在里面点击需要添加弹窗的软件
5.点击”提取安装包”
6.提取成功后点击”定位”
此时你就进入了为/storage/emulated/0/MT2/apks/路径当中,在这里可以看到刚才的软件安装包
第二步:使用Activity记录记录软件的界面
1.再次点击左上角的三条杠进入菜单
2.在菜单中的工具分类中点击”Activity记录”
3.点击”启动服务”后跳转到辅助功能设置,在辅助功能中打开Activity记录
4.然后返回mt管理器再次点击”启动服务”开始记录界面
5.启动后迅速打开需要添加弹窗的软件,然后抓到你需要添加弹窗的页面
6.抓到后返回mt管理器,Activity记录中都增加了一些软件名称与com开头的页面名
7.点击你抓到的需要添加弹窗的页面与软件名称,复制页面名即可。
此时软件的界面名记录成功了,请注意不要抓错软件了,不然无效
第三步:开始在软件中添加弹窗
1.点击你第一步提取的安装包
2.点击查看
3.可以看到安装包中有很多文件,这是拆包后获取的
4.点击软件中的classes.dex文件或者dex格式的文件
5.点击Dex编辑器++
6.如果有多个dex格式文件的话,点击Dex编辑器++后再点全选,之后再点确定
7.在Dex编辑器++中点击”搜索”再在功能分类中点击发起新搜索
8.在搜索内容下填写你使用Activity记录记录的com开头的页面名,路径不用管,搜索类型为类名,最后点确定
9.搜索完成后,在功能分类中点击”在当前结果搜索”
10.查找内容为
Oncreat
搜索类型为方法名,最后点击确定
11.图文教学
12.将弹窗代码插入在”method public onCreate ……”的下行,看图片(弹窗代码放在最后)
13.最后返回,出现提示后点击确定,建议在选中自动签名
14.如果你没有选中签名,那么返回后,点击刚才的安装包,如果出现了签名状态出现检验不通过,那么按步骤,点击功能→APK签名→确定即可,签名完成后出现两个安装包,点击安装包如果签名校验通过就可以安装了!!!
15.点击安装后如果提示安装包签名不一致就点击确定,把原来的安装包给删除,否则无法安装,如果有重要数据建议备份,否则数据流失,卸载后重新安装即可
16.如果无法打开软件,可能为签名问题或dex修改出错,建议直接换个软件重试
弹窗代码
1.Toast提示弹窗
const-string v0, "这里填内容"
const/4 v1, 0x1
invoke-static {p0, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
move-result-object v0
invoke-virtual {v0}, Landroid/widget/Toast;->show()V
效果图:
2.弹窗+内容
new-instance v0, Landroid/app/AlertDialog$Builder;
invoke-direct {v0, p0}, Landroid/app/AlertDialog$Builder;-><init>(Landroid/content/Context;)V
const-string v1, "这是内容"
invoke-virtual {v0, v1}, Landroid/app/AlertDialog$Builder;->setMessage(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;
move-result-object v0
invoke-virtual {v0}, Landroid/app/AlertDialog$Builder;->show()Landroid/app/AlertDialog;
点击空白处即可取消,效果图:
3.弹窗+内容+标题
new-instance v0, Landroid/app/AlertDialog$Builder;
invoke-direct {v0, p0}, Landroid/app/AlertDialog$Builder;-><init>(Landroid/content/Context;)V
const-string v1, "标题"
invoke-virtual {v0, v1}, Landroid/app/AlertDialog$Builder;->setTitle(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;
move-result-object v0
const-string v1, "这是内容"
invoke-virtual {v0, v1}, Landroid/app/AlertDialog$Builder;->setMessage(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;
move-result-object v0
invoke-virtual {v0}, Landroid/app/AlertDialog$Builder;->show()Landroid/app/AlertDialog;
效果图:
4.弹窗+内容+标题+按钮
new-instance v0, Landroid/app/AlertDialog$Builder;
invoke-direct {v0, p0}, Landroid/app/AlertDialog$Builder;-><init>(Landroid/content/Context;)V
const-string v1, "标题"
invoke-virtual {v0, v1}, Landroid/app/AlertDialog$Builder;->setTitle(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;
move-result-object v0
const-string v1, "这是内容"
invoke-virtual {v0, v1}, Landroid/app/AlertDialog$Builder;->setMessage(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;
move-result-object v0
const-string v1, "按钮"
const/4 v2, 0x0
invoke-virtual {v0, v1, v2}, Landroid/app/AlertDialog$Builder;->setPositiveButton(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;
move-result-object v0
invoke-virtual {v0}, Landroid/app/AlertDialog$Builder;->show()Landroid/app/AlertDialog;
演示图:
完结
你学废了吗?