小白简单爆破 MTK平台 wifi、蓝牙、MAC物理地址修改器

爱必应

如有问题请斑竹提出,我会立刻整改,新人发帖不容易..

前言:
一直在潜水学习,吾爱刚回归 新手首发一帖,如有不正确请各位指出 内心有点芳(手动滑稽)

背景:
之前一直用本站大佬破解的“Wifi和蓝牙MAC修改器”,谁知他又有新的升级(之前版本是V2.3.0,现在升级为V4.3. 0)。参照大佬之前的方法索性将它破解了。

软件介绍:
1、本软件仅支持MTK 联发科CPU、手机必须ROOT、具体获取root权限,大家自己操作、懂的都知道。
2、本软件可以修改以下几项
   串号       自动手动 单双串号
   蓝牙       手动修改自动修改
  WIFI地址   手动自动修改
   序列号     自动手动
3、本软件支持
   MT6589、MT6572、MT6582、MT6515、
  MT6573、MT6513、MT6575、MT6515、
  MT6577、MT6517、 MT6516  MAX 2G
   等其他芯片。
4、已测试过的机型:
   各种国产山寨MTK 四核手机、品牌机:OPPOr815t、
   中兴U819、中兴V967S、中兴U807、中兴U817、中兴U795+、中兴U880F1、中兴U795、中兴V818、中兴U809、
   华为G610S、联想A308T、联想A369、联想A269、联想A670T、联想A630、联想A820、联想A820T、联想A830、
   联想A630t、联想A798t、联想A66、联想A789、联想A60+、联想A750、联想P700、酷派7295+、酷派8295、
   夏新N808、佳通G2、小米红米1S移动版 等等没法全部写出来。
注意进入软件选择数据文件选项!!其它默认。

看一下软件的界面,以及注册报错的关键字,留作后面破解的关键入口点

小白简单爆破 MTK平台 wifi、蓝牙、MAC物理地址修改器-图1

小白简单爆破 MTK平台 wifi、蓝牙、MAC物理地址修改器-图2

一、首先查壳
我们使用通用的APK查壳工具:“ApkScan-PKID查壳工具”

小白简单爆破 MTK平台 wifi、蓝牙、MAC物理地址修改器-图3

看一下居然无壳(有壳开头难,无壳一身轻),很明显作为开发者安全意识很重要,如果有壳的话会阻挡大部分小白了。(扯远了——{:301_1003:})

二、拖入Android killer 开造

小白简单爆破 MTK平台 wifi、蓝牙、MAC物理地址修改器-图4

直接点击入口点进入软件的首页

小白简单爆破 MTK平台 wifi、蓝牙、MAC物理地址修改器-图5

接下来就用到开头,软件注册时出现的提示信息“ ”,在“工程搜索中”输入报错信息,并将字符串转化为Unicode(因为在JVM中、在内存中、在代码里声明的每一个char、String类型的变量中字符以unicode格式存在。)得到的搜索结果 所在路径和一开始从入口点进入的路径位子是一样的,由此可以说“授权码”是初始化窗体时就进行加载了。
  
小白简单爆破 MTK平台 wifi、蓝牙、MAC物理地址修改器-图6

通过点击咖啡杯“查看JAVA源码”,我们向下找“对不起,您输入的数据有误!”关键词。

小白简单爆破 MTK平台 wifi、蓝牙、MAC物理地址修改器-图7

  [Java] 纯文本查看 复制代码

