记某APP登录逆向解密过程

最近在学习APP逆向相关的知识,刚好拿到了一个APP目标,该APP登录过程存在加密,所以记录下逆向破解的过程。
流程
先介绍下拿到该APP后续所做的一些工作流程

  • 选择相应版本安装到测试机当中
  • 进行抓包,查看数据包
  • 分析登录请求包,找到需要进行逆向的字段
  • 反编译APP,得到java代码
  • 寻找关键字,进行hook验证
  • 还原算法
    逆向破解
    安装目标APP
    #启动adb服务
    adb start-server
    #安装目标APP
    adb install 目标app.apk
  • 抓包
  • 配置代理
    确保手机和电脑处于同一个网络中
    电脑端:配置BP代理端口

 手机端:代理设置

打开APP,进行登录抓包,发现请求包中存在加密的字段 反编译APP
将APP拖入jadx进行反编译

  • 逆向密码加密
  • 因为请求的是登录的数据包,所以我们搜索login/login.ashx关键字

 双击进入,可以看到是在UserModel接口下绑定了一个常量

查找用例,双击进入,定位到代码位置,我们可以看到密码加密的位置就是SecurityUtil.encodeMD5(str3)点击encodeMD5(str3)跳进声明进行查看,查看代码发现是典型的MD5加密 

  • 如果此时不确定是否是MD5加密时,可以利用Python代码进行确认,对123456进行加密

import hashlibmd5 = hashlib.md5()
md5.update(b"123456")
print(md5.hexdigest())

 手机端应用也使用123456进行登录,查看数据包,发现两个值相同,可以确认时MD5加密

  • 如果还想更确认,还可以通过hook确认加密位置
    • 手机端启动frida
adb shell
su
cd /data/local/tmp/
ls
./frida-server-16.1.7-an

 

    • 进行端口转发
import subprocess 
subprocess.getoutput("adb forward tcp:27042 tcp:27042")
subprocess.getoutput("adb forward tcp:27043 tcp:27043")
    • 下面就是进行hook代码的编写,首先找到encodeMD5(str3)的包名

接着寻找类名

运行hook代码,手机端输入账号密码进行登录,可以看到和我们抓包的结果是一样的

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/6412.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中国目前比较有影响力的人物颜廷利:不能升命, 活着何用?

不能‘升命’, 活着何用?…(升命学说) 21世纪东方哲学家思想家、科学家、当代中国教育界知名教授、专业周易起名改名字、易经姓名学专家、目前比较有影响力的人物、现代国学大师泰斗杰出代表颜廷利教授在《升命学说》‘净化论’里…

Java 类与对象

目录 1 类是什么 1.1 面向对象 1.2 面向对象与面向过程 2 类定义和使用 2.1 类的定义格式 2.2 练习定义一个狗类 3 类的实例化 4 this引用 5 对象的构造与初始化 5.1 构造方法与初始化 5.2 默认初始化 5.3 就地初始化 1 类是什么 关于类是什么,我们需要对…

开源版本管理系统的搭建一:SVN服务端安装

作者:私语茶馆 1.Windows搭建SVN版本管理系统 点评:SVN本身非常简洁易用,VisualSVN文档支撑非常好,客户端TortoiseSVN非常专业。5星好评。 1.1.SVN概要和组成 背景介绍 Svn是一个开源版本管理系统,由CollabNet公司…

一、Mysql索引的底层数据结构与算法

Mysql索引的底层数据结构与算法 前言一、索引数据结构为什么 MySQL 的索引要使用 B 树而不是其他树形结构?比如 B 树?为什么InnoDB存储引擎选择使用Btree索引结构? 二、索引分类思考:以下SQL语句,那个执行效率高?为什么&#xf…

SQL如何利用Bitmap思想优化array_contains()函数

目录 0 问题描述 1 位图思想 2 案例实战 3 小结 0 问题描述 在工作中,我们往往使用array_contains()函数来进行存在性问题分析,如判断某个数是否在某个数组中,但是当表数据量过多,存在大量array_contains()函数时,…

【软件测试】测试用例设计方法

1. 等价类划分法1.1. 等价类划分法的定义1.2. 有效等价类和无效等价类1.3. 等价类划分法实例分析 2. 边界值分析法2.1. 边界值分析法的定义2.2. 边界点2.3. 边界值法实例分析 3. 判定表法3.1. 如何用判定表法设计测试用例3.2. 判定表法实例分析 4. 正交表法4.1. 什么是正交表4.…

批量美化图片,轻松实现多张图片描边,让图片瞬间焕发新生!

图片已成为我们日常生活中不可或缺的一部分。无论是社交媒体上的个人分享,还是商业宣传中的产品展示,高质量、精美的图片都扮演着至关重要的角色。然而,对于许多人来说,图片处理仍然是一个令人头疼的问题。现在,我们为…

