
Herramienta para encontrar URLs, rutas, secretos y generar peticiones HTTP crudas y especificaciones OpenApi a partir de archivos de configuración y anotaciones utilizadas en aplicaciones JAR / WAR / APK.
Herramienta para el procesamiento inicial de aplicaciones 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/
Para esta clase que usa anotaciones de Spring, se generarán los siguientes resultados.
@RestController
@RequestMapping("/api")
public class UserController {
@PostMapping("createUser")
public String create(@RequestParam Optional<String> someParamName, @RequestBody User user) {
return "response";
}
Método: 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
}

Si estás analizando una aplicación que utiliza una biblioteca compatible, pero su código está ofuscado, puedes crear un archivo de mapeo para reemplazar los nombres de las clases.
Para ello, puedes usar manualmente la función "Rename" en el código descompilado en jadx-gui y luego guardar el archivo de mapeo generado (File > Save mappings). O usa un archivo de mapeo de ejemplo para Retrofit y modifícalo según tu aplicación.

Ejemplo de análisis de una aplicación con renombrado de clases utilizando un archivo de mapeo.
java -jar BFScan.jar ./tests/example.apk -r ./tests/mapping.txt
Este proyecto utiliza: