Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
firmadyne — Linux-आधारित फर्मवेयर के अनुकरण और गतिशील विश्लेषण के लिए प्लेटफ़ॉर्म | Kitploit
उपकरण/GitHubGitHub/firmadyne/firmadyne
एम्बेडेड सिस्टम सुरक्षागतिशील विश्लेषण (सैंडबॉक्सिंग)भेद्यता विश्लेषणफर्मवेयर विश्लेषण
GitHubfirmadyne/firmadyne

firmadyne

Linux-आधारित फर्मवेयर के अनुकरण और गतिशील विश्लेषण के लिए प्लेटफ़ॉर्म

रिपॉजिटरी देखें
2.1k3662 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

विषय - सूची

  • विषय - सूची
  • परिचय
  • सेटअप
    • एक्सट्रैक्टर
    • डेटाबेस
    • बाइनरीज़
    • क्यूईएमयू
  • उपयोग
  • FAQ
    • run.sh जनरेट नहीं हुआ है
    • लॉग इस प्रकार समाप्त होता है "Kernel panic - not syncing: No working init found"
    • एक प्रक्रिया क्रैश हो गई, जैसे do_page_fault() #2: sending SIGSEGV for invalid read access from 00000000
    • मैं एमुलेटेड फर्मवेयर को कैसे डीबग करूं?
  • स्रोत से संकलन
    • टूलचेन
    • कंसोल
    • libnvram
    • कर्नेल
      • ARM
      • MIPS
  • डेटाबेस
    • डेटा
    • स्कीमा
  • पेपर

परिचय

FIRMADYNE एक स्वचालित और स्केलेबल सिस्टम है जो लिनक्स-आधारित एम्बेडेड फर्मवेयर के एम्यूलेशन और डायनामिक विश्लेषण के लिए है। इसमें निम्नलिखित घटक शामिल हैं:

  • फर्मवेयर निष्पादन के इंस्ट्रुमेंटेशन के लिए संशोधित कर्नेल (MIPS: v2.6, ARM: v4.1, v3.10);
  • हार्डवेयर NVRAM पेरिफेरल का अनुकरण करने के लिए एक यूजरस्पेस NVRAM लाइब्रेरी;
  • डाउनलोड किए गए फर्मवेयर से फाइलसिस्टम और कर्नेल निकालने के लिए एक एक्सट्रैक्टर;
  • डीबगिंग के लिए एक अतिरिक्त शेल स्पॉन करने हेतु एक छोटा कंसोल एप्लिकेशन;
  • और 42+ विभिन्न विक्रेताओं से फर्मवेयर डाउनलोड करने के लिए एक स्क्रैपर।

हमने FIRMADYNE सिस्टम का उपयोग करके निम्नलिखित तीन बुनियादी स्वचालित विश्लेषण भी लिखे हैं।

  • सुलभ वेबपेज: यह स्क्रिप्ट फर्मवेयर इमेज के फाइलसिस्टम के भीतर प्रत्येक फ़ाइल को पुनरावृत्त करती है जो वेबसर्वर द्वारा सर्व की जाती प्रतीत होती है, और परिणामों को इस आधार पर एकत्र करती है कि वे प्रमाणीकरण की आवश्यकता प्रतीत होती हैं या नहीं।
  • SNMP जानकारी: यह स्क्रिप्ट बिना किसी क्रेडेंशियल के public और private SNMP v2c समुदायों की सामग्री को डिस्क पर डंप करती है।
  • भेद्यता जांच: यह स्क्रिप्ट Metasploit से एक्सप्लॉइट का उपयोग करके 60 ज्ञात भेद्यताओं की उपस्थिति का परीक्षण करती है। इसके अलावा, यह 14 पहले से अज्ञात भेद्यताओं की भी जाँच करती है जिन्हें हमने खोजा था। अधिक जानकारी के लिए, प्रभावित उत्पादों और CVE सहित, analyses/README.md देखें।

