12下一页
返回列表 发新帖

和平变声器免登录

[复制链接]

341

主题

2337

回帖

7960

积分

硕士生

Rank: 6Rank: 6

金币
1048
好评
9
信誉
101
发表于 2025-11-2 11:06:43 来自手机  | 显示全部楼层 | 阅读模式  来自 浙江
昨晚就想搞得但是睡觉困死了,所以今天起来搞早上,720/2需要正则修复脱壳,不过讲解多了,会员不讲,登录来讲主要一下
1.打开dex++全选dex,进入搜索常量选择过滤常量,搜索点击登录选择第二个结果有两个
2.进去后,发现一长串代码看的眼花?转JAVA看一看,JAVA代码如下
  1. package com.voice.wendell.ui.fragment;

  2. import android.text.TextUtils;
  3. import android.util.Log;
  4. import com.bumptech.glide.Glide;
  5. import com.voice.wendell.base.BaseFragment;
  6. import com.voice.wendell.paymodule.UserInfoUtil;
  7. import com.voice.wendell.util.VipUtils;

  8. public class VoiceMeFragment extends BaseFragment {
  9.     private void updateData() {
  10.         if (!TextUtils.isEmpty(UserInfoUtil.getUserName())) {
  11.             Glide.with(this).load(UserInfoUtil.getHeadUrl()).placeholder(0x7f0d003d).error(0x7f0d003d).into(this.binding.imgUserHead);
  12.             this.binding.tvUserName.setText(UserInfoUtil.getUserName());
  13.             this.binding.imgMineSetting.setVisibility(0);
  14.         } else {
  15.             Glide.with(this).load(0x7f0d003d).into(this.binding.imgUserHead);
  16.             this.binding.tvUserName.setText("点击登录");
  17.             this.binding.imgMineSetting.setVisibility(4);
  18.         }
  19.         if (VipUtils.isVip()) {
  20.             this.binding.imgUserVipFlag.setVisibility(0);
  21.             this.binding.tvBtnVip.setVisibility(4);
  22.             this.binding.tvVipText.setText("您已开通会员");
  23.             this.binding.layoutVip.setVisibility(0);
  24.             this.binding.tvVipTime.setVisibility(0);
  25.             Log.e("TAG", "updateData: " + VipUtils.getVipExpireTime());
  26.             this.binding.tvVipTime.setText("会员到期时间: " + VipUtils.getTimeWithYMH(VipUtils.getVipExpireTime()));
  27.         } else {
  28.             this.binding.imgUserVipFlag.setVisibility(8);
  29.             this.binding.tvBtnVip.setText("立即开通");
  30.             this.binding.tvBtnVip.setVisibility(0);
  31.             this.binding.tvVipText.setText("开通会员畅享更多特权");
  32.             this.binding.tvVipTime.setVisibility(8);
  33.         }
  34.         if (VipUtils.isShowVip()) {
  35.             this.binding.layoutVip.setVisibility(0);
  36.         } else {
  37.             this.binding.imgUserVipFlag.setVisibility(8);
  38.             this.binding.layoutVip.setVisibility(8);
  39.             this.binding.tvVipTime.setVisibility(8);
  40.         }
  41.         initRVSetting1();
  42.         initRVSetting2();
  43.     }
  44. }
复制代码