商超物联网方案-Hotspot Service和客流分析方案概述

商超物联网方案-Hotspot Service和客流分析方案概述 场景概述 大型商场、大型综合体在相互竞争及线上消费的影响下,利润增长缓慢,迫切需要通过提供个性化服务提升顾客购物体验,促进利润增长。 向不同顾客推送其感兴趣的广告,不仅…

c++游戏小技巧16:实例1(地牢生成算法)

1.前言 (头图) (其实最开始是想写恶魔轮盘的,但没想到它竟然更新了) (等我有时间在更,最近很忙,玩第五玩的) 想法来源:房间和迷宫:一个地牢生成算法https://indienova…

机器学习(五)之损失函数

上面几节讲了监督学习和非监督学习的一些算法(目前还不完整,会慢慢补充哒) 如果文章内容有错误,欢迎小伙伴在评论区指出! 前言: 损失函数在机器学习中非常重要,直接关乎模型的好坏(so?学好它)…

STM32G474 CMAKE VSCODE 开发环境搭建

本篇博文尝试搭建 stm32g474 的开发环境 一. 工具安装 1. 关于 MinGW、OpenOCD、Zadig 这些工具的下载和安装见 JlinkOpenOCDSTM32 Vscode 下载和调试环境搭建_vscode openocd stm32 jlink-CSDN博客 2. 导出一个 STM32 的 CMAKE 工程,这里略过。 3. 安装 ninja …

matlab期末知识

1.期末考什么? 1.1 matlab操作界面 (1)matlab主界面 (2)命令行窗口 (3)当前文件夹窗口 (4)工作区窗口 (5)命令历史记录窗口 1.2 matlab搜索…

Elasticsearch:对 Java 对象的 ES|QL 查询

作者:Laura Trotta ES|QL 是 Elasticsearch 引入的一种新的查询语言,它将简化的语法与管道操作符结合起来,使用户能够直观地推断和操作数据。官方 Java 客户端的新版本 8.13.0 引入了对 ES|QL 查询的支持,提供了一个新的 API&…

Redis 实战2

系列文章目录 本文将从字典的实现、哈希算法、解决键冲突、rehash、渐进式rehash几方面来阐述 Redis 实战Ⅱ 系列文章目录字典的实现哈希算法解决键冲突rehash渐进式 rehash渐进式 rehash 执行期间的哈希表操作 字典 API总结 字典的实现 Redis 的字典使用哈希表作为底层实现&…

【大数据】学习笔记

文章目录 [toc]NAT配置IP配置SecureCRT配置PropertiesTerminal Java安装环境变量配置 Hadoop安装修改配置文件hadoop-env.shyarn-env.shslavescore-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml 环境变量配置 IP与主机名映射关系配置hostname配置映射关系配置 关闭防火墙…

分层图像金字塔变压器

文章来源:hierarchical-image-pyramid-transformers 2024 年 2 月 5 日 本文介绍了分层图像金字塔变换器 (HIPT),这是一种新颖的视觉变换器 (ViT) 架构,设计用于分析计算病理学中的十亿像素全幻灯片图像 (WSI)。 HIPT 利用 WSI 固有的层次结…

【matlab基础知识】(三)二维曲线绘制plot

x[-pi:0.0001:pi]; 选择较小步距 ysin(tan(x))-tan(sin(x));plot(x,y) 条件和函数值做一个点乘 x[-2:0.02:2];y1.1*sign(x).*(abs(x)>1.1)x.*(abs(x)<1.1);plot(x,y) 颜色&#xff0c;线形&#xff0c;曲线上的标志 由于0.01cosx波动太小&#xff0c;所以plotyy绘制多…

正在载入qrc文件 指定的qrc文件无法找到。您想更新这个文件的位置么?

打开Qt的ui文件&#xff0c;弹出提示框 如果需要用到qrc文件&#xff0c;选择Yes&#xff0c;再选择qrc文件所在的位置&#xff1b;如果不需要qrc文件&#xff0c;可以选择No&#xff0c;然后用普通文本编辑器打开&#xff0c;将“ <resources> <include location&q…

ARP欺骗使局域网内设备断网

一、实验准备 kali系统&#xff1a;可使用虚拟机软件模拟 kali虚拟机镜像链接&#xff1a;https://www.kali.org/get-kali/#kali-virtual-machines 注意虚拟机网络适配器采用桥接模式 局域网内存在指定断网的设备 二、实验步骤 打开kali系统命令行&#xff1a;ctrlaltt可快…

Zookeeper服务

一、什么是Zookeeper Zookeeper 是一个分布式应用程序的协调服务&#xff0c;它提供了一个高性能的分布式配置管理、分布式锁服务和分布式协调服务。它是 Apache 软件基金会的一个项目&#xff0c;被设计用来处理大规模的分布式系统中的一些关键问题。 Zookeeper的组成员关系&…