吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 18319|回复: 208
上一主题 下一主题
收起左侧

[Android 原创] 手写模拟器_V1.7.2 解锁永久会员

    [复制链接]
跳转到指定楼层
楼主
PastYiHJ 发表于 2024-7-3 15:47 回帖奖励

下载的话,我是Iqoo手机应用商店叫:易手写生成器,安装包又叫手写生成器

开发工具

  • Mt管理器/Np管理器
  • DITOR

开发环境

  • root虚拟机(真机root主要是脱壳)

教程开始

提取安装包的时候发现有腾讯御安全的壳,

脱壳

略过,腾讯还是比较好处理的

会员分析

教程不是很细致

直接用常量大法,到常量这里搜索会员

会出现五个结果,后面四个选哪个点进去都可以。我这里以最后一个为例

其所在的 invoke 方法如下:(后面如无特色情况就直接用转Java代码了)

.method public final invoke()Lnet/pengtu/sxscq/dialog/ExportDialog;
    .registers 10

    .line 200
    new-instance v8, Lnet/pengtu/sxscq/dialog/ExportDialog;

    .line 201
    iget-object v0, p0, Lnet/pengtu/sxscq/activity/PaperActivity$exportDialog$2;->this$0:Lnet/pengtu/sxscq/activity/PaperActivity;

    invoke-static {v0}, Lnet/pengtu/sxscq/activity/PaperActivity;->access$getMActivity$p$s-1612100453(Lnet/pengtu/sxscq/activity/PaperActivity;)Landroidx/appcompat/app/AppCompatActivity;

    move-result-object v0

    const-string v1, "mActivity"

    invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V

    move-object v1, v0

    check-cast v1, Landroid/content/Context;

    .line 204
    iget-object v0, p0, Lnet/pengtu/sxscq/activity/PaperActivity$exportDialog$2;->this$0:Lnet/pengtu/sxscq/activity/PaperActivity;

    invoke-static {v0}, Lnet/pengtu/sxscq/activity/PaperActivity;->access$getInitViewModel$p(Lnet/pengtu/sxscq/activity/PaperActivity;)Lnet/pengtu/sxscq/vm/InitViewModel;

    move-result-object v0

    if-nez v0, :cond_1e

    const-string v0, "initViewModel"

    invoke-static {v0}, Lkotlin/jvm/internal/Intrinsics;->throwUninitializedPropertyAccessException(Ljava/lang/String;)V

    const/4 v0, 0x0

    :cond_1e
    iget-object v0, v0, Lnet/pengtu/sxscq/vm/InitViewModel;->buy_btn_vip_tips:Landroidx/databinding/ObservableField;

    invoke-virtual {v0}, Landroidx/databinding/ObservableField;->get()Ljava/lang/Object;

    move-result-object v0

    invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v4

    .line 205
    iget-object v0, p0, Lnet/pengtu/sxscq/activity/PaperActivity$exportDialog$2;->this$0:Lnet/pengtu/sxscq/activity/PaperActivity;

    new-instance v5, Lnet/pengtu/sxscq/activity/PaperActivity$exportDialog$2$$ExternalSyntheticLambda0;

    invoke-direct {v5, v0}, Lnet/pengtu/sxscq/activity/PaperActivity$exportDialog$2$$ExternalSyntheticLambda0;-><init>(Lnet/pengtu/sxscq/activity/PaperActivity;)V

    sget-object v6, Lnet/pengtu/sxscq/activity/PaperActivity$exportDialog$2$$ExternalSyntheticLambda2;->INSTANCE:Lnet/pengtu/sxscq/activity/PaperActivity$exportDialog$2$$ExternalSyntheticLambda2;

    iget-object v0, p0, Lnet/pengtu/sxscq/activity/PaperActivity$exportDialog$2;->this$0:Lnet/pengtu/sxscq/activity/PaperActivity;

    new-instance v7, Lnet/pengtu/sxscq/activity/PaperActivity$exportDialog$2$$ExternalSyntheticLambda1;

    invoke-direct {v7, v0}, Lnet/pengtu/sxscq/activity/PaperActivity$exportDialog$2$$ExternalSyntheticLambda1;-><init>(Lnet/pengtu/sxscq/activity/PaperActivity;)V

    const-string v2, "普通用户仅可导出第一页,<strong><font color=#242424>开通会员后无限制导出全部内容</font></strong>"

    const-string v3, "导出提示"

    move-object v0, v8

    .line 200
    invoke-direct/range {v0 .. v7}, Lnet/pengtu/sxscq/dialog/ExportDialog;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/reactivex/functions/Action;Lio/reactivex/functions/Action;Lio/reactivex/functions/Action;)V

    return-object v8
.end method

转Java

