记某APP登录逆向解密过程

本文详细描述了作者在逆向破解一个加密APP登录过程中的步骤,包括抓包分析、反编译、定位加密函数(SecurityUtil.encodeMD5)、使用Python确认MD5加密,以及通过Frida进行Hook验证的过程。
摘要由CSDN通过智能技术生成

最近在学习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 hashlib

md5 = 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代码,手机端输入账号密码进行登录,可以看到和我们抓包的结果是一样的

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值