You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

反编译APK时查找应用创建的内部存储文件夹问题

解决PSP模拟器文件夹路径找不到的问题

以下是几种可能的原因和对应的排查方向:

  • 字符串可能藏在Native层(.so文件)
    很多PSP模拟器的核心功能由C/C++编写,文件夹名称可能硬编码在lib目录下的.so文件里,而非Java代码中。你可以用逆向工具(比如Ghidra、IDA Pro)打开这些.so文件,搜索"PSP"字符串,或者查找文件创建、路径拼接相关的Native函数,追溯路径来源。另外,字符串也可能是通过拼接生成的(比如"PS"+"P"),直接搜完整"PSP"会找不到,得关注字符串拼接逻辑。

  • 通过系统API动态拼接路径
    模拟器可能调用Environment.getExternalStorageDirectory()获取内部存储根目录,再拼接"/PSP"生成目标路径。这种情况下,Java代码里可能只有拼接逻辑而非完整字符串:

    new File(Environment.getExternalStorageDirectory(), "PSP");
    

    如果是用资源ID引用字符串(比如getString(R.string.psp_folder)),要去res/values/strings.xml(及对应区域语言的strings文件)里找对应的资源项,而非直接搜Java代码里的"PSP"。

  • 混淆导致字符串被处理
    如果APK开启了ProGuard/R8混淆,Java代码里的字符串可能被重命名或模糊处理。你可以尝试查找调用mkdir()/mkdirs()的代码位置,向上追溯路径参数的生成逻辑;如果能拿到混淆映射文件(mapping.txt),可以直接通过映射关系找到被混淆的字符串定义。

  • 检查隐藏配置或动态加载项
    少数应用会在首次启动时从配置文件或云端拉取路径设置,可以查看反编译后的shared_prefs目录下的XML文件,或者在模拟器首次启动时抓包排查是否有相关配置请求。

具体排查步骤建议:

  1. 先扫一遍res/values/下的所有strings文件,确认是否有文件夹名称相关的资源项;
  2. 在Java代码中搜索文件创建、目录操作的相关方法(如File类构造、mkdir),跟踪路径参数的来源;
  3. 提取lib目录下的.so文件,用逆向工具分析字符串和文件操作逻辑;
  4. 定位处理存档、作弊码的功能模块,这类模块必然会访问目标文件夹,顺着业务逻辑反向查找路径定义。

内容的提问来源于stack exchange,提问作者APEX NERD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 23:19:56