public void btn1_click(View paramView) { if (this.editText.getText().toString().equals(GetSR())) //判断输入的授权码和GetSR方法中返回的值是否相等 { save(); //相等 则执行这些方法,也就是载入核心功能页面 showMain(); return; } paramView = new AlertDialog.Builder(this).create(); //不相等 则 弹出错误 提示信息 paramView.setTitle("数据错误"); paramView.setButton("确定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface paramAnonymousDialogInterface, int paramAnonymousInt) { CodeSigWindow.this.editText.setText(""); paramAnonymousDialogInterface.dismiss(); } }); paramView.setMessage("对不起,您输入的数据有误!"); paramView.show(); }

核心部分就在if判断处,我们只要将判断从原先的相等改为不相等,我们回到smali代码,来到if对应的smali代码处

.method public btn1_click(Landroid/view/View;)V    .locals 3    .param p1, "view"    # Landroid/view/View;    .prologue    .line 62    iget-object v1, p0, Lcom/mayor/codeSig/CodeSigWindow;->editText:Landroid/widget/EditText;     invoke-virtual {v1}, Landroid/widget/EditText;->getText()Landroid/text/Editable;     move-result-object v1     invoke-interface {v1}, Landroid/text/Editable;->toString()Ljava/lang/String;     move-result-object v1     invoke-virtual {p0}, Lcom/mayor/codeSig/CodeSigWindow;->GetSR()Ljava/lang/String;    move-result-object v2    invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z    move-result v1    if-eqz v1, :cond_0   //此处是if判断的位置,只要将“eqz”改成“nez”,从原来的相等才执行,变成不等执行    .line 64    invoke-direct {p0}, Lcom/mayor/codeSig/CodeSigWindow;->save()V    .line 65    invoke-virtual {p0}, Lcom/mayor/codeSig/CodeSigWindow;->showMain()V    .line 81    :goto_0    return-void    .line 67    :cond_0    new-instance v1, Landroid/app/AlertDialog$Builder;    invoke-direct {v1, p0}, Landroid/app/AlertDialog$Builder;-><init>(Landroid/content/Context;)V    .line 68    invoke-virtual {v1}, Landroid/app/AlertDialog$Builder;->create()Landroid/app/AlertDialog;    move-result-object v0    .line 69    .local v0, "dialog":Landroid/app/AlertDialog;    const-string v1, "\u6570\u636e\u9519\u8bef"    invoke-virtual {v0, v1}, Landroid/app/AlertDialog;->setTitle(Ljava/lang/CharSequence;)V    .line 70    const-string v1, "\u786e\u5b9a"    new-instance v2, Lcom/mayor/codeSig/CodeSigWindow$1;    invoke-direct {v2, p0}, Lcom/mayor/codeSig/CodeSigWindow$1;-><init>(Lcom/mayor/codeSig/CodeSigWindow;)V    invoke-virtual {v0, v1, v2}, Landroid/app/AlertDialog;->setButton(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)V    .line 78    const-string v1, "\u5bf9\u4e0d\u8d77\uff0c\u60a8\u8f93\u5165\u7684\u6570\u636e\u6709\u8bef\uff01"    invoke-virtual {v0, v1}, Landroid/app/AlertDialog;->setMessage(Ljava/lang/CharSequence;)V    .line 79    invoke-virtual {v0}, Landroid/app/AlertDialog;->show()V    goto :goto_0.end method

之后重新编译,在手机上安装就可以了
小白简单爆破 MTK平台 wifi、蓝牙、MAC物理地址修改器-图8

我们在手机端 看一下效果,直接点击“进入程序”即可,这就是简单的爆破了。以下是核心功能的界面  
小白简单爆破 MTK平台 wifi、蓝牙、MAC物理地址修改器-图9

小白简单爆破 MTK平台 wifi、蓝牙、MAC物理地址修改器-图10

注意:
本软件适用于MTK平台3G的移动设备(部分4G版本的也支持),使用前请备份NVRAM分区,以免修改后无法找回原始设备信息(包括IEMI、SN、Wifi和蓝牙的MAC等)。

smali 部分if判断学习
条件跳转分支:
"if-eq vA, vB, :cond_**"   如果vA等于vB则跳转到:cond_**
"if-ne vA, vB, :cond_**"   如果vA不等于vB则跳转到:cond_**
"if-lt vA, vB, :cond_**"    如果vA小于vB则跳转到:cond_**
"if-ge vA, vB, :cond_**"   如果vA大于等于vB则跳转到:cond_**
"if-gt vA, vB, :cond_**"   如果vA大于vB则跳转到:cond_**
"if-le vA, vB, :cond_**"    如果vA小于等于vB则跳转到:cond_**
"if-eqz vA, :cond_**"   如果vA等于0则跳转到:cond_**
"if-nez vA, :cond_**"   如果vA不等于0则跳转到:cond_**
"if-ltz vA, :cond_**"    如果vA小于0则跳转到:cond_**
"if-gez vA, :cond_**"   如果vA大于等于0则跳转到:cond_**
"if-gtz vA, :cond_**"   如果vA大于0则跳转到:cond_**
"if-lez vA, :cond_**"    如果vA小于等于0则跳转到:cond_**
总结:
虽然思路是借用大佬的,但是破解的过程还是挺有趣的,只有小白勤动手,多总结就离自己成为大佬的距离不远了。

请各位动动小手让我离“前途无量“组更进一步!!(可惜没有影视区,说不定发完这篇原创就能进了{:301_972:} )

文件下载地址暂时未公布,需要的朋友请在下方留言,看到后会第一时间更新下载地址。

原文链接:,转发请注明来源!

发表评论