-
-
[原创]【银行逆向百例】15小程序逆向之支付宝提取data文件为tar格式
-
发表于: 2小时前 69
-
“ 万分抱歉我不懂周全,反正我从来没上过版面。——《歌手》”
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版本
871K9s2c8@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
find /data/data/com.eg.android.AlipayGphone/files/Sandbox -name "0.data" -exec ls -lt {} + 2>/dev/null > /data/local/tmp/1.txt

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

6、新建xcx目录,从 1.txt 中读取前20行,提取出每一行的最后一列,提取父目录的名字作为新文件名
mkdir -p /data/local/tmp/xcx
cat /data/local/tmp/1.txt | head -n 20 | awk '{print $NF}' | while read filepath; do
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内核攻防全技术栈,打造具备自动化能力的内核开发高手。
赞赏
他的文章
赞赏
雪币:
留言: