返回列表 发新帖

【简单实战】某八字破解教程

  [复制链接]

171

主题

3614

回帖

1万

积分

博士生

Steve2280

Rank: 7Rank: 7Rank: 7

金币
92
好评
133
信誉
167

MT论坛最佳新人2018国庆节MT论坛帅哥MT论坛新人MT论坛灌水老大考神MT论坛侠客MT论坛活跃会员

发表于 2024-5-8 02:02:32 来自手机  | 显示全部楼层 | 阅读模式  来自 四川
求助帖来源:https://bbs.binmt.cc/thread-133077-1-1.html
需要的工具:MT管理器,AIDE

测试:
安装打开App,点击使用App功能,获得关键词"注册"
开始教程……
如果使用的是原版Apk,请自行处理梆梆加固
1.去除签名校验(求助帖楼主发的软件链接不需要)
2.使用Dex++,搜索字符串"注册",可以获得以下结果

第一个虽然也可以分析,但是会麻烦一点,所以我们选择后面的"此功能只对注册用户开放"

我选的第一个,虽然没什么区别
Lcom/forace/BaZipp/BZActivity/k;
点击去,smali如图

smali关键代码如下

  1. iget-object v0, p0, Lcom/forace/BaZipp/BZActivity/k;->hT:Ljava/lang/Boolean;
  2. //获取hT的值并赋值给寄存器v0
  3.     invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z
  4. //将Boolean转为boolean并将结果赋值给v0
  5.     move-result v0
  6. //如果v0不等于false,则跳转至cond_12
  7.     if-nez v0, :cond_12
  8. //告知用户需要注册才能使用
  9.     iget-object v0, p0, Lcom/forace/BaZipp/BZActivity/k;->gW:Lcom/forace/ad/dd/MyValue;

  10.     const-string v1, "只对注册用户开放,请谅解!"

  11.     const-string v2, "综合分析"

  12.     invoke-virtual {v0, p0, v1, v2}, Lcom/forace/ad/dd/MyValue;->ShowMessage(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V

复制代码

可知v0的最初来源是Lcom/forace/BaZipp/BZActivity/k;->hT:Ljava/lang/Boolean;
我们需要对hT的赋值进行搜索
双击hT然后点击跳转,然后点击指南针图标,长按hT,会出现下面的图标

点击查找调用处,选择仅查找put调用
随便选一个结果,我选的最后一个结果,点击指南针,长按你当前的方法,点击转为Java
搜索hT
如图所示

关键Java代码

  1. //执行SQL指令,指令效果:查询config表中满足configid列的值为bz并且configvalue列的值为s()+getIMSI()的数据的数量并且将结果储存为名称为cc的变量中
  2. ContentValues GetSQLValue = this.gW.GetSQLValue(this.gW.MyDB, "select count(*) as cc from config where configid='bz' and configvalue='" + s() + getIMSI() + "'");
  3.         bool.booleanValue();
  4.         //获取cc变量并将其转为int,判断数量是否超过了0
  5.         if (GetSQLValue.getAsInteger("cc").intValue() > 0) {
  6.             try {
  7.                 Integer.parseInt(this.hO);
  8.                 //如果this.hO转为int后的数值不等于5时,hT为false,否则为true
  9.                 if (Integer.parseInt(this.hO) != 5) {
  10.                     this.hT = false;
  11.                 } else {
  12.                     this.hT = true;
  13.                 }
  14.             } catch (Exception e8) {
  15.                 this.hT = false;
  16.             }
  17.         } else {
  18.             this.hT = false;
  19.         }
复制代码

总结信息,我们必须让hT为true,而为true需要SQL查询语句中configid含有bz和configvalue含有s()+imsi的数量大于0并且this.hO需要等于5
往上追溯,发现this.hO的值来自getkey
  1.         this.hO = getkey(s(), readFileData("config1"));
复制代码

这个getkey是So方法,我懒得开电脑,UN管理器也不好分析,那么我们简单粗暴点,已知this.hO等于5时hT就为true了
那么直接改动getkey就可以了
因为存在大量同类方法,所以我们需要一个正则一键替换
Dex++搜索模式选择代码,勾选正则表达式以及区分大小写
  1. invoke.*->getkey\(.*\n\n.*object (.*)
复制代码

替换为
  1. const-string $1,"5"
复制代码

接下来让我们打开AIDE,新建一个Android项目,将此软件的classes.dex复制到项目文件夹的libs文件夹里,点击dex,使用MT的Dex2Jar也就是Dex转为Jar的功能
新建一个Java文件
我们虽然满足了this.hO等于5,但还需要SQL的查询数量大于0,既然如此,我们就借用这个App的SQL编辑功能,在最开始的Activity里直接对那个数据库进行SQL代码的写入,这样我们就一定会有一个bz并且值满足要求的数据了
关于此App的SQL结构,我使用了以下网站进行了在线浏览编辑
https://www.lzltool.com/sqlite-viewer
此App数据库所在绝对路径:
/data/user/0/com.forace.BaZipp.BZActivity/databases/bzpp.db
bzapp.db的来源可以通过分析这个App的SQL操作获得
比如MyValue类的onConnect方法里就有bzapp这个字符串
编写如下代码

  1. import com.forace.BaZipp.BZActivity.*;
  2. import com.forace.ad.dd.*;
  3. import android.database.sqlite.*;
  4. import android.widget.*;
  5. import android.util.*;
  6. import android.content.*;

  7. public class Crack
  8. {
  9.                                 public static void FuckCheck(Context pz){
  10.                                 MyValue fuck=new MyValue();
  11.                                 fuck.onConnect(pz);
  12.                                 SQLiteDatabase getAppDB=fuck.MyDB;
  13.                                 String getIMEI=fuck.GetSQLValue(getAppDB, "select count(*) as cc from config where configid='imei'  ").getAsInteger("cc").intValue() == 1 ? fuck.GetSQLValue(getAppDB, "select configvalue as cc from config where configid='imei'  ").getAsString("cc") : "N";
  14.                          Log.e("CrackZ",getIMEI);
  15. //插入config表
  16.                                 String A1="insert into config (configid, configvalue, other, flag) values ('bz','"+getIMEI+"', 'mmksa', '29');";
  17. //获取config表中configid为bz的数量
  18.                                 String A2="select count(*) as mk from config where configid='bz';";
  19. //避免每次打开都添加,只有bz没有的时候才添加
  20. if(fuck.GetSQLValue(getAppDB,A2).getAsInteger("mk")<1){
  21.                                 fuck.ExecuteSQL(getAppDB,A1);
  22.                                 }
  23.                                 fuck.onClose();
  24.                                 Toast.makeText(pz,"破解插件执行完毕……",1).show();
  25.                 }
  26. }
复制代码

将编译好的Apk的关于这个类的smali代码提取出来
然后打开我们修改后的Apk,使用Dex++,随便选个类长按,点击新建,名称随便输入,进去后将smali粘贴
最后,我们前往Lcom/forace/BaZipp/BZActivity/BaZiPPActivity;
因为这个是第一个打开的Activity
加入我们的调用代码
  1. invoke-static {p0},你新建的那个类->FuckCheck(Landroid/content/Context;)
复制代码

接下来编译安装,打开App,测试之前要求注册的功能:档案,发现可以正常使用了
2024.5.8追加:
经过测试,可能会存在执行后依旧显示未注册,其原因经过验证为FuckCheck函数执行时期过早,插入的位置可以更改为Lcom/forace/BaZipp/BZActivity/j;
位置应该在软件插入imei之后
如果不想这么做,请先安装开启这个软件,然后按此教程破解后覆盖安装即可

教程结束


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
已有2人评分好评 金币 理由
lionhe + 1 很给力!
诸葛青 + 1 + 1 辛苦啦,教程很详细

查看全部评分 总评分:好评 +2  金币 +1 

回复

使用道具 举报

12

主题

2990

回帖

9149

积分

硕士生

Rank: 6Rank: 6

金币
182
好评
4
信誉
82
发表于 2024-5-8 02:24:36 来自手机  | 显示全部楼层  来自 广东
看看隐藏
回复

使用道具 举报

218

主题

5609

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
8152
好评
25
信誉
134

MT论坛最佳新人MT论坛活跃会员MT论坛帅哥MT论坛新人MT论坛灌水老大考神

发表于 2024-5-8 02:37:28 来自手机  | 显示全部楼层  来自 广东
看看教程
回复

使用道具 举报

688

主题

1万

回帖

2万

积分

博士后

Rank: 8Rank: 8

金币
3412
好评
164
信誉
119

考神MT论坛新人MT论坛活跃会员MT论坛帅哥MT论坛灌水老大MT论坛侠客MT论坛最佳新人

发表于 2024-5-8 02:43:35 来自手机  | 显示全部楼层  来自 广东
看看隐藏
回复

使用道具 举报

0

主题

624

回帖

2123

积分

大学生

Rank: 5Rank: 5

金币
1520
好评
0
信誉
100
QQ
发表于 2024-5-8 02:44:02 来自手机  | 显示全部楼层  来自 安徽
看看
回复

使用道具 举报

0

主题

2463

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
5792
好评
0
信誉
134

MT论坛帅哥考神

发表于 2024-5-8 02:54:39 来自手机  | 显示全部楼层  来自 贵州
看看隐藏
回复

使用道具 举报

13

主题

1703

回帖

6557

积分

硕士生

Rank: 6Rank: 6

金币
2033
好评
1
信誉
98
发表于 2024-5-8 02:55:17 来自手机  | 显示全部楼层  来自 浙江
看看隐藏
回复

使用道具 举报

16

主题

3334

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
8717
好评
33
信誉
111

MT论坛新人考神MT论坛帅哥MT论坛最佳新人

QQ
发表于 2024-5-8 02:57:35 来自手机  | 显示全部楼层  来自 安徽
看看隐藏
回复

使用道具 举报

4

主题

1641

回帖

5352

积分

硕士生

初级

Rank: 6Rank: 6

金币
3029
好评
5
信誉
46
发表于 2024-5-8 03:13:42 来自手机  | 显示全部楼层  来自 山东
谢谢分享
回复

使用道具 举报

3

主题

2811

回帖

1万

积分

博士生

小白一个

Rank: 7Rank: 7Rank: 7

金币
2085
好评
2
信誉
100

MT论坛最佳新人考神

发表于 2024-5-8 03:50:55 来自手机  | 显示全部楼层  来自 湖北
感谢分享教程
回复

使用道具 举报

1

主题

373

回帖

1547

积分

高中生

Rank: 4

金币
367
好评
0
信誉
100
发表于 2024-5-8 04:08:11 来自手机  | 显示全部楼层  来自 广东
学习一下
回复

使用道具 举报

51

主题

4580

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
1943
好评
10
信誉
111
发表于 2024-5-8 04:16:53 来自手机  | 显示全部楼层  来自 河南
看看隐藏
回复

使用道具 举报

28

主题

6647

回帖

1万

积分

博士生

百川

Rank: 7Rank: 7Rank: 7

金币
8812
好评
1
信誉
150

MT论坛新人考神MT论坛帅哥

发表于 2024-5-8 04:30:51 来自手机  | 显示全部楼层  来自 四川
看看隐藏
回复

使用道具 举报

8

主题

1266

回帖

4368

积分

大学生

Rank: 5Rank: 5

金币
3355
好评
0
信誉
100
发表于 2024-5-8 04:41:59 | 显示全部楼层  来自 河北
学习一下
回复

使用道具 举报

7

主题

2498

回帖

9153

积分

硕士生

Rank: 6Rank: 6

金币
5205
好评
5
信誉
100
QQ
发表于 2024-5-8 04:49:53 来自手机  | 显示全部楼层  来自 浙江
大佬牛逼
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表