public final ExportDialog invoke() {
    Context context = PaperActivity.access$getMActivity$p$s-1612100453(this.this$0);
    Intrinsics.checkNotNullExpressionValue(context, "mActivity");
    Context context2 = context;
    InitViewModel access$getInitViewModel$p = PaperActivity.access$getInitViewModel$p(this.this$0);
    if (access$getInitViewModel$p == null) {
        Intrinsics.throwUninitializedPropertyAccessException("initViewModel");
        access$getInitViewModel$p = null;
    }
    return new ExportDialog(context2, "普通用户仅可导出第一页,<strong><font color=#242424>开通会员后无限制导出全部内容</font></strong>", "导出提示", String.valueOf(access$getInitViewModel$p.buy_btn_vip_tips.get()), new PaperActivity$exportDialog$2$.ExternalSyntheticLambda0(this.this$0), PaperActivity$exportDialog$2$.ExternalSyntheticLambda2.INSTANCE, new PaperActivity$exportDialog$2$.ExternalSyntheticLambda1(this.this$0));
}

看最后返回的ExportDialog对象的第四个参数的第一个参数access$getInitViewModel$p.buy_btn_vip_tips.get()

我们找到buy_btn_vip_tips跳转过去,看到他存在在一个初始化方法里面。

public void InitData(InitResp initBean) {
    if (initBean != null) {
        this.initUpdate.postValue(initBean.getUpdate());
        this.share.set(initBean.getShare());
        this.isLogin.set(initBean.getUserInfo() != null);
        this.login.postValue(Boolean.valueOf(initBean.getUserInfo() != null));
        this.buy_vip_tips.set(initBean.getBuy_vip_tips());
        this.paper_upper_limit.set(initBean.getPaper_upper_limit());
        this.font_upper_limit.set(initBean.getFont_upper_limit());
        this.free_upper_limit.set(initBean.getFree_upper_limit());
        this.buy_btn_vip_tips.set(initBean.getBuy_vip_btn_tips());
        this.on_quick_login.postValue(Boolean.valueOf(initBean.getOn_quick_login() == 1));
        if (initBean.getUserInfo() != null) {
            this.nickname.set(initBean.getUserInfo().getNickname());
            this.avatar.set(initBean.getUserInfo().getAvatar());
            this.uid.set(initBean.getUserInfo().getUid());
            this.vip.postValue(Boolean.valueOf(initBean.getUserInfo().getUser_type() == 1));
            SPUtils.getInstance().put("VIP", initBean.getUserInfo().getUser_type() == 1);
            this.isVip.set(initBean.getUserInfo().getUser_type() == 1);
            this.user_type_str.set(initBean.getUserInfo().getUser_type_str());
            this.expire_time_str.set(initBean.getUserInfo().getExpire_time_str());
            return;
        }
        this.isVip.set(false);
    }
}

注意initBean.getUserInfo() != null以下的部分,继续跳转,这次我们跳转该方法的参数InitResp

再次转Java

//
// Decompiled by Jadx - 619ms
//
package net.pengtu.sxscq.datasource.http.resp;

import net.pengtu.sxscq.bean.InitShare;
import net.pengtu.sxscq.bean.InitUpdate;
import net.pengtu.sxscq.bean.UserInfo;

public class InitResp {
    private String buy_vip_btn_tips;
    private String buy_vip_tips;
    private int font_upper_limit;
    private int free_upper_limit;
    private int on_duomaomao_mode;
    private int on_quick_login;
    private int paper_upper_limit;
    private InitShare share;
    private InitUpdate update;
    private UserInfo userinfo;

    public int getFree_upper_limit() {
        return this.free_upper_limit;
    }

    public void setFree_upper_limit(int free_upper_limit) {
        this.free_upper_limit = free_upper_limit;
    }

    public int getOn_quick_login() {
        return this.on_quick_login;
    }

    public void setOn_quick_login(int on_quick_login) {
        this.on_quick_login = on_quick_login;
    }

    public String getBuy_vip_btn_tips() {
        return this.buy_vip_btn_tips;
    }

    public void setBuy_vip_btn_tips(String buy_vip_btn_tips) {
        this.buy_vip_btn_tips = buy_vip_btn_tips;
    }

    public int getOn_duomaomao_mode() {
        return this.on_duomaomao_mode;
    }

    public void setOn_duomaomao_mode(int on_duomaomao_mode) {
        this.on_duomaomao_mode = on_duomaomao_mode;
    }

    public int getPaper_upper_limit() {
        return this.paper_upper_limit;
    }

    public void setPaper_upper_limit(int paper_upper_limit) {
        this.paper_upper_limit = paper_upper_limit;
    }

    public int getFont_upper_limit() {
        return this.font_upper_limit;
    }