हमारे 2016 के नेटवर्क और डिस्ट्रीब्यूटेड सिस्टम सुरक्षा संगोष्ठी (NDSS) पेपर में, जिसका शीर्षक Towards Automated Dynamic Analysis for Linux-based Embedded Firmware है, हमने FIRMADYNE सिस्टम का 23,035 फर्मवेयर इमेजों के डेटासेट पर मूल्यांकन किया, जिनमें से हम 9,486 निकालने में सक्षम थे। Metasploit फ्रेमवर्क के 60 एक्सप्लॉइट और हमारे द्वारा खोजी गई 14 पहले से अज्ञात भेद्यताओं का उपयोग करके, हमने दिखाया कि 1,971 में से 846 (43%) फर्मवेयर इमेजें कम से कम एक एक्सप्लॉइट के प्रति संवेदनशील थीं, जो हमारे अनुमान के अनुसार 89+ विभिन्न उत्पादों को प्रभावित करती हैं। अधिक विवरण के लिए, ऊपर दिए गए हमारे पेपर को देखें।

नोट: यह प्रोजेक्ट एक शोध उपकरण है, और वर्तमान में उत्पादन के लिए तैयार नहीं है। विशेष रूप से, कुछ घटक काफी अपरिपक्व और खुरदरे हैं। हम सिस्टम को वर्चुअल मशीन के भीतर चलाने का सुझाव देते हैं। कोई समर्थन प्रदान नहीं किया जाता है, लेकिन दस्तावेज़ीकरण, परीक्षण, या कोड के लिए पुल अनुरोधों की बहुत सराहना की जाती है!

सेटअप

पहले, इस रिपॉजिटरी को रिकर्सिव रूप से क्लोन करें और इसकी निर्भरताएँ स्थापित करें।

  1. sudo apt-get install busybox-static fakeroot git dmsetup kpartx netcat-openbsd nmap python-psycopg2 python3-psycopg2 snmp uml-utilities util-linux vlan
  2. git clone --recursive https://github.com/firmadyne/firmadyne.git

एक्सट्रैक्टर

एक्सट्रैक्टर binwalk टूल पर निर्भर करता है, इसलिए हमें इसे और इसकी निर्भरताओं को स्थापित करने की आवश्यकता है।

  1. git clone https://github.com/ReFirmLabs/binwalk.git
  2. cd binwalk
  3. sudo ./deps.sh
  4. sudo python ./setup.py install
  • Python 2.x के लिए, sudo apt-get install python-lzma
  1. sudo -H pip install git+https://github.com/ahupp/python-magic
  2. sudo -H pip install git+https://github.com/sviehb/jefferson
  3. वैकल्पिक रूप से, upstream sasquatch के बजाय, हमारा sasquatch फोर्क का उपयोग गलत सकारात्मक परिणामों को रोकने के लिए किया जा सकता है ताकि त्रुटियों को घातक बनाया जा सके।

डेटाबेस

अगला, डेटाबेस स्थापित करें, सेटअप करें और कॉन्फ़िगर करें।

  1. sudo apt-get install postgresql
  2. sudo -u postgres createuser -P firmadyne, पासवर्ड firmadyne के साथ
  3. sudo -u postgres createdb -O firmadyne firmware
  4. sudo -u postgres psql -d firmware < ./firmadyne/database/schema

बाइनरीज़

सभी घटकों के लिए हमारे पूर्व-निर्मित बाइनरी डाउनलोड करने के लिए, निम्नलिखित स्क्रिप्ट चलाएँ:

  • cd ./firmadyne; ./download.sh

वैकल्पिक रूप से, स्रोत से संकलन करने के लिए नीचे दिए गए निर्देशों को देखें।

क्यूईएमयू

अपने वितरण द्वारा प्रदान किए गए QEMU का उपयोग करने के लिए:

  • sudo apt-get install qemu-system-arm qemu-system-mips qemu-system-x86 qemu-utils

ध्यान दें कि x86-आधारित फर्मवेयर का एम्यूलेशन वर्तमान में समर्थित नहीं है, लेकिन qemu-system-x86 स्थापित करने से कुछ डेबियन-आधारित वितरणों पर पैकेजिंग समस्या हल हो जाती है।

वैकल्पिक रूप से, कुछ फर्मवेयर के लिए हमारा संशोधित संस्करण qemu-linaro का उपयोग करें जो एक निश्चित मेमोरी मैपिंग मानता है (अनुशंसित नहीं), या upstream qemu का उपयोग करें।

उपयोग

  1. इस रिपॉजिटरी की जड़ को इंगित करने के लिए firmadyne.config में FIRMWARE_DIR सेट करें।
  2. एक फर्मवेयर इमेज डाउनलोड करें, उदा। v2.0.3 Netgear WNAP320 के लिए।
    • wget http://www.downloads.netgear.com/files/GDC/WNAP320/WNAP320%20Firmware%20Version%202.0.3.zip
  3. एक्सट्रैक्टर का उपयोग केवल फाइलसिस्टम को पुनर्प्राप्त करने के लिए करें, कोई कर्नेल नहीं (-nk), कोई समानांतर संचालन नहीं (-np), Netgear ब्रांड (-b) के साथ 127.0.0.1 (-sql) पर SQL सर्वर में image तालिका को आबाद करें, और टारबॉल को images में संग्रहीत करें।
    • ./sources/extractor/extractor.py -b Netgear -sql 127.0.0.1 -np -nk "WNAP320 Firmware Version 2.0.3.zip" images

FAQ

run.sh जनरेट नहीं हुआ है

यह एक सामान्य त्रुटि है जो तब होती है जब नेटवर्क कॉन्फ़िगरेशन का अनुमान लगाने में असमर्थ होता है। कारण जानने के लिए नीचे दी गई चेकलिस्ट का पालन करें।

  1. inferNetwork.sh: क्या इस स्क्रिप्ट को कोई नेटवर्क इंटरफ़ेस मिला (जैसे Interfaces: [br0, 192.168.0.1])? यदि हाँ, तो यह एक बग है; कृपया इसकी रिपोर्ट करें। अन्यथा, नीचे जारी रखें।
  2. qemu.initial.serial.log: क्या यह फ़ाइल Unable to mount root fs on unknown-block(8,1) के साथ समाप्त होती है? यदि हाँ, तो प्रारंभिक फाइलसिस्टम इमेज kpartx का उपयोग करके सही ढंग से जनरेट नहीं हुई थी। इस फर्मवेयर इमेज के अनुरूप स्क्रैच निर्देशिका को हटाने का प्रयास करें, और makeImage.sh से पुनः प्रारंभ करें। अन्यथा, प्रारंभिक एम्यूलेशन ने कोई उपयोगी इंस्ट्रुमेंटेशन उत्पन्न नहीं किया। inferNetwork.sh में टाइमआउट को 60 से 120 तक बढ़ाने का प्रयास करें और inferNetwork.sh से पुनः प्रारंभ करें।
  3. qemu.initial.serial.log: क्या init प्रक्रिया क्रैश हुई, और क्या इससे पहले कोई विफल NVRAM ऑपरेशन हुआ (जैसे )? यदि हाँ, तो नीचे FAQ प्रविष्टियाँ देखें।

लॉग इस प्रकार समाप्त होता है "Kernel panic - not syncing: No working init found"

फर्मवेयर एक असामान्य नाम के साथ एक इनिशियलाइज़ेशन प्रक्रिया का उपयोग करता है। आपको सही प्रक्रिया की पहचान करने के लिए मैन्युअल रूप से फाइलसिस्टम का निरीक्षण करना होगा, फिर QEMU में एक कर्नेल बूट पैरामीटर init=<path> जोड़कर इसका पूरा पथ निर्दिष्ट करने के लिए स्क्रिप्ट को संशोधित करें।

एक प्रक्रिया क्रैश हो गई, जैसे do_page_fault() #2: sending SIGSEGV for invalid read access from 00000000

यह संभावना है कि प्रक्रिया ने एक NVRAM प्रविष्टि का अनुरोध किया जिसके लिए FIRMADYNE के पास कोई डिफ़ॉल्ट मान नहीं है। इसे मैन्युअल रूप से libnvram में NVRAM_DEFAULTS_PATH में NVRAM प्रविष्टियों के लिए एक स्रोत, NVRAM_DEFAULTS में एक प्रविष्टि, या OVERRIDE_POINT में एक फ़ाइल जोड़कर ठीक किया जा सकता है। अधिक विवरण के लिए, libnvram के लिए दस्तावेज़ीकरण देखें। ध्यान दें कि पहले दो विकल्पों में config.h को संशोधित करना शामिल है, जिसके लिए libnvram के पुनर्संकलन की आवश्यकता होगी।

