
Strumento per trovare URL, percorsi, segreti e generare richieste HTTP grezze e specifiche OpenApi da file di configurazione e annotazioni utilizzati in applicazioni JAR / WAR / APK.
Strumento per l'elaborazione iniziale di applicazioni 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> Modalità ([a]ll, [s]ecrets, [h]ttp), default: all
-ma <minifiedAnnotationsSupport> Supporto annotazioni minificate o sconosciute (yes, no), default: yes
-r <mappingFile> File di mapping per la deoffuscazione
-s <searchString> Stringa di ricerca
-u <url> URL base API (http://localhost/api/)
-v <verbose> Livello di log (off, error, warn, info, debug, trace)
java -jar bfscan.jar test/*.apk -u https://example.tld/api/
Per questa classe che utilizza annotazioni Spring, verranno generati i seguenti risultati.
@RestController
@RequestMapping("/api")
public class UserController {
@PostMapping("createUser")
public String create(@RequestParam Optional<String> someParamName, @RequestBody User user) {
return "response";
}
Metodo: 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
}

Se stai analizzando un'applicazione che utilizza una libreria supportata, ma il suo codice è offuscato, puoi creare un file di mapping per sostituire i nomi delle classi.
Per farlo, puoi utilizzare manualmente la funzione "Rename" nel codice decompilato in jadx-gui, e poi salvare il file di mapping generato (File > Save mappings). Oppure usa un file di mapping di esempio per Retrofit e modificalo in base alla tua applicazione.

Esempio di analisi di un'applicazione con rinomina delle classi utilizzando un file di mapping.
java -jar BFScan.jar ./tests/example.apk -r ./tests/mapping.txt
Questo progetto utilizza: