吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2936|回复: 40
收起左侧

[Android 原创] 某APP的网络逆向分析过程

  [复制链接]
yinsel 发表于 2024-3-10 19:14
本帖最后由 yinsel 于 2024-3-10 20:05 编辑

某APP的网络逆向分析过程

0x01 使用Reqable抓包

使用Reqable配合JustTrustMe++Xposed模块对App进行抓包,发现响应加密,看起来像Base64AES

没办法只能尝试逆向APP了,用JEB打开一看,竟然混淆了类名和方法名:

直接去找加密逻辑估计够呛,先用算法助手尝试一波解密看看:

0x02 使用算法助手尝试解密

环境:光速虚拟机 + Magisk Delta + LSPosed

勾选对应APP:

一顿操作过后查看算法助手的日志,找到上方抓到的密文了,密钥等信息也有:

0x03 使用JEB定位加密位置

但是依旧解密后乱码,虽然有的显示了一点明文,但估计后面还有一层处理,查看细节可以发现使用的加密类是javax.crypto.*,而这个类使用的加密API是javax.crypto.CipherdoFinal方法,再次使用Jeb全局搜索doFinal查看调用的地方(这里可以看上方算法助手的调用堆栈也能定位到此处):

40处匹配,经过全部筛选后发现有一处看似网络拦截器的地方调用了doFinal方法:

查看一番果然它对数据进行还进行了GZIP解压缩:

为了验证一下是否如此,决定采用Xposed的方式进行Hook(也可以使用frida),Hooke0.m的第二个参数:

0x04 使用Xposed拦截明文

这里使用的是YukiHookAPI,相对于原始的Xposed API调用更加简洁方便。

编写模块:

启动APP开始Hook,成功获取明文:

使用在线网站尝试解密:

https://gchq.github.io/CyberChef/#recipe=From_Base64('A-Za-z0-9%2B/%3D',true,false)AES_Decrypt(%7B'option':'UTF8','string':'ecfcgadhgegadgjm'%7D,%7B'option':'Hex','string':'00000000000000000000000000000000'%7D,'CBC','Raw','Raw',%7B'option':'Hex','string':''%7D,%7B'option':'Hex','string':''%7D)Gunzip()&input=aXNzS01FWkxrSFplTDZYOFh5Q3ErcTZSSnRzM2c3emVnZVMyWHkyVW5yM28veExSeVF3ZXIrTjZsaGZhaVpua3FBbTdGc0s0dUFydHhtbHd5TXhtWVlLUm1ZVnFPbExheS83aERKNWZtc009&oenc=65001

https://gchq.github.io/CyberChef/#recipe=From_Base64('A-Za-z0-9%2B/%3D',true,false)AES_Decrypt(%7B'option':'UTF8','string':'ecfcgadhgegadgjm'%7D,%7B'option':'Hex','string':'00000000000000000000000000000000'%7D,'CBC','Raw','Raw',%7B'option':'Hex','string':''%7D,%7B'option':'Hex','string':''%7D)Gunzip()&input=RytXN0NDNnJIa2VHUlUwVWZCTkRkcWRMdmlFZ1kvQ09GNVhMTWVqVnYxZUhac0N3NDdPcHQrc1hnaFR0SE5sK09iTkpGRU05S2JTWVhORzhHZnkxY2NkYjBiZzhJSnlJRk90WlAzRjFybWRBSWZSMGY1L1Erd3NrWFl5KzNwUHRlWng3bnZ2YnlVbUFMVlcyUHFzRHBVTHBTNlNwVENEaHpOZmRNelB1cmhXWjJRaTY2WXdZOXJDajdqQzZNWDkrL1kyY1RzakpwQk9FUS93R0xyZ05SSlhnTjV5M1Z2WFJnd3FDVjh3WGZjMD0&oenc=65001

使用Python脚本解密:

from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad
import base64
import gzip
from io import BytesIO

def decrypt_aes_cbc_pkcs7(key, iv, ciphertext):
    cipher = AES.new(key, AES.MODE_CBC, iv)
    decrypted = unpad(cipher.decrypt(ciphertext), AES.block_size)
    return decrypted