मैं एमुलेटेड फर्मवेयर को कैसे डीबग करूं?

  1. पूर्ण-सिस्टम QEMU एम्यूलेशन के साथ, लक्ष्य आर्किटेक्चर के लिए एक स्थिर रूप से लिंक किया गया gdbserver संकलित करें, इसे फाइलसिस्टम में कॉपी करें, इसे रुचि की प्रक्रिया से संलग्न करें, और gdb-multiarch का उपयोग करके दूरस्थ रूप से कनेक्ट करें। आपको एक क्रॉस-कंपाइल टूलचेन की आवश्यकता होगी; या तो Debian/Ubuntu द्वारा प्रदान किए गए crossbuild-essential-* पैकेज का उपयोग करें, इसे buildroot जैसे उपकरण का उपयोग करके स्क्रैच से बनाएँ, या ऑनलाइन GPL स्रोत और/या पूर्व-संकलित बाइनरी खोजें। यदि आपके पास IDA Pro है, तो आप IDA के पूर्व-संकलित डीबग सर्वर (इंस्टॉल के dbgsrv उपनिर्देशिका में स्थित) का उपयोग कर सकते हैं, हालाँकि वे GDB-संगत नहीं हैं।
  2. पूर्ण-सिस्टम QEMU एम्यूलेशन के साथ, QEMU को -s -S पैरामीटर पास करें और gdb-multiarch से target remote localhost:1234 का उपयोग करके स्टब से कनेक्ट करें। हालाँकि, डीबगर स्वचालित रूप से यह नहीं जान पाएगा कि मेमोरी में कर्नेल और यूजरस्पेस कहाँ है, इसलिए आपको gdb में add-symbol-file मैन्युअल रूप से करने और कर्नेल में try_to_run_init_process() के आसपास ब्रेक लगाने की आवश्यकता हो सकती है।

स्रोत से संकलन

यदि आप हमारे पूर्व-निर्मित बाइनरी का उपयोग किए बिना पूरे FIRMADYNE सिस्टम को स्क्रैच से संकलित करना चाहते हैं, तो कृपया नीचे दिए गए चरणों का पालन करें।

टूलचेन

FIRMADYNE द्वारा उपयोग किए जाने वाले किसी भी बाइनरी को बनाने के लिए, आपको निम्नलिखित आर्किटेक्चर ट्रिपल के लिए तीन क्रॉस-कंपिलेशन टूलचेन की आवश्यकता होगी। टूलचेन के लिए C रनटाइम लाइब्रेरी के रूप में केवल musl libc का उपयोग करें; अन्य का परीक्षण नहीं किया गया है।

  • arm-linux-musleabi
  • mipseb-linux-musl
  • mipsel-linux-musl

musl के साथ क्रॉस-कंपिलेशन टूलचेन बनाने की प्रक्रिया को सरल बनाने के लिए, हम musl-cross प्रोजेक्ट का उपयोग करने की सलाह देते हैं। इन टूलचेन को स्रोत से बनाने के लिए नीचे दिए गए चरणों का पालन करें, या वैकल्पिक रूप से हमारे पूर्व-निर्मित टूलचेन डाउनलोड करने के लिए यहां क्लिक करें।

  1. git clone https://github.com/GregorR/musl-cross.git

  2. defs.sh में निम्नलिखित चर संशोधित या सेट करें

    • BINUTILS_URL=http://ftp.gnu.org/gnu/binutils/binutils-2.25.1.tar.bz2
    • GCC_VERSION=5.3.0
    • GMP_VERSION=6.0.0a
    • MPC_VERSION=1.0.2
    • MPFR_VERSION=3.1.3
    • LIBELF_VERSION=master
    • MUSL_DEFAULT_VERSION=1.1.12
    • MUSL_GIT_VERSION=615629bd6fcd6ddb69ad762e679f088c7bd878e2
    • LANG_CXX=no
    • GCC_BUILTIN_PREREQS=yes

कंसोल

  1. cd ./firmadyne/sources/console
  2. make clean && CC=/opt/cross/arm-linux-musleabi/bin/arm-linux-musleabi-gcc make && mv console ../../binaries/console.armel
  3. make clean && CC=/opt/cross/mipseb-linux-musl/bin/mipseb-linux-musl-gcc make && mv console ../../binaries/console.mipseb
  4. make clean && CC=/opt/cross/mipsel-linux-musl/bin/mipsel-linux-musl-gcc make && mv console ../../binaries/console.mipsel