找不出与登录有关的代码?扔给AI分析一下,AI给的模棱两可,但是给出了- 已登录:显示用户头像(Glide 加载  UserInfoUtil  的头像地址)、用户名,显示设置图标( visibility=0  即显示)这个分析,可以知道加载已登录账号的东西,但我们现在还是未登录,不管
3.smali代码扔给AI看看

  1. .method private updateData()V
  2.     .registers 6

  3.     .line 223
  4.     invoke-static {}, Lcom/voice/wendell/paymodule/UserInfoUtil;->getUserName()Ljava/lang/String;

  5.     move-result-object v0

  6.     invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

  7.     move-result v0

  8.     const/4 v1, 0x4

  9.     const v2, 0x7f0d003d

  10.     const/4 v3, 0x0

  11.     if-nez v0, :cond_41

  12.     .line 224
  13.     invoke-static {p0}, Lcom/bumptech/glide/Glide;->with(Landroidx/fragment/app/Fragment;)Lcom/bumptech/glide/RequestManager;

  14.     move-result-object v0

  15.     .line 225
  16.     invoke-static {}, Lcom/voice/wendell/paymodule/UserInfoUtil;->getHeadUrl()Ljava/lang/String;

  17.     move-result-object v4

  18.     invoke-virtual {v0, v4}, Lcom/bumptech/glide/RequestManager;->load(Ljava/lang/String;)Lcom/bumptech/glide/RequestBuilder;

  19.     move-result-object v0

  20.     .line 226
  21.     invoke-virtual {v0, v2}, Lcom/bumptech/glide/RequestBuilder;->placeholder(I)Lcom/bumptech/glide/request/BaseRequestOptions;

  22.     move-result-object v0

  23.     check-cast v0, Lcom/bumptech/glide/RequestBuilder;

  24.     .line 227
  25.     invoke-virtual {v0, v2}, Lcom/bumptech/glide/RequestBuilder;->error(I)Lcom/bumptech/glide/request/BaseRequestOptions;

  26.     move-result-object v0

  27.     check-cast v0, Lcom/bumptech/glide/RequestBuilder;

  28.     iget-object v2, p0, Lcom/voice/wendell/ui/fragment/VoiceMeFragment;->binding:Lcom/voice/wendell/databinding/FragmentVoiceMeNewBinding;

  29.     iget-object v2, v2, Lcom/voice/wendell/databinding/FragmentVoiceMeNewBinding;->imgUserHead:Lcom/google/android/material/imageview/ShapeableImageView;

  30.     .line 228
  31.     invoke-virtual {v0, v2}, Lcom/bumptech/glide/RequestBuilder;->into(Landroid/widget/ImageView;)Lcom/bumptech/glide/request/target/ViewTarget;

  32.     .line 229
  33.     iget-object v0, p0, Lcom/voice/wendell/ui/fragment/VoiceMeFragment;->binding:Lcom/voice/wendell/databinding/FragmentVoiceMeNewBinding;

  34.     iget-object v0, v0, Lcom/voice/wendell/databinding/FragmentVoiceMeNewBinding;->tvUserName:Landroid/widget/TextView;

  35.     invoke-static {}, Lcom/voice/wendell/paymodule/UserInfoUtil;->getUserName()Ljava/lang/String;

  36.     move-result-object v2

  37.     invoke-virtual {v0, v2}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V

  38.     .line 230
  39.     iget-object v0, p0, Lcom/voice/wendell/ui/fragment/VoiceMeFragment;->binding:Lcom/voice/wendell/databinding/FragmentVoiceMeNewBinding;

  40.     iget-object v0, v0, Lcom/voice/wendell/databinding/FragmentVoiceMeNewBinding;->imgMineSetting:Landroid/widget/ImageView;

  41.     invoke-virtual {v0, v3}, Landroid/widget/ImageView;->setVisibility(I)V

  42.     goto :goto_65

  43.     .line 232
  44.     :cond_41
  45.     invoke-static {p0}, Lcom/bumptech/glide/Glide;->with(Landroidx/fragment/app/Fragment;)Lcom/bumptech/glide/RequestManager;

  46.     move-result-object v0

  47.     invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

  48.     move-result-object v2

  49.     invoke-virtual {v0, v2}, Lcom/bumptech/glide/RequestManager;->load(Ljava/lang/Integer;)Lcom/bumptech/glide/RequestBuilder;

  50.     move-result-object v0

  51.     iget-object v2, p0, Lcom/voice/wendell/ui/fragment/VoiceMeFragment;->binding:Lcom/voice/wendell/databinding/FragmentVoiceMeNewBinding;

  52.     iget-object v2, v2, Lcom/voice/wendell/databinding/FragmentVoiceMeNewBinding;->imgUserHead:Lcom/google/android/material/imageview/ShapeableImageView;

  53.     invoke-virtual {v0, v2}, Lcom/bumptech/glide/RequestBuilder;->into(Landroid/widget/ImageView;)Lcom/bumptech/glide/request/target/ViewTarget;

  54.     .line 233
  55.     iget-object v0, p0, Lcom/voice/wendell/ui/fragment/VoiceMeFragment;->binding:Lcom/voice/wendell/databinding/FragmentVoiceMeNewBinding;

  56.     iget-object v0, v0, Lcom/voice/wendell/databinding/FragmentVoiceMeNewBinding;->tvUserName:Landroid/widget/TextView;

  57.     const-string/jumbo v2, "点击登录"

  58.     invoke-virtual {v0, v2}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V

  59.     .line 234
  60.     iget-object v0, p0, Lcom/voice/wendell/ui/fragment/VoiceMeFragment;->binding:Lcom/voice/wendell/databinding/FragmentVoiceMeNewBinding;

  61.     iget-object v0, v0, Lcom/voice/wendell/databinding/FragmentVoiceMeNewBinding;->imgMineSetting:Landroid/widget/ImageView;

  62.     invoke-virtual {v0, v1}, Landroid/widget/ImageView;->setVisibility(I)V
复制代码

