非Xposed版 修改微信摇塞子
本帖最后由 fanmingyi 于 2018-7-29 22:41 编辑本文继续上篇文章微信6.6.7版本摇塞子破解思路(居多图)
本文不再粘贴java转smali语法详细过程,只是讲诉下思路
http://47.106.223.235/wp-content/uploads/image/20180729/1532874776499687.gif
Xposed版本 不是所有手机环境都支持,所以我才想试试直接反编译代码写入微信apk中,这样用户就不需要配置什么复杂的环境.
第一个目标
http://47.106.223.235/wp-content/uploads/image/20180729/1532871622959440.png
效果如图
http://47.106.223.235/wp-content/uploads/image/20180729/1532872007338508.png
怎么做呢?很简单嘛拿TraceView 简体这个按钮触发点击事件在哪即可
.http://47.106.223.235/wp-content/uploads/image/20180729/1532871846663409.pnghttp://47.106.223.235/wp-content/uploads/image/20180729/1532871877722153.png
可以看到点击处理在HomeUI$25这个类中
http://47.106.223.235/wp-content/uploads/image/20180729/1532871965505761.png
那么我们先写一个弹窗函数m_show函数 嵌入HomeUI$25这个类
public boolean m_show(View view) {
try {
//LauncherUI.m_instance_LauncherUI是一个上下文对象
AlertDialog.Builder builder = new AlertDialog.Builder(LauncherUI.m_instance_LauncherUI);
builder.setTitle("桂电的互联扫地僧");
String options[] = new String[]{"抢红包", "塞子控制", "猜拳控制", "防撤销", "闪图保存"};
builder.setItems(options, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.setNegativeButton("关闭", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.show();
} catch (Exception e) {
Log.e("FMY=================", "m_show: ");
e.printStackTrace();
}
return true;
}
特别提醒的就是上面这个java转smali会生成匿名类文件,请一并拷贝到反编译的微信中
上面这个方法是嵌入在我们要反编译之后的微信之中的,我们直接嵌入HomeUI$25这个类即可,当用户点击微信界面的十字先执行它原本的的onclick函数,我们在onclick函数中调用m_show()即可.(当然这里嵌入的是smali代码,上一篇文章讲诉过怎么做了)再来解决一个问题如何得到上下文对象实例?因为我们弹窗代码需要用到这个作为参数.
解决办法,也很简单,View有一个函数getContent来获取 .然后你会发现用这个方法不一定成功哦,这里不做原因解释我们直接干脆拿微信界面的Activity界面的对象实例.(Activity也是一个上下文对象的子类)
首先打开微信界面,然后再命令行输入 adb shell dumpsys acitivity top
http://47.106.223.235/wp-content/uploads/image/20180729/1532872676269175.png
我们这里采用的思想如下.在LanucherUi这个类中创建public的静态实例指向自己,伪代码如下(请自行修改微信源smali代码)
http://47.106.223.235/wp-content/uploads/image/20180729/1532873050651626.png
此时弹窗代码基本思路介绍完了.我们把弹窗完善下,当用户点击弹窗的控制撒子按钮时我们在弹窗一个选择1到6的选择界面,目的是让用户选择塞子点数.
这里直接贴代码吧
class HomeUI$25 {
public void onClick(View view){
/**
* ************************
* **********************
* 这里注释表示原本程序的逻辑代码
* *********************
* **********************
*/
m_show(view);//弹窗
/**
* ************************
* **********************
* 这里注释表示原本程序的逻辑代码
* *********************
* **********************
*/
}
public boolean m_show(View view) {
try {
AlertDialog.Builder builder = new AlertDialog.Builder(LauncherUI.m_instance_LauncherUI);
builder.setTitle("桂电的互联扫地僧");
String options[] = new String[]{"抢红包", "塞子控制", "猜拳控制", "防撤销", "闪图保存"};
builder.setItems(options, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
switch (which) {
case 1:
dialog.dismiss();
ctl_dice();
break;
}
}
});
builder.setNegativeButton("关闭", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.show();
} catch (Exception e) {
Log.e("FMY=================", "m_show: ");
e.printStackTrace();
}
return true;
}
public void ctl_dice() {
try {
AlertDialog.Builder builder = new AlertDialog.Builder(LauncherUI.m_instance_LauncherUI);
builder.setTitle("选择点数");
String options[] = new String[]{"1", "2", "3", "4", "5", "6"};
builder.setItems(options, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
//给bi类的dice变量设置摇骰子点数.这个类是上一篇文章中分析过的 用户随机生成一个0-5的数字
// 控制骰子.我们这里在手动的添加了一个静态int变量名为dice.后文在继续详细讲解
bi.dice = which;
Toast.makeText(LauncherUI.m_instance_LauncherUI, "修改点数成功", Toast.LENGTH_SHORT).show();
}
});
builder.show();
} catch (Exception e) {
Log.e("FMY=================", "m_show: ");
e.printStackTrace();
}
}
}
还有一处思想要改就是如何完美控制?上面一行代码如下
bi.dice = which;
上一篇文章解释过bi类中有个eF函数,我们在eF函数返回塞子点数.我们这里可以在这个类中创建一个变量叫dice,当调用eF的时候直接返回dice作为结果(当然你还要在eF中判断是否为当前函数调用是为了生成塞子点数,这个函数有可能为其他目的而被调用)
http://47.106.223.235/wp-content/uploads/image/20180729/1532873777495317.png
以上就是整体的思路.反编译会apk即可,实现非xposed实现点数控制现在网上有一些卖什么vip版本微信 原理也是如此.当然也可以添加微信帐号密码监听功能,所以请小心.为防止恶意应用.不打算放出修改后的apk.这篇文章我只是分享下我的思路 ,我并不厉害,我也只是刚入门,记录下学习过程.还请大家多多包涵 是一搂不 这是要封号的节奏啊 来个成品呗{:1_899:} 我不晓得你在说啥子,但是我感觉你很牛批 我就想问问会不会封号 不明觉厉啊。更新会出bug吗? 6666666666666666666 我不晓得你在说啥子,但是我感觉你很牛批 这个可以学习一下