    public void setFont_upper_limit(int font_upper_limit) {
        this.font_upper_limit = font_upper_limit;
    }

    public String getBuy_vip_tips() {
        return this.buy_vip_tips;
    }

    public void setBuy_vip_tips(String buy_vip_tips) {
        this.buy_vip_tips = buy_vip_tips;
    }

    public UserInfo getUserInfo() {
        return this.userinfo;
    }

    public void setUserInfo(UserInfo userInfo) {
        this.userinfo = userInfo;
    }

    public InitUpdate getUpdate() {
        return this.update;
    }

    public void setUpdate(InitUpdate update) {
        this.update = update;
    }

    public InitShare getShare() {
        return this.share;
    }

    public void setShare(InitShare share) {
        this.share = share;
    }
}

OK,应该是找到正主了,继续跳转UserInfo,看看有什么属性

//
// Decompiled by Jadx - 503ms
//
package net.pengtu.sxscq.bean;

public class UserInfo {
    private String app_account_token;
    private String avatar;
    private long expire_time;
    private String expire_time_str;
    private String nickname;
    private String uid;
    private int user_type;
    private String user_type_str;

    public long getExpire_time() {
        return this.expire_time;
    }

    public void setExpire_time(long expire_time) {
        this.expire_time = expire_time;
    }

    public String getUid() {
        return this.uid;
    }

    public void setUid(String uid) {
        this.uid = uid;
    }

    public String getApp_account_token() {
        return this.app_account_token;
    }

    public void setApp_account_token(String app_account_token) {
        this.app_account_token = app_account_token;
    }

    public String getAvatar() {
        return this.avatar;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }

    public String getNickname() {
        return this.nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public int getUser_type() {
        return this.user_type;
    }

    public void setUser_type(int user_type) {
        this.user_type = user_type;
    }

    public String getUser_type_str() {
        return this.user_type_str;
    }

    public void setUser_type_str(String user_type_str) {
        this.user_type_str = user_type_str;
    }

    public String getExpire_time_str() {
        return this.expire_time_str;
    }

    public void setExpire_time_str(String expire_time_str) {
        this.expire_time_str = expire_time_str;
    }
}

再次回顾我们的InitData方法,参考initBean.getUserInfo) ≠ null以下,我删除无用的放到下面给大家看看,

this.vip.postValue(Boolean.valueOf(initBean.getUserInfo().getUser_type() == 1));
SPUtils.getInstance().put("VIP", initBean.getUserInfo().getUser_type() == 1);
this.isVip.set(initBean.getUserInfo().getUser_type() == 1);
this.user_type_str.set(initBean.getUserInfo().getUser_type_str());
this.expire_time_str.set(initBean.getUserInfo().getExpire_time_str());

所以我们只需要修改getUser_typegetUser_type_strgetExpire_time_str这三个方法。

修改如下:

.method public getExpire_time_str()Ljava/lang/String;
    .registers 2

    .line 81
    iget-object v0, p0, Lnet/pengtu/sxscq/bean/UserInfo;->expire_time_str:Ljava/lang/String;
const-string v0,"2099-12-32"
    return-object v0
.end method

.method public getUser_type()I
    .registers 2

    .line 65
    iget v0, p0, Lnet/pengtu/sxscq/bean/UserInfo;->user_type:I
const/4 v0,0x1
    return v0
.end method

.method public getUser_type_str()Ljava/lang/String;
    .registers 2

    .line 73
    iget-object v0, p0, Lnet/pengtu/sxscq/bean/UserInfo;->user_type_str:Ljava/lang/String;
const-string v0,"VIP"
    return-object v0
.end method

效果图

使用体验

免费评分

参与人数 72吾爱币 +77 热心值 +63 收起 理由
kindseasky + 1 + 1 用心讨论,共获提升!
kukumo + 1 请勿灌水,提高回帖质量是每位会员应尽的义务!
Wiss4i + 1 + 1 谢谢@Thanks!
Nic残云 + 1 + 1 照着改终于成功了
zrf1980 + 1 + 1 谢谢@Thanks!
bruceqc + 1 + 1 谢谢@Thanks!
jdd73125 + 1 我很赞同!
geoffreycg + 1 + 1 我很赞同!
fanzuhong + 1 + 1 用心讨论,共获提升!
Shuigutou7 + 1 + 1 谢谢@Thanks!
bigdogegg + 1 + 1 我很赞同!
junjia215 + 1 + 1 用心讨论,共获提升!
ep1088 + 1 + 1 谢谢@Thanks!
infinity123 + 1 + 1 谢谢@Thanks!
danmoa1 + 1 + 1 已经处理,感谢您对吾爱破解论坛的支持!
syx1003 + 1 + 1 我很赞同!
albsz2468 + 1 谢谢@Thanks!
ForCifer + 1 + 1 谢谢@Thanks!
bosco0120 + 1 + 1 谢谢@Thanks!
13668377258 + 1 + 1 我很赞同!
xljh888 + 1 + 1 谢谢@Thanks!
一牛神一 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
mhaitao + 1 + 1 我很赞同!
cccc13775 + 1 + 1 谢谢@Thanks!
ag129 + 1 + 1 热心回复!
三滑稽甲苯 + 2 + 1 用心讨论,共获提升!
Icurk0 + 1 + 1 谢谢@Thanks!
hu1590 + 1 + 1 谢谢@Thanks!
woyaodl + 1 我很赞同!
sunline + 1 + 1 谢谢@Thanks!
BlueXun + 1 + 1 谢谢@Thanks!
pdcba + 1 + 1 谢谢@Thanks!
苦苦鬼步 + 1 + 1 谢谢@Thanks!
qinni8513 + 1 + 1 谢谢@Thanks!
yao4945 + 1 + 1 用心讨论,共获提升!
rayzju + 1 + 1 谢谢@Thanks!
开心熊猫741 + 1 + 1 热心回复!
wang82530 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
wa_j + 1 热心回复!
grrr_zhao + 1 + 1 谢谢@Thanks!
ind + 1 + 1 谢谢@Thanks!
bigzhang + 1 + 1 谢谢@Thanks!
策士 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
马克 + 2 + 1 我提取了手写字体链接: https://pan.baidu.com/s/1247S2Ftg3PU_2iPy7BrG9Q?.
lgc81034 + 1 谢谢@Thanks!
liqian0421 + 1 谢谢@Thanks!
ma4907758 + 1 谢谢@Thanks!
sanmylc + 1 + 1 用心讨论,共获提升!
zuokanjiaobing + 1 + 1 我很赞同!
hwh425 + 1 热心回复!
特斯拉2020 + 1 + 1 用心讨论,共获提升!
iTMZhang + 1 用心讨论,共获提升!
sax1980 + 1 + 1 谢谢@Thanks!
浪漫前奏 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
abclihongzhi + 1 谢谢@Thanks!
DaShiXiong33 + 1 谢谢@Thanks!
XG123114 + 1 我很赞同!
xlqdd + 1 + 1 谢谢@Thanks!
hualy + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
qiaoyong + 1 + 1 我很赞同!
g2614557 + 2 + 1 有价值
lfm333 + 1 + 1 谢谢@Thanks!
x7032360 + 1 + 1 谢谢@Thanks!
Explorer12138 + 1 + 1 我很赞同!
134wap + 1 + 1 热心回复!
edge + 1 + 1 谢谢@Thanks!
kjkuang + 1 + 1 感谢您的宝贵建议,我们会努力争取做得更好!
geliang715 + 1 + 1 谢谢@Thanks!
bxw00004 + 1 + 1 谢谢@Thanks!
blywq + 1 + 1 谢谢@Thanks!
13388157215 + 1 + 1 谢谢@Thanks!
正己 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
 楼主| PastYiHJ 发表于 2024-7-3 17:15 |楼主
xpc3527 发表于 2024-7-3 16:09
没有下载地址啊

下载链接:https://www.123pan.com/s/7hX0Vv-izmbv.html

提取码:Mfl9

免费评分

参与人数 5吾爱币 +5 热心值 +5 收起 理由
yangyang123x + 1 + 1 我很赞同!
shenyun919 + 1 + 1 谢谢@Thanks!
tail88 + 1 + 1 谢谢@Thanks!
dbsyxq + 1 + 1 谢谢@Thanks!
yinlin + 1 + 1 我很赞同!

查看全部评分

推荐
feiyu150 发表于 2024-7-4 14:20
不会代码的一头雾水,,有个最终版能直接下载使用就好了
推荐
山上的冷 发表于 2024-10-14 22:32
开发工具在哪里下载哇,我在爱盘搜索没有找到
推荐
jjcdzy 发表于 2024-7-3 16:30
来看看怎么样子哈哈
3#
qaq521 发表于 2024-7-3 16:00
ggnb!!
4#
kangyuhang 发表于 2024-7-3 16:05
可可以可以,下载用用
5#
xpc3527 发表于 2024-7-3 16:09
没有下载地址啊
6#
zlzx01 发表于 2024-7-3 16:11
能将成品发个链接吗,多谢!!
7#
heju 发表于 2024-7-3 16:19
谢谢楼主分享,能有个下载的就好了。
8#
13388157215 发表于 2024-7-3 16:25

能将成品发个链接吗,多谢!!
9#
sanb 发表于 2024-7-3 16:28
链接在哪,好东西啊这玩意~
10#
xing3333 发表于 2024-7-3 16:30
求下载地址啊 刚需
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-15 15:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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