论坛首页 逆向工程技术区 阅读主题

[原创]【银行逆向百例】15小程序逆向之支付宝提取data文件为tar格式

401 浏览 0 回复
#1 楼主 2026-06-01 21:09:07
“ 万分抱歉我不懂周全,反正我从来没上过版面。——《歌手》”
01环境版本
环境:
电脑,Windows 11 专业版 23H2
JiaoSuInfoSec/JiaoSuInfoSec_T00ls_Win11: 角宿武器库官方发布页面
软件:
Android 支付宝,10.5.60.8000
2023支付宝v10.5.60.8000老旧历史版本安装包官方免费下载_豌豆荚
Mumu模拟器,5.14.2
MuMu模拟器下载_支持Windows/macOS系统
02操作步骤
1、豌豆荚下载支付宝v10.5.60.8000版本
e32K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2%4j5h3&6V1L8%4g2B7K9h3q4Q4x3X3g2U0L8$3#2Q4x3V1k6S2M7s2m8K6i4K6u0r3279979/history_v971


2、服务

3、参考文章
支付宝小程序反编译-CSDN博客

4、打开小程序后,使用mumu自带adb,全局查找所有 0.data 文件,按修改时间从新到旧排序,保存输出结果到1.txt
cd D:\MuMu\nx_main
adb shell
su


5、查看最新的文件前20个
cat /data/local/tmp/1.txt | head -n 20


6、新建xcx目录,从 1.txt 中读取前20行,提取出每一行的最后一列,提取父目录的名字作为新文件名
mkdir -p /data/local/tmp/xcx

if [ -f "$filepath" ]; then
new_name=$(basename $(dirname "$filepath"))
echo "copy: $filepath"
cp "$filepath" "/data/local/tmp/xcx/$new_name.data"
else
echo "not found: $filepath"
fi
done


7、先给权限,然后pull下来
chmod -R 777 /data/local/tmp/xcx
exit
exit
adb pull /data/local/tmp/xcx .


8、直接修改扩展名为tar,打开报错

9、使用python批量提取data为tar,py和xcx放在同级目录
import os
INPUT_DIR_NAME = "xcx"
OUTPUT_DIR_NAME = "tars"
TAR_MAGIC_SIGNATURE = b'ustar'
TAR_HEADER_OFFSET = 257
def extract_tar_from_container(container_path, result_path):
if not os.path.exists(container_path):
return False
try:
with open(container_path, 'rb') as f:
content = f.read()
signature_index = content.find(TAR_MAGIC_SIGNATURE)
if signature_index != -1:
tar_start_offset = signature_index - TAR_HEADER_OFFSET
if tar_start_offset >= 0:
tar_data = content[tar_start_offset:]
with open(result_path, 'wb') as f_out:
f_out.write(tar_data)
return True
except Exception:
return False
return False
def batch_process():
current_dir = os.getcwd()
input_dir = os.path.join(current_dir, INPUT_DIR_NAME)
output_dir = os.path.join(current_dir, OUTPUT_DIR_NAME)
if not os.path.isdir(input_dir):
return
if not os.path.exists(output_dir):
os.makedirs(output_dir)
for filename in os.listdir(input_dir):
if filename.endswith(".data"):
input_path = os.path.join(input_dir, filename)
output_filename = os.path.splitext(filename)[0] + ".tar"
output_path = os.path.join(output_dir, output_filename)
extract_tar_from_container(input_path, output_path)
if __name__ == "__main__":
batch_process()


10、解压tar发现格式与文章中一致

11、全局搜索目标系统关键字定位到小程序代码


[培训]《冰与火的战歌:Windows内核攻防实战》!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。


最后于 2026-5-22 22:23
被差不多的张三编辑

,原因:

---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-291307.htm

暂无回复,快来抢沙发吧!

请登录后参与讨论

立即登录 注册账号