
JAR / WAR / APK अनुप्रयोगों में उपयोग की जाने वाली कॉन्फ़िग फ़ाइलों और annotations से URLs, paths, secrets खोजने तथा raw HTTP requests और OpenApi specifications उत्पन्न करने के लिए टूल।
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 में डिकंपाइल किए गए कोड में मैन्युअल रूप से "Rename" फ़ंक्शन का उपयोग कर सकते हैं, और फिर उत्पन्न मैपिंग फ़ाइल को सहेज सकते हैं (File > Save mappings)। या Retrofit के लिए उदाहरण मैपिंग फ़ाइल का उपयोग करें और इसे अपने अनुप्रयोग के अनुसार संशोधित करें।

मैपिंग फ़ाइल का उपयोग करके क्लासों का नाम बदलते हुए किसी अनुप्रयोग का विश्लेषण करने का उदाहरण।
java -jar BFScan.jar ./tests/example.apk -r ./tests/mapping.txt
यह प्रोजेक्ट उपयोग करता है: