CCS2026
TapSpy: Semantic Usage Analysis and Triangulated Risk Assessment of Session Replay in Mobile Apps
Jiawei Guo, Zongze Li, Haipeng Cai
CCS2026
Jiawei Guo, Zongze Li, Haipeng Cai
$HOME/android-jars - Joern: Ensure you have Joern installed and accessible in your PATH. ## Setup Instructions Running the Full TAPSPY Pipeline on a Single App. ### Generate the SRUS for the App bash java -cp srus/target/crawler-1.0-SNAPSHOT.jar org.app.sreplay.probe.APIUsageFinder \ "$apk_path" "${sdk_name}" \ "$sdk_developer_api_path" # Path to developer_apis//sr_apis.txt "${output_dir}"/usage.json \ [Optional] Use source code instead of Jimple code for SRUS (may improve readability): To do this, first use jadx to decompile the APK: bash jadx -d "$jadx_decompiled_dir_base" "${apk_path}" Then, run the following command to replace the Jimple code with source code in the SRUS: bash python3 artifact/bin/replace_src_code_parallel_pdg.py \ usage.json \ "$jadx_decompiled_dir_base" "$output_file" ## Extending the Work The TAPSPY framework can be extended to analyze new applications or SDKs. - To Analyze a New App: Simply provide the path to your new APK file and follow the steps in the "Claim 1" section. - To Add a New SR SDK: - Add the SDK's key API method signatures to the developer_apis//sr_apis.txt file. - Update the global schema (docs/sr_schema.md) if the new SDK introduces novel features. - Re-run the pipeline.