def main():
    while True:
        try:
            encrypted_data = input("密文: ")
            key = b'ecfcgadhgegadgjm'
            iv = b'\x00' * 16
            encrypted_data = base64.b64decode(encrypted_data)

            decrypted_data = decrypt_aes_cbc_pkcs7(key, iv, encrypted_data)
            with gzip.GzipFile(fileobj=BytesIO(decrypted_data), mode='rb') as f:
                decompressed_data = f.read()

            print(decompressed_data.decode('utf-8'))
        except Exception as e:
            print(e)

if __name__ == "__main__":
    main()

到此分析完毕!

0x05 总结

本次APP逆向过程需要熟练各种工具的使用以及环境的配置,如使用Magisk,而大部分人的手机都没有root,所以得使用虚拟环境,也就是光速虚拟机,还有一些诸如ReqableJEB算法助手的工具。

0x06 相关链接

Reqable:https://reqable.com/zh-CN/

算法助手:https://github.com/Xposed-Modules-Repo/com.junge.algorithmaide

YukiHookAPI:https://highcapable.github.io/YukiHookAPI/zh-cn/

JEB:https://www.pnfsoftware.com/

免费评分

参与人数 27威望 +1 吾爱币 +38 热心值 +25 收起 理由
Sydyanlei0 + 1 + 1 用心讨论,共获提升!
youngdh + 1 用心讨论,共获提升!
zhu0829 + 1 我很赞同!
stonethree + 1 + 1 谢谢@Thanks!
duch + 1 + 1 向大佬学习
sparkmars + 1 谢谢@Thanks!
Fiftyisnt100 + 1 + 1 谢谢@Thanks!
BUPTX9 + 1 我很赞同!
fenga + 1 + 1 谢谢@Thanks!
BIGSMATER + 1 + 1 热心回复!
wealthy3699 + 1 热心回复!
EVLaity + 1 + 1 Hahaha how much u
Dev10 + 1 + 1 我很赞同!
Dwodd + 1 热心回复!
YYD338 + 1 谢谢@Thanks!
janken + 1 + 1 热心回复!
BubbleC + 1 谢谢@Thanks!
lingyun011 + 1 + 1 热心回复!
Yangzaipython + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Prawns001 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
greendays + 1 + 1 热心回复!
allspark + 1 + 1 用心讨论,共获提升!
kuiba + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
peiki + 1 + 1 感谢大佬
o0蜗牛 + 1 谢谢@Thanks!
正己 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
kittylang + 1 + 1 用心讨论,共获提升!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| yinsel 发表于 2024-3-13 18:53
wfghim 发表于 2024-3-13 16:24
拿不到文件,要密码

下载:https://wwo.lanzoul.com/ig3Zq1r8j8ji 密码:5ibb

免费评分

参与人数 1热心值 +1 收起 理由
BubbleC + 1 谢谢@Thanks!

查看全部评分

 楼主| yinsel 发表于 2024-3-12 10:07
DongFangMingZhu 发表于 2024-3-12 08:24
大佬您好,能不能分享下学习方法、学习路径和学习资源

了解下java  apk的基本构成  基本的android机制、组件,xposed的API使用,hook的基本原理
o0蜗牛 发表于 2024-3-11 16:46
本帖最后由 o0蜗牛 于 2024-3-11 16:47 编辑

向大佬学习,俺是一脸懵
这类app大佬想看就能看,我是被拦在门外的
 楼主| yinsel 发表于 2024-3-11 18:55
o0蜗牛 发表于 2024-3-11 16:46
向大佬学习,俺是一脸懵
这类app大佬想看就能看,我是被拦在门外的

我也是刚学,一起交流!
meder 发表于 2024-3-11 22:53
感谢分享
wqstudyy 发表于 2024-3-11 23:27
学习了,有时间也试一试
 楼主| yinsel 发表于 2024-3-11 23:48

一起学习
xiaojian40 发表于 2024-3-12 02:07
学习啦.  这段时间正好也在学习类似的需求..   
DongFangMingZhu 发表于 2024-3-12 08:24
yinsel 发表于 2024-3-11 18:55
我也是刚学,一起交流!

大佬您好,能不能分享下学习方法、学习路径和学习资源
dhsfb 发表于 2024-3-12 08:40
向高手学习!!!
 楼主| yinsel 发表于 2024-3-12 10:05
dhsfb 发表于 2024-3-12 08:40
向高手学习!!!

一起学习!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-29 12:29

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表