代码就是这里面的,豆包给出了回复,如下
  1. 1. 加载用户头像(用  UserInfoUtil.getHeadUrl()  的地址,默认图占位):

  2.  

  3. 2. 显示用户名到文本控件:

  4.  

  5. 3. 显示设置图标( setVisibility(0)  即 VISIBLE):

  6.  

  7. 简单说:用户名非空 → 加载用户头像+显示用户名+显示设置图标,这三组操作共同对应“账户已登录”的显示逻辑。
复制代码

豆包说是getUsername不为空就是已登录状态并且会带动下面已登录的代码那我们直接跳转到getUsername的界面
  1.    const-string/jumbo v0, "user_name"

  2.     const-string v1, ""
复制代码

已经为我们写好了,直接在const-string v1,""的冒号里写入自己想要的内容就可以了保存退出安装即可
成品图:

本帖子中包含更多资源

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

x
回复

使用道具 举报

1

主题

1626

回帖

4177

积分

大学生

Rank: 5Rank: 5

金币
614
好评
0
信誉
100
发表于 2025-11-2 11:11:30 来自手机  | 显示全部楼层  来自 广西
感谢分享思路
回复

使用道具 举报

12

主题

5247

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
1594
好评
16
信誉
578

考神MT论坛帅哥MT论坛新人MT论坛最佳新人MT论坛活跃会员

发表于 2025-11-2 11:30:43 来自手机  | 显示全部楼层  来自 广东
感谢分享
回复

使用道具 举报

93

主题

6098

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
1279
好评
6
信誉
106
发表于 2025-11-2 13:08:35 来自手机  | 显示全部楼层  来自 福建
谢谢分享
回复

使用道具 举报

26

主题

3671

回帖

7388

积分

硕士生

Rank: 6Rank: 6

金币
268
好评
2
信誉
94

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

发表于 2025-11-2 14:16:22 来自手机  | 显示全部楼层  来自 江西
感谢分享
回复

使用道具 举报

18

主题

2246

回帖

5956

积分

硕士生

Rank: 6Rank: 6

金币
3583
好评
0
信誉
90

MT论坛最佳新人考神

发表于 2025-11-2 14:25:33 来自手机  | 显示全部楼层  来自 河南
现在都是把代码扔给AI了啊。
回复

使用道具 举报

6

主题

622

回帖

2446

积分

大学生

Rank: 5Rank: 5

金币
1420
好评
0
信誉
100
发表于 2025-11-2 14:26:34 来自手机  | 显示全部楼层  来自 山东
看看看看
回复

使用道具 举报

9

主题

5491

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
700
好评
0
信誉
116

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

发表于 2025-11-2 14:39:25 来自手机  | 显示全部楼层  来自 安徽
感谢分享思路
回复

使用道具 举报

13

主题

6965

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
1508
好评
4
信誉
104

考神

发表于 2025-11-2 15:17:15 来自手机  | 显示全部楼层  来自 浙江
学习下咋操作
回复

使用道具 举报

341

主题

2337

回帖

7960

积分

硕士生

Rank: 6Rank: 6

金币
1048
好评
9
信誉
101
发表于 2025-11-2 15:35:35 来自手机  | 显示全部楼层  来自 浙江
tuzi1 发表于 2025-11-2 14:25
现在都是把代码扔给AI了啊。

方便
回复

使用道具 举报

1

主题

41

回帖

59

积分

小学生

Rank: 2

金币
75
好评
0
信誉
90
发表于 2025-11-2 15:45:14 来自手机  | 显示全部楼层  来自 广东
感谢分享
回复

使用道具 举报

8

主题

1478

回帖

2898

积分

大学生

Rank: 5Rank: 5

金币
553
好评
1
信誉
100
发表于 2025-11-2 18:49:56 来自手机  | 显示全部楼层  来自 河南
学习一下
回复

使用道具 举报

41

主题

1万

回帖

2万

积分

博士后

Rank: 8Rank: 8

金币
6142
好评
3
信誉
98
发表于 2025-11-2 20:13:27 来自手机  | 显示全部楼层  来自 山东
感谢分享
回复

使用道具 举报

0

主题

4421

回帖

7718

积分

硕士生

Rank: 6Rank: 6

金币
304
好评
0
信誉
100
发表于 2025-11-5 12:29:28 来自手机  | 显示全部楼层  来自 江苏
还是ai厉害
回复

使用道具 举报

2

主题

104

回帖

331

积分

初中生

Rank: 3Rank: 3

金币
296
好评
0
信誉
100
发表于 2025-11-6 02:25:22 来自手机  | 显示全部楼层  来自 山东
感谢
回复

使用道具 举报

发表回复

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

本版积分规则

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