
Outil pour trouver des URL, des chemins, des secrets et générer des requêtes HTTP brutes et des spécifications OpenApi à partir de fichiers de configuration et d'annotations utilisés dans les applications JAR / WAR / APK.
Outil pour le traitement initial des applications 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/
Pour cette classe utilisant les annotations Spring, les résultats suivants seront générés.
@RestController
@RequestMapping("/api")
public class UserController {
@PostMapping("createUser")
public String create(@RequestParam Optional<String> someParamName, @RequestBody User user) {
return "response";
}
Méthode : 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 vous analysez une application qui utilise une bibliothèque prise en charge, mais dont le code est obfusqué, vous pouvez créer un fichier de mapping pour remplacer les noms de classes.
Pour ce faire, vous pouvez utiliser manuellement la fonction « Rename » dans le code décompilé dans jadx-gui, puis enregistrer le fichier de mapping généré (File > Save mappings). Ou utilisez un exemple de fichier de mapping pour Retrofit et modifiez-le selon votre application.

Exemple d'analyse d'une application avec renommage des classes à l'aide d'un fichier de mapping.
java -jar BFScan.jar ./tests/example.apk -r ./tests/mapping.txt
Ce projet utilise :