
UEFI फ़र्मवेयर का विश्लेषण करने और FwHunt नियमों के साथ UEFI मॉड्यूल की जाँच करने के लिए उपकरण
UEFI फर्मवेयर का विश्लेषण करने और FwHunt नियमों के साथ UEFI मॉड्यूल की जाँच करने के लिए उपकरण।
rizin (v0.6.2)
pip से स्थापित करें (python3.6 और उससे ऊपर पर परीक्षण किया गया):
$ python -m pip install fwhunt-scan
मैन्युअल रूप से स्थापित करें:
$ git clone https://github.com/binarly-io/fwhunt-scan.git && cd fwhunt-scan
$ python setup.py install
अलग मॉड्यूल का विश्लेषण/स्कैन करें:
$ python3 fwhunt_scan_analyzer.py analyze-module {image_path} -o out.json
$ python3 fwhunt_scan_analyzer.py scan-module --rule {rule_path} {image_path}
संपूर्ण फर्मवेयर इमेज स्कैन करें:
$ python3 fwhunt_scan_analyzer.py scan-firmware -r rules/BRLY-2021-001.yml -r rules/BRLY-2021-004.yml -r rules/RsbStuffingCheck.yml test/fw.bin
निर्भरताएँ स्थापित करने से बचने के लिए, आप डॉकर इमेज का उपयोग कर सकते हैं।
आप निम्नानुसार डॉकर इमेज को स्थानीय रूप से बना सकते हैं:
docker build -t fwhunt_scan .
या ghcr से नवीनतम इमेज खींचें।
उपयोग का उदाहरण:
docker run --rm -it -v {module_path}:/tmp/image:ro \
fwhunt_scan analyze-module /tmp/image # to analyze EFI module
docker run --rm -it -v {module_path}:/tmp/image:ro -v {rule_path}:/tmp/rule.yml:ro \
fwhunt_scan scan-module /tmp/image -r /tmp/rule.yml # to scan EFI module with specified FwHunt rule
docker run --rm -it -v {module_path}:/tmp/image:ro -v {rule_path}:/tmp/rule.yml:ro \
fwhunt_scan scan-firmware /tmp/image -r /tmp/rule.yml # to scan firmware image with specified FwHunt rule
docker run --rm -it -v {module_path}:/tmp/image:ro -v {rules_directory}:/tmp/rules:ro \
fwhunt_scan scan-firmware /tmp/image --rules_dir /tmp/rules # to scan firmware image with specified rules directory
ये सभी चरण fwhunt_scan_docker.py स्क्रिप्ट में स्वचालित हैं:
python3 fwhunt_scan_docker.py analyze-module {module_path} # to analyze EFI module
python3 fwhunt_scan_docker.py scan-module -r {rule_path} {module_path} # to scan EFI module with specified FwHunt rule
python3 fwhunt_scan_docker.py scan-firmware -r {rule_path} {firmware_path} # to scan firmware image with specified FwHunt rule
python3 fwhunt_scan_docker.py scan-firmware --rules_dir {rules_directory} {firmware_path} # to scan firmware image with specified rules directory
बुनियादी उपयोग के उदाहरण:
from fwhunt_scan import UefiAnalyzer
...
uefi_analyzer = UefiAnalyzer(image_path=module_path)
print(uefi_analyzer.get_summary())
uefi_analyzer.close()
from fwhunt_scan import UefiAnalyzer
...
with UefiAnalyzer(image_path=module_path) as uefi_analyzer:
print(uefi_analyzer.get_summary())
Linux प्लेटफ़ॉर्म पर, आप फ़ाइल के बजाय विश्लेषण के लिए blob पास कर सकते हैं:
from fwhunt_scan import UefiAnalyzer
...
with UefiAnalyzer(blob=data) as uefi_analyzer:
print(uefi_analyzer.get_summary())
from fwhunt_scan import UefiAnalyzer, UefiRule, UefiScanner
...
uefi_analyzer = UefiAnalyzer(module_path)
# rule1 and rule2 - contents of the rules on YAML format
uefi_rules = [UefiRule(rule1), UefiRule(rule2)]
scanner = UefiScanner(uefi_analyzer, uefi_rules)
result = scanner.result