飞Young逆向分析-第二章

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 继上篇文章 飞Young逆向分析-第一章,我们已经基本了解了密码加密流程和日志的加密流程,但今天分析了其他参数的算法,貌似不是和日志加密算法一样(轻松翻车),但抠出代码调用起来不难。

飞Young逆向分析-第二章

继上篇文章 飞Young逆向分析-第一章,我们已经基本了解了密码加密流程和日志的加密流程,但今天分析了其他参数的算法,貌似不是和日志加密算法一样(轻松翻车),但抠出代码调用起来不难。

代码分析

其实代码中有我仍然很多迷惑地方,在执行登陆函数的传参处,传入的参数,和代码执行过程中对参数的处理有些看起来有冲突:传入的参数最后一次修改完成后,但后续又有参数Map调用了set方法,设置了认证请求时的参数,当然这也可能是JD-guijadxsmail语法的解释不同,导致经常是一句语句在好几个反编译软件中比较得出结论(我要是会smail就好了),主要程序中存在大量if - else、循环、try - catch,这就导致必须要跟,好多函数光看不能知道条件结果,又得要一边断条调试,一边多个软件中比较代码,很容易出错。

但我们可以以最好的情况去看,因为代码中有很多条件是对设备的检测,我们大可以以最正常的方式去看代码,就能略过部分繁琐无意义的代码,看了代码也就不难理解fyoung客户端拨个号能等半天了,迟迟连不上去,十多个参数,走这些流程,算法还得要处理时间。

参数分析

其实在跳转链接(给出登录链接的接口)里返回了一些有用的参数

  • AidcAuthAttr1

    • 这个是时间,当然这个参数可以通过格式化时间戳来获取 格式为:yyyyMMddHHmmss
  • AidcAuthAttr2

    • 这个参数貌似是用来检测wifi的,里面加密了一个ip地址,通过ping 该ip地址来检测连接wifi是否符合要求
  • AidcAuthAttr15

    • 这个参数处理后加密后就是要提交的参数 AidcAuthAttr15
  • AidcAuthAttr16

    • 目前没发现这个作用
  • AidcAuthAttr29

    • 目前没发现这个作用

认证接口所需要的参数,下面这些参数均调用了 t.c 这个函数,用 dayKey2 对内容加密

  • AidcAuthAttr3

    • 对当前应用版本号加密
  • AidcAuthAttr4

    • 对当前手机系统信息加密,格式为:android.os.Build.BRAND;android.os.Build.MODEL;android.os.Build.VERSION.RELEASE
  • AidcAuthAttr5

    • 其实进行了两次,当我们只关心最后一次,最后一次是对跳转链接中的IP加密
  • AidcAuthAttr6

    • 也进行了两次,最后一次是对跳转链接中的网卡地址加密
  • AidcAuthAttr7

    • 默认为空
  • AidcAuthAttr8

    • 这个参数就跟跳转链接中返回的 AidcAuthAttr2 相关了,从 AidcAuthAttr2 中解密出IP地址,ping 操作后会返回成功与否的信息,以及相应时间加密,由于实际操作中我们不可能去做这一步,根据返回信息,我直接伪造了 ping 操作返回的信息
  • AidcAuthAttr15

    • 从跳转链接中取出 AidcAuthAttr15 该值后,base64解码在作为加密函数的第二个参数即可得到该值
  • AidcAuthAttr22

    • 用当天key对 0 加密
  • AidcAuthAttr23

    • 用当天key对 success 加密

至此我们已经解决了认证接口中所有的参数,放到 Postman 中请求也是轻松拿下

fyoung_login_success

后续

接着就是最后一步,还原fyoung的自定义加密算法,从而可以直接解出变量值,另外本次用到的逆向工具资源都打包放在了公众号,回复关键字 逆向工具 即可下载,

声明:为了绕过阿里云盘无法分享压缩文件,我将后缀改为了png,下载后删掉即可

qrcode_for_gh_b645da873ba5_258

目录
相关文章
|
3月前
|
NoSQL 前端开发 程序员
【震撼揭秘!】程序员绝不会告诉你的秘密:掌握汇编语言调试,轻松从软件故障中全身而退——透视代码底层,成为Bug猎人!
【8月更文挑战第31天】《调试的艺术:如何利用汇编语言追踪和解决软件问题》探讨了使用汇编语言进行高效调试的方法。无论是初学者还是资深开发者,面对棘手的 bug 时,高级语言的信息往往不足。文章通过具体示例展示如何通过汇编代码定位问题,如 C 语言中数组求和函数的崩溃问题。借助 `gcc -S` 生成的汇编代码和 GDB 调试器,可以深入理解程序行为,从而更准确地解决问题。掌握这一技能,将使你在复杂问题面前更加从容。
41 2
|
存储 Java
java内存机制详解,老年人也看得懂
java内存机制详解,老年人也看得懂
76 0
|
Web App开发 存储 前端开发
【番外01】吐血整理5万字100道高频基础面试题 无名面试集《烂俗前端》
【番外01】吐血整理5万字100道高频基础面试题 无名面试集《烂俗前端》
195 0
|
缓存 算法 Java
【修正版】5张图带你彻底理解G1垃圾收集器
【修正版】5张图带你彻底理解G1垃圾收集器
835 0
【修正版】5张图带你彻底理解G1垃圾收集器
|
Java
Java福尔摩斯的约会大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很快就明白了
Java福尔摩斯的约会大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很快就明白了
131 0
Java福尔摩斯的约会大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很快就明白了
|
存储 监控 Java
JVM内存模型详解,看不懂明天你就不用来了!
线程独占 每个线程都会有它独立的空间,随线程生命周期而创建和销毁 线程共享 所有线程能访问这块内存数据,随虚拟机或者GC而创建和销毁
JVM内存模型详解,看不懂明天你就不用来了!
|
设计模式 Java 编译器
【Java编程思想读后整理(干货版)】第十章 接口
【Java编程思想读后整理(干货版)】第十章 接口
控制系统的动态结构图笔记(害怕自己忘了)
控制系统的动态结构图笔记(害怕自己忘了)
217 0
不起眼,但是足以让你收获的JVM内存案例
不起眼,但是足以让你收获的JVM内存案例
不起眼,但是足以让你收获的JVM内存案例
J3
|
机器学习/深度学习 存储 缓存
有图有真相的Java内存模型基础,你好意思不看嘛!
有图有真相的Java内存模型基础
J3
149 0
有图有真相的Java内存模型基础,你好意思不看嘛!