libnvram

  1. cd ./firmadyne/sources/libnvram
  2. make clean && CC=/opt/cross/arm-linux-musleabi/bin/arm-linux-musleabi-gcc make && mv libnvram.so ../../binaries/libnvram.so.armel
  3. make clean && CC=/opt/cross/mipseb-linux-musl/bin/mipseb-linux-musl-gcc make && mv libnvram.so ../../binaries/libnvram.so.mipseb
  4. make clean && CC=/opt/cross/mipsel-linux-musl/bin/mipsel-linux-musl-gcc make && mv libnvram.so ../../binaries/libnvram.so.mipsel

कर्नेल

ARM

  1. git clone https://github.com/firmadyne/kernel-v4.1.git && cd kernel-v4.1
  2. mkdir -p build/armel
  3. cp config.armel build/armel/.config
  4. make ARCH=arm CROSS_COMPILE=/opt/cross/arm-linux-musleabi/bin/arm-linux-musleabi- O=./build/armel zImage -j8
  5. cp build/armel/arch/arm/boot/zImage ../firmadyne/binaries/zImage.armel

MIPS

  1. git clone https://github.com/firmadyne/kernel-v2.6.git && cd kernel-v2.6

  2. बिग-एंडियन MIPS के लिए, निम्नलिखित करें:

    1. mkdir -p build/mipseb
    2. cp config.mipseb build/mipseb/.config
    3. make ARCH=mips CROSS_COMPILE=/opt/cross/mipseb-linux-musl/bin/mipseb-linux-musl- O=./build/mipseb -j8
    4. cp build/mipseb/vmlinux ../firmadyne/binaries/vmlinux.mipseb
  3. लिटिल-एंडियन MIPS के लिए, निम्नलिखित करें:

    1. mkdir -p build/mipsel
    2. cp config.mipsel build/mipsel/.config
    3. make ARCH=mips CROSS_COMPILE=/opt/cross/mipsel-linux-musl/bin/mipsel-linux-musl- O=./build/mipsel -j8
    4. cp build/mipsel/vmlinux ../firmadyne/binaries/vmlinux.mipsel

डेटाबेस

विकास के दौरान, डेटाबेस एक PostgreSQL सर्वर पर संग्रहीत किया गया था।

डेटा

हालाँकि हम बाइनरी फर्मवेयर को पुनर्वितरित नहीं कर सकते, हमारे प्रयोगों के लिए उपयोग किया गया डेटा यहां उपलब्ध है।

स्कीमा

नीचे स्कीमा में तालिकाओं का विवरण दिया गया है।

  • brand: प्रत्येक विक्रेता के लिए ब्रांड नाम संग्रहीत करता है।
कॉलमविवरण
idप्राथमिक कुंजी
nameब्रांड नाम
  • image: प्रत्येक फर्मवेयर इमेज के बारे में जानकारी संग्रहीत करता है।
  • object: फाइलसिस्टम में प्रत्येक फ़ाइल के बारे में जानकारी संग्रहीत करता है।
कॉलमविवरण
idप्राथमिक कुंजी
hashMD5
  • object_to_image: अद्वितीय फ़ाइलों को उनके फर्मवेयर इमेजेस से मैप करता है।
  • product

पेपर

हमारे पेपर में चर्चित परिणाम निम्नलिखित के प्री-रिलीज़ संस्करणों का उपयोग करके उत्पन्न किए गए थे:* टूलचेन:

  • BINUTILS_URL=http://ftp.gnu.org/gnu/binutils/binutils-2.25.1.tar.bz2, GCC_VERSION=4.9.3, GMP_VERSION=6.0.0a, MPC_VERSION=1.0.2, MPFR_VERSION=3.1.3, LIBELF_VERSION=71bf774909fd654d8167a475333fa8f37fbbcb5d, MUSL_DEFAULT_VERSION=1.1.10, MUSL_GIT_VERSION=996d148bf14b477b07fa3691bffeb930c67b2b62, LANG_CXX=no
  • ARM: LINUX_HEADERS_URL=https://kernel.org/pub/linux/kernel/v3.x/linux-3.10.84.tar.xz
  • MIPS: LINUX_HEADERS_URL=https://kernel.org/pub/linux/kernel/v2.6/longterm/v2.6.32/linux-2.6.32.67.tar.xz
  • कर्नेल:
    • ARM: firmadyne-v3.10.92
