用于对 APK / XAPK / APKM / DEX / JAR / WAR 应用进行初始处理的工具。
java -jar bfscan.jar <jar_war_apk> <...> [-m <mode>] [-ma <minifiedAnnotationsSupport>] [-r <mappingFile>] [-s <searchString>] [-u <url>] [-v <verbose>]
-m <mode> Mode ([a]ll, [s]ecrets, [h]ttp), default: all
-ma <minifiedAnnotationsSupport> Minified or unknown annotations support (yes, no), default: yes
-r <mappingFile> Deobfuscation mapping file
-s <searchString> Search string
-u <url> API base url (http://localhost/api/)
-v <verbose> Log level (off, error, warn, info, debug, trace)
java -jar bfscan.jar test/*.apk -u https://example.tld/api/
对于这个使用 Spring 注解的类,将生成以下结果。
@RestController
@RequestMapping("/api")
public class UserController {
@PostMapping("createUser")
public String create(@RequestParam Optional<String> someParamName, @RequestBody User user) {
return "response";
}
方法: com.mycompany.springbootexample.UserController->create
POST /api/createUser?someParamName=value HTTP/1.1
Host: localhost
Connection: close
Content-Type: application/json
{
"name": "name",
"age": 1
}

如果你正在分析一个使用了受支持库但代码经过混淆的应用程序,你可以创建映射文件来替换类名。
为此,你可以在 jadx-gui 的反编译代码中手动使用“重命名”功能,然后保存生成的映射文件(File > Save mappings)。或者使用适用于 Retrofit 的示例映射文件,并根据你的应用程序修改它。

使用映射文件重命名类来分析应用程序的示例。
java -jar BFScan.jar ./tests/example.apk -r ./tests/mapping.txt
本项目使用: