接上节课内容

​​安卓逆向 -- 抓包环境设置(Charles+Postern)​​

一、分析登录的数据包,加密的数值是登录的密码,看着想md5加密,请求头中,x-sign也是加密的,看着也像md5。

POST /app/api/v1/partnerLogin/login HTTP/1.1
X-App: native
X-Noncestr: 123456
X-OS: partnerApp_android
X-Req-Time: 1685179539206
X-Sign: d5ff872d834ad9988d95ea8031b48107
X-Token:
X-UserID:
Content-Type: application/x-www-form-urlencoded
Content-Length: 59
Host: chinayltx.com
Connection: Keep-Alive
Accept-Encoding: gzip
User-Agent: okhttp/3.10.0phone=15836353612&password=a2a07143c28b527f39cc4b1a9b41f639

二、反编译该apk

1、打开jadx,将apk拖进去分析,后台回复:课件666,获取

2、点击搜索,搜索数据包的部分url,这里搜索“partnerLogin/login”

3、双击进入第三个,这段代码的意思就是,通过submitLogin函数发起了一个POST请求

4、右击该函数,查找谁调用了submitLogin,双击进入该调用函数

5、 loginWithToken函数调用了submitLogin函数,我们继续查找谁调用了loginWithToken

6、看着下面出现了name和pwd,进入下面的调用

public class LoginUseCase extends UseCase<HttpResult<LoginInfo>> {private Repository mRepository;private String name;private String pwd;public String getName() {return this.name;}public void setName(String str) {this.name = str;}public String getPwd() {return this.pwd;}public void setPwd(String str) {this.pwd = str;}@Injectpublic LoginUseCase(Repository repository) {this.mRepository = repository;}@Override // com.yltx.oil.partner.mvp.domain.UseCaseprotected Observable<HttpResult<LoginInfo>> buildObservable() {return this.mRepository.loginWithToken(this.name, this.pwd);}
}

7、分析上面的代码,可以看到有个setPwd函数,这个就是加密函数,继续查看谁调用了该函数,进入一个md5的加密代码

8、继续搜索X-sign,双击进入该行代码

9、这行代码的意思就是将"X-Sign"赋值给PARAM_SIGN,并把他设置成了静态变量

private static final String PARAM_SIGN = "X-Sign";

10、局部搜索PARAM_SIGN,发现this.sign赋值给了PARAM_SIGN,而this.sign=sign(sb.toString())

11、按着ctrl键,点击上面a.b,进入到下面代码,代表一个&符号,requestBody请求体,初步判断sb.toString就是

phone=15836353612&password=a2a07143c28b527f39cc4b1a9b41f639

12、继续搜索sign函数,会看到下面一段声明代码

private String sign(String str) {return Md5.md5(this.token + this.reqTime + this.noncestr.substring(2) + str).toLowerCase();}

12 、通过数据包发现token是空,reqTime是时间戳,noncestr是132456,最终就是将这些值进行md5处理。

13、验证代码

import hashlib
# md5加密=hashlib.md5()
# 密码="aiyou123"
# md5加密.update(密码.encode("utf8"))
# pwd=md5加密.hexdigest()
# print(pwd)token=""
reqTime="1685346660611"
nnotallow="123456"[2:]
str="phnotallow=15836353612&password=a2a07143c28b527f39cc4b1a9b41f639"md5加密=hashlib.md5()
要加密的字符串=f'{token}{reqTime}{non}{str}'
md5加密.update(要加密的字符串.encode("utf8"))
pwd=md5加密.hexdigest()
print(pwd)运行结果:
9970affbcb8ee0d04eeb25d9020b3704

2023安卓逆向 -- 某合伙apk登录加密分析相关推荐

  1. 安卓逆向学习及APK抓包(二)--Google Pixel一代手机的ROOT刷入面具

    注意:本文仅作参考勿跟操作,root需谨慎,本次测试用的N手Pixel,因参考本文将真机刷成板砖造成的损失与本人无关 1 Google Pixel介绍 1.1手机 google Pixel 在手机选择 ...

  2. android资apk资源加密,4399游戏盒 安卓APK sign 加密分析 之 so文件分析

    4399游戏盒 安卓APK加密分析 + so文件分析 4399 游戏盒都知道吧 今天玩他的加密 不过他的加密在so里面 是个md5  java层首先拼接的一段明文  传入到so里面在so里面有一个秘钥 ...

  3. 安卓逆向_3 --- 篡改apk名称和图标、修改包名实现应用分身、修改资源去广告、去除re管理器广告

    From:https://www.bilibili.com/video/BV1UE411A7rW?p=7 Android 中 adb shell dumpsys 相关命令:https://blog.c ...

  4. 安卓逆向_3 --- 篡改apk名称和图标、修改包名实现应用分身、修改资源去广告、去除re管理器广告...

    From:https://www.bilibili.com/video/BV1UE411A7rW?p=7 Android 中 adb shell dumpsys 相关命令:https://blog.c ...

  5. native层 安卓_安卓逆向——拼xx协议java层分析

    制丨阿星 整理丨阿星 老铁们大家好,今天小编给大家带来很实用的技巧叫拼xx协议java层分析,有啥不足的地方望大家指点指点! 首先抓包  反编译 这个时间段我们方法剖析一下 找到onclick 看他的 ...

  6. 2023安卓逆向 -- JNI学习(从开发到反编译)

    一.新建native C++项目,填写好项目信息,一路下一步即可 二.创建好项目,直接点击运行,出现下面界面,说明我们的环境都没有问题 三.Java层调用java层函数 1.新建一个Java Clas ...

  7. 安卓逆向——深度剖析APK与APP

    我们很多小白都不知道APK是什么,但是相信很多人都知道APP是什么,不过也有很多行业内半知半懂的同学们还会吧APP和APK当做是一个,所以呢今天小编就来和大家深度剖析一下我们的APK和APP. 首先我 ...

  8. 【愚公系列】2023年06月 移动安全之安卓逆向(插桩及栈分析)

    文章目录 前言 一.插桩及栈分析 1.概念简介 2.Android Killer插桩 二.栈跟踪及分析 1.DDMS工具介绍 1.1 设备信息窗口 1.2 过滤器窗口 1.3 功能窗口 1.4 信息输 ...

  9. douyin网页版登录加密分析(一)

    网址: aHR0cHM6Ly93d3cuZG91eWluLmNvbQ== 输入账号: 15112348765 输入密码: 123456 先不考虑登录前的滑块, 抖音滑块后面再分析, 本文主要分析登录时 ...

最新文章

  1. Blend for Visual Studio 2013
  2. Dynamic CRM 2013学习笔记(四十三)流程6 - 自定义流程活动
  3. 基于FFmpeg和Android的音视频同步播放实现
  4. C++ Primer 5th笔记(chap 19 特殊工具与技术)将成员函数用作可调用对象
  5. crt linux切换用户,不同连接终端通过密钥方式登录 Linux
  6. Type of data in energy dashboard
  7. 计算机比赛的评分办法,汉字录入比赛评分规则方案
  8. junit测试起名字规则_如何在JUnit 5中替换规则
  9. [洛谷P5048][Ynoi2019模拟赛]Yuno loves sqrt technology III
  10. 富爸爸穷爸爸害了我_这是我必须告诉爸爸的-在我们的时间用完之前
  11. 收藏 | 从头训练深度监督目标检测
  12. 易灵思FPGA--PLL资源
  13. Java Balking模式
  14. 迅雷下载的种子文件后坠总是php,我的迅雷怎么不能下载呀,总是显示在连接种子文件...
  15. C#客户端嵌入Chrome浏览器的实现(非IE)
  16. Vivado vc707 pcie传输实验(超详细)
  17. 作业2:健身类软件调研
  18. 聚合数据iOS SDK 12306火车票查询订票演示示例
  19. 吴恩达机器学习笔记(七)神经网络:代价函数
  20. 路由器交换机设备管理

热门文章

  1. 运动学习与控制 学习的迁移
  2. 到底什么是信息系统集成?
  3. 计算机英语讲课笔记09
  4. 离散傅里叶级数展开及逼近
  5. 2021-2027全球与中国电子邮件营销自动化工具市场现状及未来发展趋势
  6. 【ZZULIOJ】1103: 平均学分绩点(函数专题)
  7. smallestWidth 限定符适配 : 屏幕适配-插件:ScreenMatch
  8. Telephony单元测试分析
  9. 009中草药识别小程序
  10. 在simulink中实现图像的读取和缩放操作