本帖最后由 anke1 于 2024-7-28 13:49 编辑
前言
大家好,我是安柯,看到上贴的教程大家不是太懂,我也讲的不细致,于是咱们再来一遍 会的复习一遍 不会的好好学习!
教程1.先从会员开始分析,我们常量过滤会员,找到永久会员点进去
代码分析:第一段和第二段是调用静态方法和调用实例方法储存,就不做过多解释我们直接看第三段 第一个if判断语句 如果v0(user)为0或者null 那么跳转到cond49
接下来根据调用getviptype获取VIP类型,根据类型设置不同的test文本(说白了就是根据赋值判断是否显示会员字样)
看②处,如果viptype等于如果为0则设置文本为普通会员为2则设置文本为永久会员
③处表示 在vip类型为1时 用0x7f1201a2获取字符串资源,用来插入VIP到期时间后面就是调用getviptime获取VIP时间 然后格式化时间 设置文本
好的,这时候我们就明白为什么替换正则表达式时是v1 0×2了
其实这段代码你转Java更好理解 0=普通 2=永久 1=根据时间显示文本
云功能
​同样先解锁会员,我们进入软件,点击云端上传时下方会显示鉴权失败的字样,那我们就常量过滤一下,结果真的有,那我们进去看看
​
​④处主要是根据body的返回值转换为json类型判断getcode是否不为0,得出两种情况 (1)上传成功(2)上传失败或异常 所以我们把①处删除即可解决上传失败问题
​
​然后我们再次测试发现会卡在这个页面
于是我们再次常量搜索关键字眼
​进入然后分析其实这个和上面的有过之而无不及
​⑤处也同样是调用getcode获取响应码然后判断是否不为0 为0 代表成功 就会显示“数据正在........” 所以我们直接把⑤处删除 代码的判断和响应会跳过 直接通过activity实例
​
​BackupGuideActivity$c类 这里的也是同样的道理就不在叙述了
​ ​免登录
首先打开APP进入到登录界面 打开界面布局/开发助手获取密码的ID和当前界面的activity
进入dex文件,类名搜索com.wangc.bill.activity.login.LoginByEmailActivity
接着在当前结果中搜索0x7f0a06d8,搜索类型为整数
选择第一个进去,查找所有调用
然后点击第一个进去,可以转Java分析,更简洁明了
代码分析:如果checkbox被点击,那么两个编辑框里的内容传递给httpmanager类的getuseremail,根据Java可得第一个是email值,第二个是password值
那咱们把email值和password值写明,不就可以实现免登录嘛
于是我们只复制159行到173行的代码,其他的全都删除
然后代码开头加上这两句即可
tips:寄存器要改成5以上(registers 5)
const-string v0,"邮箱账号@qq.com"
const-string v1,"邮箱密码"清空此方法名然后复制下方代码
[Java] 纯文本查看 复制代码
.line 9
invoke-static {}, Lcom/wangc/bill/http/HttpManager;->getInstance()Lcom/wangc/bill/http/HttpManager; move-result-object v2 invoke-static {v1}, Lcom/wangc/bill/utils/a;->e(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 new-instance v3, Lcom/wangc/bill/activity/login/LoginByEmailActivity$e; invoke-direct {v3, p0, v0}, Lcom/wangc/bill/activity/login/LoginByEmailActivity$e;-><init>(Lcom/wangc/bill/activity/login/LoginByEmailActivity;Ljava/lang/String;)V invoke-virtual {v2, v0, v1, v3}, Lcom/wangc/bill/http/HttpManager;->getUserEmail(Ljava/lang/String;Ljava/lang/String;Lcom/wangc/bill/http/httpUtils/MyCallback;)V
这个是直接把代码写死了,点击登录直接把账号和密码自动读取,就不用咱们再输入了(不实用 但是不能不会)
结尾
教程到此结束,谢谢大家支持,一起进步! |