टूल डाउनलोड करें
  • फर्मवेयर 1 की आर्किटेक्चर पहचानें और परिणाम को डेटाबेस की image तालिका में संग्रहीत करें।
    • ./scripts/getArch.sh ./images/1.tar.gz
  • फर्मवेयर 1 के फाइलसिस्टम की सामग्री को डेटाबेस में लोड करें, object और object_to_image तालिकाओं को आबाद करें।
    • ./scripts/tar2db.py -i 1 -f ./images/1.tar.gz
  • फर्मवेयर 1 के लिए QEMU डिस्क इमेज बनाएँ।
    • sudo ./scripts/makeImage.sh 1
  • फर्मवेयर 1 के लिए नेटवर्क कॉन्फ़िगरेशन का अनुमान लगाएँ। कर्नेल संदेश ./scratch/1/qemu.initial.serial.log पर लॉग किए जाते हैं।
    • ./scripts/inferNetwork.sh 1
  • अनुमानित नेटवर्क कॉन्फ़िगरेशन के साथ फर्मवेयर 1 का एम्यूलेशन करें। यह एक TAP डिवाइस बनाकर और एक रूट जोड़कर होस्ट सिस्टम के कॉन्फ़िगरेशन को संशोधित करेगा।
    • ./scratch/1/run.sh
  • सिस्टम नेटवर्क पर उपलब्ध होना चाहिए, और विश्लेषण के लिए तैयार है। कर्नेल संदेश ./scratch/1/qemu.final.serial.log पर मिरर किए जाते हैं। फर्मवेयर 1 के लिए फाइलसिस्टम को ./scripts/mount.sh 1 और ./scripts/umount.sh 1 के साथ scratch/1/image पर माउंट और अनमाउंट किया जा सकता है।
    • ./analyses/snmpwalk.sh 192.168.0.100
    • ./analyses/webAccess.py 1 192.168.0.100 log.txt
    • mkdir exploits; ./analyses/runExploits.py -t 192.168.0.100 -o exploits/exploit -e x (Metasploit फ्रेमवर्क की आवश्यकता है)
    • sudo nmap -O -sV 192.168.0.100
  • डिफ़ॉल्ट कंसोल स्वचालित रूप से टर्मिनल से कनेक्ट होना चाहिए। आप root और password के साथ भी लॉग इन कर सकते हैं। ध्यान दें कि Ctrl-c गेस्ट को भेजा जाता है; एम्यूलेशन को समाप्त करने के लिए QEMU मॉनिटर कमांड Ctrl-a + x का उपयोग करें।
  • nvram_get_buf: Unable to open key <foo>
  • यूजर-मोड QEMU एम्यूलेशन के साथ, फर्मवेयर इमेज में chroot करें (वैकल्पिक), LD_LIBRARY_PATH को FIRMADYNE libnvram शामिल करने के लिए सेट करें, और फर्मवेयर /lib निर्देशिका के सही पथ के साथ -L पैरामीटर और QEMU को रुचि के बाइनरी दोनों पास करें। यह डीबग करने में सबसे आसान है, क्योंकि आप gdb-multiarch का उपयोग करके सीधे प्रक्रिया से संलग्न हो सकते हैं और प्रक्रिया के साथ सीधे इंटरैक्ट कर सकते हैं, लेकिन सिस्टम स्थिति सटीक नहीं हो सकती क्योंकि होस्ट कर्नेल का उपयोग किया जा रहा है। यह कुछ हद तक असुरक्षित भी है, क्योंकि एमुलेटेड फर्मवेयर होस्ट फाइलसिस्टम तक पहुँच सकता है और होस्ट कर्नेल के साथ इंटरैक्ट कर सकता है।
  • config.sh में निम्नलिखित चर संशोधित या सेट करें

    • CFLAGS="-fPIC"
  • लिटिल-एंडियन MIPS के लिए, निम्नलिखित करें:

    • config.sh में TRIPLE=mipsel-linux-musl सेट करें
    • defs.sh में LINUX_HEADERS_URL=https://mirrors.edge.kernel.org/pub/linux/kernel/v2.6/linux-2.6.39.4.tar.xz सेट करें
    • पिछले बिल्ड को साफ करने के लिए ./clean.sh चलाएँ
    • टूलचेन बनाने और /opt/cross में इंस्टॉल करने के लिए ./build.sh चलाएँ
  • बिग-एंडियन MIPS के लिए, निम्नलिखित करें:

    • config.sh में TRIPLE=mipseb-linux-musl सेट करें
    • defs.sh में LINUX_HEADERS_URL=https://mirrors.edge.kernel.org/pub/linux/kernel/v2.6/linux-2.6.39.4.tar.xz सेट करें
    • पिछले बिल्ड को साफ करने के लिए ./clean.sh चलाएँ
    • टूलचेन बनाने और /opt/cross में इंस्टॉल करने के लिए ./build.sh चलाएँ
  • लिटिल-एंडियन ARM के लिए, निम्नलिखित करें:

    • config.sh में TRIPLE=arm-linux-musleabi, GCC_BOOTSTRAP_CONFFLAGS="--with-arch=armv6 --with-float=softfp", और GCC_CONFFLAGS="--with-arch=armv6 --with-float=softfp" सेट करें
    • defs.sh में LINUX_HEADERS_URL=https://kernel.org/pub/linux/kernel/v4.x/linux-4.1.17.tar.xz सेट करें
    • पिछले बिल्ड को साफ करने के लिए ./clean.sh चलाएँ
    • टूलचेन बनाने और /opt/cross में इंस्टॉल करने के लिए ./build.sh चलाएँ
  • आपके पास निम्नलिखित निर्देशिकाएँ होनी चाहिए, या जहाँ भी आपने टूलचेन स्थापित किए हैं:

    • /opt/cross/arm-linux-musleabi
    • /opt/cross/mipseb-linux-musl
    • /opt/cross/mipsel-linux-musl
  • कॉलमविवरण
    idप्राथमिक कुंजी
    filenameफ़ाइल नाम
    brand_idbrand के लिए विदेशी कुंजी
    hashMD5
    rootfs_extractedक्या प्राथमिक फाइलसिस्टम निकाला गया था
    kernel_extractedक्या कर्नेल निकाला गया था
    archहार्डवेयर आर्किटेक्चर
    kernel_versionनिकाले गए कर्नेल का संस्करण
    कॉलमविवरण
    idप्राथमिक कुंजी
    oidobject के लिए विदेशी कुंजी
    iidimage के लिए विदेशी कुंजी
    filenameफ़ाइल का पूरा पथ
    regular_fileक्या फ़ाइल नियमित है
    permissionsऑक्टल में फ़ाइल अनुमति
    uidस्वामी का उपयोगकर्ता आईडी
    gidसमूह का समूह आईडी
    कॉलमविवरण
    idप्राथमिक कुंजी
    iidimage के लिए विदेशी कुंजी
    urlडाउनलोड URL
    mib_filenameSNMP MIB का फ़ाइल नाम
    mib_hashSNP MIB का MD5
    mib_urlSNMP MIB का डाउनलोड URL
    sdk_filenameस्रोत SDK का फ़ाइल नाम
    sdk_hashस्रोत SDK का MD5
    sdk_urlस्रोत SDK का डाउनलोड URL
    productउत्पाद का नाम
    versionसंस्करण स्ट्रिंग
    buildबिल्ड स्ट्रिंग
    dateरिलीज़ दिनांक
  • MIPS: firmadyne-v2.6.32.68 बिना e2b9f315547ea50a65baad4899a4780078ab273e और 26bb3636c987fc7e145af73ddea6c10fa93bdae9
  • console: c36ae8553fa4e9c82e8a65752906641d81c2360c
  • extractor: 5520c64bfa8554c5c17ab671aaed0fdeec91bf19
  • libnvram: b60e7d4d576b39dd46107058adb635d43e80e00d
  • qemu-linaro: 4753f5e8126a00cc0a8559bfd9b47d6340903323
  • binwalk: f2ce2992695fae5477c46980148c89e9c91a5cce
    • jefferson: 090a33be0be4aac8eee8d825447c0eb18dc8b51a
    • sasquatch: 287e4a8e059d3ee7a5f643211fcf00c292cd6f4d