
CAN Bus वाहन सिम्युलेटर जो आक्रामक ऑटोमोटिव सुरक्षा हमलों का अभ्यास करने के लिए है। नियंत्रित प्रयोगशाला वातावरण में CAN संदेशों की स्निफिंग, इंजेक्शन, और हेरफेर को सक्षम करने के लिए कई ECUs का अनुकरण करता है।
EvilDoggie कार्यशाला कार सिम्युलेटर रिपॉजिटरी में आपका स्वागत है! यह उपकरण Black Hat Arsenal 2025 सत्र में उपयोग किए गए कार CAN बस वातावरण का अनुकरण करता है। Faraday Security द्वारा विकसित, यह सिम्युलेटर एक वाहन में कई इलेक्ट्रॉनिक नियंत्रण इकाइयों (ECUs) का अनुकरण करता है, जिससे शोधकर्ता नियंत्रित सेटिंग में EvilDoggie के साथ आक्रामक CAN बस हमलों का अभ्यास कर सकते हैं।
सिम्युलेटर सीरियल और SocketCAN दोनों इंटरफेस का समर्थन करता है, जो CAN संदेशों को सूँघने, इंजेक्ट करने और हेरफेर करने के लिए Doggie हार्डवेयर के साथ सहज एकीकरण सक्षम बनाता है।
यह ऑटोमोटिव सुरक्षा में शैक्षिक उद्देश्यों के लिए डिज़ाइन किया गया है, जो VIN स्पूफिंग, दरवाजा खोलना, क्रूज़ कंट्रोल भ्रम, एयरबैग टॉगलिंग, ABS डिस्कनेक्शन, और अधिक जैसी चुनौतियों पर ध्यान केंद्रित करता है - जैसा कि संलग्न कार्यशाला गाइड में विस्तृत है।
यह ओपन-सोर्स सिम्युलेटर MIT लाइसेंस के तहत लाइसेंस प्राप्त है और व्यापक Doggie/EvilDoggie पारिस्थितिकी तंत्र का हिस्सा है। पूर्ण फर्मवेयर और हार्डवेयर विवरण के लिए, मुख्य रिपॉजिटरी पर जाएं।
पूर्ण कार्यशाला मार्गदर्शिका के लिए evilDoggie कार्यशाला दस्तावेज़ीकरण देखें।

सिम्युलेटर चलाने के लिए आपको 2 Doggies (एक TX के लिए और एक RX के लिए) की आवश्यकता है, 3 Doggies की सिफारिश की जाती है—एक हमलावर (EvilDoggie) के रूप में और दो अनुकरणित ECUs के रूप में—यह सुनिश्चित करने के लिए कि संदेश वास्तविक भौतिक बस पर प्रसारित हों।
निर्भरताओं को अलग करने के लिए Python वर्चुअल वातावरण बनाएं:
python3 -m venv doggie_venv
source doggie_venv/bin/activate
requirements.txt से आवश्यक पैकेज स्थापित करें:
python3 -m pip install -r requirements.txt
सिम्युलेटर पैकेज को स्थानीय रूप से स्थापित करें:
python3 -m pip install -e .
सीरियल या SocketCAN इंटरफेस का उपयोग करके सिम्युलेटर लॉन्च करें। 2-Doggie सेटअप के लिए, दो Doggies को अपने सिस्टम से कनेक्ट करें (जैसे, USB के माध्यम से) और उनके पोर्ट की पहचान करें (जैसे, /dev/ttyUSB0 और /dev/ttyUSB1)। सीरियल कनेक्शन के लिए --serial विकल्प या वर्चुअल CAN इंटरफेस के लिए --socketcan का उपयोग करें।
सीरियल इंटरफेस के साथ उदाहरण (आवश्यकतानुसार पोर्ट और बॉडरेट समायोजित करें):
python3 -m doggie_lab --serial /dev/ttyUSB0@921600 /dev/ttyUSB1@921600 --speed 500000
--serial TX_PORT RX_PORT: सीरियल पोर्ट और बॉडरेट निर्दिष्ट करें (जैसे, /dev/ttyUSB0@115200 /dev/ttyUSB1@115200)।--speed SPEED: CAN बस की गति बिट्स प्रति सेकंड में सेट करें (डिफ़ॉल्ट: 500000)।SocketCAN (वर्चुअल इंटरफेस) के लिए:
python3 -m doggie_lab --socketcan can0 can1 --speed 500000
--socketcan TX_CAN RX_CAN: SocketCAN इंटरफेस का उपयोग करें (जैसे, can0 can1)।पूर्ण विकल्पों के लिए python3 -m doggie_lab --help चलाएँ।
हार्डवेयर के बिना त्वरित परीक्षण के लिए, आप SocketCAN का उपयोग करके Linux पर एकल वर्चुअल CAN इंटरफ़ेस का अनुकरण कर सकते हैं। यह बुनियादी सूँघने या इंजेक्शन के लिए आदर्श है, लेकिन उन्नत चुनौतियों के लिए आवश्यक भौतिक बस व्यवहारों को दोहराएगा नहीं।
वर्चुअल CAN इंटरफ़ेस सेट करें:
sudo modprobe vcan।sudo ip link add dev vcan0 type vcan और sudo ip link set up vcan0।--socketcan vcan0 vcan0 (TX/RX लूपबैक के लिए समान इंटरफ़ेस का उपयोग करके) चलाएँ।हालांकि, सभी कार्यशाला चुनौतियों के लिए, वास्तविक बस इंटरैक्शन देखने के लिए भौतिक Doggies आवश्यक हैं, जैसे कि त्रुटि प्रसार और विवाद। कम से कम 3 Doggies का उपयोग करें: दो ECU सिमुलेशन (TX/RX) के लिए और एक साझा भौतिक बस से जुड़े EvilDoggie हमलावर के रूप में।
requirements.txt में सूचीबद्ध निर्भरताएँ (जैसे, python-can, UI के लिए tkinter)।यह सिम्युलेटर केवल अनुसंधान और प्रशिक्षण के लिए है। वास्तविक वाहनों पर उपयोग न करें। योगदान का स्वागत है—सुधार के लिए मुद्दे या PR खोलें!
यह परियोजना MIT लाइसेंस के तहत लाइसेंस प्राप्त है। विवरण के लिए LICENSE फ़ाइल देखें।