文章总结: 本文详细分析了拼多多应用中的anti-token算法生成机制,通过逆向工程libpdd_secure.so库,发现该算法采用AES加密和Base64编码的组合方式。作者使用Frida工具进行动态分析,定位关键代码位置,确定初始密钥为pdd_aes_180121_1,并指出待加密数据以1F8B开头,可能是GZIP压缩数据。文章提供了完整的逆向分析过程,包括关键断点设置、内存监控和算法还原步骤,对于移动应用安全研究和逆向工程具有重要参考价值。 综合评分: 85 文章分类: 逆向分析,移动安全,二进制安全,漏洞分析
拼夕夕anti-token算法
原创
Q
Frida and So
2025年12月7日 13:57 上海
声明
本文仅供学习交流使用,如有侵权请联系删除!!
目标参数
libpdd_secure.so:anti-token。
补环境
出值为先,随便补补就出了,需要特别处理的地方将时间戳与uuid固定保证结果唯一性。
参数结构
前缀固定+加密后指纹数据
算法还原
出值位置NewStringUTF,在0x3ae6c处下断点该位置是jni调用位置,打印x1参数,存储的正是最后的密文,对0x126b0000进行读写监控。
前缀2af不用管,Trace一份日志,搜索0x1c17e4,向上溯源,存在lsr并且是2,并且下一条指令是从0x121ce65c中获取,0x121ce65c八成是Base64码表,直接在0x1c17d4处下断点,标准的Base64编码。
data value = 0x00666132, PC=RX@0x1236c1c0[libc.so]0x1c1c0, LR=RX@0x1203aeec[libpdd_secure.so]0x3aeec
data value = 0x57, PC=RX@0x121c17e4[libpdd_secure.so]0x1c17e4
0x16是索引,0x59是待编码值,向上溯源,发现从0x126aa000读取,对该地址进行内存监控,打开so文件,跳转到0x1bfe28。
0x121c17c0: "ldrb w3, [x0], #1" x0=0x126aa000 => w3=0x59 x0=0x126aa001
data value = 0xbc17a82ca7644959, PC=RX@0x121bfe28[libpdd_secure.so]0x1bfe28, LR=0x1bfe18
随便点几个函数,在sub_1BEE30发现SBox盒,对该函数地址下断,自行验证:
x0:待加密数据。x1:iv(开始全0认为存返回结果,后续验证发现是iv)。初始iv为全0。x2:扩展后的key,44组176字节。初始密钥为pdd_aes_180121_1。x3:加密长度。
第一轮结果,都是跟前面对的上的。
待加密数据为1F 8B开头,补环境也会碰到GZIP,直接反向解密测试,由于以出值为目的的补环境,指纹追踪不现实,算法还原到此结束。
查看原文:《拼夕夕anti-token算法》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论