資料介紹
描述
在這個項目中,我使用 Beaglebone Blue 通過 OBDII 端口將其連接到車輛上的 CAN 總線。我展示了如何使用 can-utils 和 python-can 來發送和接收 CAN 消息。我還介紹了如何將 GPS 模塊和蜂窩調制解調器連接到 Beaglebone,以便您可以遠程獲取數據并將數據發送到移動的汽車。我使用 Python 腳本收集 GPS 坐標并解碼 CAN 消息(車速、發動機、RPM、溫度等),然后將所有內容發送到在 AWS 上運行的簡單 Flask 服務器。
我們今天正在構建的間諜設備稱為 ChupaCarBrah。
部分
這些是用于構建 ChupaCarBrah 的部件。
我使用塑料沖洗裝置蓋板連接 Beaglebone,并使用橡皮筋固定其他部件。我不得不在蓋板的側面鉆兩個額外的孔以匹配 BeagleBone 孔。我建議使用彩色連接線。這里使用的顏色標準是:
- 黑色:接地
- 紅色:VCC
- 黃色:CAN 高
- 綠色:CAN 低
BeagleBone 引腳和 CAN 連接器如下所示。需要一個 JST/SH 連接器將連接線連接到 BeagleBone CAN 插槽。
組裝
將 JST/SH 連接器連接到 Beaglebone Blue 上的 CAN 插槽,如下所示
將您的連接線連接到母連接器。在我們的例子中,連接器具有以下標準: 黑色:GND;紅色:不會使用;黃色:CAN Hi;白色:CAN lo。你的可能不一樣。
- GND:JST/SH 黑色 - 連接線黑色
- CAN Hi:JST/SH 黃色 - 連接線黃色
- CAN Lo:JST/SH 白色 - 連接線綠色
將黑色連接線的末端連接到 DC Barrel Jack 適配器上的負極“-”插槽,但先不要擰緊。獲取另一根黑色連接線并插入同一個“-”插槽。將兩根黑線擰在一起。
將紅色連接線連接到 DC Barrel Jack 適配器上的正極“+”插槽。
DC Barrel Jack Adapter 插入 Beaglebone 12V 輸入插孔。OBDII 將提供為 BeagleBone 供電所需的 12V。
將連接線連接到母 OBDII 連接器。您可能需要查看車輛手冊,但通常 OBDII 的標準引腳是:
根據我們的連接線顏色代碼約定,您需要將黑色線連接到 OBDII pin5;黃線到pin6;綠線接pin14,紅線接pin 16。
此時您已經有了一個可以通過 OBDII 與您的汽車 CAN 總線交互的功能設備。如果這就是您要查找的全部內容,請跳至“帶有 can-utils 的 CAN 總線”部分。
要構建完整的 ChupaCarBrah 設備,您仍然需要添加 GPS 模塊、蜂窩調制解調器和電池。電池是可選的,但在您的汽車電池沒電或 OBDII 電源斷開的情況下非常重要(即使電池完全沒電,您也可以找到您的車輛)。
將 GPS 模塊連接到 BeagleBone 上的 UART GPS 插槽。
將您的 USB 蜂窩調制解調器連接到 BeagleBone 上的 USB 端口。在將蜂窩調制解調器連接到 BeagleBone 之前,請確保您已將有效的 SIM 卡插入到蜂窩調制解調器。
將 BeagleBone 連接到塑料板或您選擇的任何其他絕緣材料上。
確保 GPS 模塊和電池正確放置在底部。
將 OBDII 電纜放在電池上并使用橡皮筋固定所有東西。
確保連接線固定在 OBDII 連接器上。我也用了更多的橡皮筋。
連接電池,您的 ChupaCarBrah 將啟動。
現在您已經準備好硬件,讓我們設置所有必要的軟件,以便我們可以開始使用 CAN 消息。
帶有 can-utils 的 CAN 總線
打開您的 BeagleBone 并通過 WiFi 連接到它。我建議僅在長距離上使用蜂窩 LTE 網絡,以便為您的數據計劃節省一些錢。確保你已經安裝并更新了 can-utils/socketCAN。運行以下命令:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install can-utils
安裝/更新 can-utils 后,檢查 can0 接口是否可用
sudo ifconfig can0
root@beaglebone:~# sudo ifconfig can0
can0: flags=128 mtu 16
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 43
如果您在第二行看到帶有 的類似輸出,則表示您的 can0 接口可用且已禁用。在將 ChupaCarbrah 連接到汽車之前,您希望將其關閉。如果您需要禁用它,請運行:
sudo ifconfig can0 down
然后再次檢查狀態
sudo ifconfig can0
在確認接口 can0 可用和禁用后,將 ChupaCarBrah 連接到您的汽車 OBDII 端口(又名 DLC - 數據鏈路連接器)。有關確切位置,請參閱您的汽車手冊,但通常位于靠近方向盤的儀表板下方。
完成整個設置后,您可能希望將其隱藏在儀表板中。
將 ChupaCarBrah 物理連接到您的汽車后,打開點火鑰匙。您可能想啟動引擎以防止耗盡汽車的電池(不要犯我犯的同樣錯誤)。設置波特率,在我們的例子中是 500kbps,然后打開 can0 接口:
sudo ip link set can0 up type can bitrate 500000
sudo ifconfig can0 up
sudo ifconfig can0
root@beaglebone:~# sudo ifconfig can0
can0: flags=193 mtu 16,running,noarp>
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 43
如您所見,現在輸出包含“”,這意味著您已準備好發送一些 CAN 消息。,>打開另一個終端(ssh 會話)并運行:
sudo candump can0
根據您的車輛,您可能會看到很多消息被捕獲,類似于以下內容:
can0 418 [8] 50 FF 60 00 00 20 00 00
can0 412 [6] 1E 00 7A 00 8E 00
can0 2F1 [8] 00 00 79 00 00 00 00 00
can0 300 [8] 00 1B 80 89 9F FF 80 0A
can0 248 [8] 00 08 00 09 00 00 41 01
can0 236 [8] 0F FF 10 00 F0 00 00 39
can0 328 [8] 00 00 80 00 D8 80 FF FF
can0 330 [8] 0C FC FC FF FF FF 3F 89
can0 210 [8] 00 00 00 00 00 00 00 00
can0 308 [8] 40 02 B0 40 01 1F FF 00
can0 309 [7] 1F FF FF FF 0F FF 00
can0 312 [8] 67 EF 07 EF 09 BF 07 92
can0 356 [7] 3F FF 3F FF 0B B8 00
can0 7BC [8] 40 00 00 00 00 00 00 00
can0 218 [8] 8E 38 DD 42 00 80 00 00
can0 338 [8] FF FF 00 FF FF 00 FF FF
can0 315 [7] 28 00 00 00 00 8D 00
can0 200 [8] 00 03 C0 00 C0 00 C0 00
但是,對于某些車輛,包括我的車輛,ODBII CAN 總線默認是安靜的,并且只會對發送到總線的消息做出反應。如果您也是這種情況,您可以通過使用“cansend”命令發送檢索車輛 VIN 號的消息來確認 CAN 是否正常工作。讓“candump”在第二個終端上運行并返回到第一個終端。然后運行:
sudo cansend can0 7DF#0209020000000000
在運行“candump”的終端上,您應該能夠看到與此類似的請求和響應:
root@beaglebone:~# candump can0
can0 7DF [8] 02 09 02 00 00 00 00 00
can0 7E8 [8] 10 14 49 02 01 32 43 34
can0 484 [8] 03 7F 09 11 00 00 00 00
第二行的響應“7E8”將最后 3 個字節設置為 32 43 34。如果我們將其從十六進制解碼為 ASCII,我們會得到“2C4”,這實際上是我的車輛 VIN 的前 3 個數字。
您可以使用此在線 VIN 解碼器來確認數據是否準確:https ://vpic.nhtsa.dot.gov/decoder/Decoder
為獲取 VIN 號碼而發送的消息是“7DF#0209020000000000”。7DF 是 CAN 仲裁 ID(您想使用像這樣的大數字進行測試,因為較高的數字具有較低的優先級)。“0209020000000000”是數據字段:
- “02”:數據長度
- “09”:服務 ID 9
- “02”:讀取 VIN 命令
- “0000000000”被忽略
第一個“02”字節表示只有數據字段上接下來的兩個字節是命令的一部分。剩余的“00”字節全部被忽略;
如果您想嘗試手動發送其他命令,請參考:https ://en.wikipedia.org/wiki/OBD-II_PIDs
現在您確認 can-utils 工作正常,讓我們使用 Python 發送更多命令。首先,確保您安裝了 python-can pip 模塊:
sudo python3 -m pip install python-can
然后,運行get_vin.py以檢索您汽車的 VIN。這是get_vin.py的 Python 代碼:
import can
bus = can.interface.Bus(bustype='socketcan', channel='can0', bitrate=500000)
service_int = 9
pid_int = 2
msg = can.Message(arbitration_id=0x7DF, data=[2, service_int, pid_int, 0, 0, 0, 0, 0], is_extended_id=False)
try:
bus.send(msg)
response = bus.recv(timeout=2)
print(response)
except can.CanError:
print("CAN error")
finally:
bus.shutdown()
sudo python3 get_vin.py
隨意更改“ service_int ”和“ pid_int ”的值并測試OBDII PID 文檔中的其他命令。
檢索 GPS 數據
要測試您的 GPS 模塊,只需運行:
tio /dev/ttyO2 -b 4800
你應該得到一個類似這樣的數據流:
root@beaglebone:~# tio /dev/ttyO2 -b 4800
[tio 17:04:53] tio v1.32
[tio 17:04:53] Press ctrl-t q to quit
[tio 17:04:53] Connected
$GPGGA,170454.000,3500.87097,N,10641.14163,W,1,08,1.1,204.3,M,-34.0,M,,0000*69
$GPGSA,A,3,30,07,11,28,01,08,17,13,,,,,2.2,1.1,2.0*33
$GPRMC,170454.000,A,3500.87097,N,10641.14163,W,0.00,171.40,100520,,,A*79
$GPGGA,170455.000,3500.87097,N,10641.14163,W,1,08,1.1,204.3,M,-34.0,M,,0000*68
$GPGSA,A,3,30,07,11,28,01,08,17,13,,,,,2.2,1.1,2.0*33
$GPGSV,3,1,12,30,74,271,37,07,62,163,35,11,51,074,37,28,46,294,18*74
$GPGSV,3,2,12,01,41,120,31,08,30,049,31,17,26,226,27,13,23,302,28*73
$GPGSV,3,3,12,15,04,323,14,23,16,208,,19,03,224,,09,00,189,*77
$GPRMC,170455.000,A,3500.87097,N,10641.14163,W,0.00,171.40,100520,,,A*78
$GPGGA,170456.000,3500.87097,N,10641.14163,W,1,08,1.1,204.3,M,-34.0,M,,0000*6B
$GPGSA,A,3,30,07,11,28,01,08,17,13,,,,,2.2,1.1,2.0*33
$GPRMC,170456.000,A,3500.87097,N,10641.14163,W,0.00,171.40,100520,,,A*7B
[tio 17:04:56] Disconnected
按“ctrl-t q”退出。您的位置將在句子“GPRMC”上可用。例如,復制句子“ $GPRMC, 170454.000, A, 3500.87097, N, 10641.14163, W, 0.00, 171.40, 100520,,, A*79 ”并使用此在線解碼器對其進行解碼:https ://rl.se/ gprmc
放大地圖,看看 GPS 數據有多準確。
現在,讓我們使用 Python 做同樣的事情。確保您已安裝 pyserial 模塊:
sudo python3 -m pip install pyserial
然后,運行get_gps_data.py以檢索您汽車的位置。這是get_gps_data.py 的 Python 代碼:
import time
import serial
gps_data = ""
utf_data = ""
ser = serial.Serial('/dev/ttyO2', 4800)
counter = 0
while utf_data.find("GPRMC") == -1:
counter += 1
try:
ser_data = ser.readline()
utf_data = ser_data.decode()
except:
utf_data = ""
time.sleep(0.5)
if counter > 50:
break
ser.close()
if utf_data.find("GPRMC") != -1:
utf_data = utf_data.replace('\r', '')
utf_data = utf_data.replace('\n', '')
gps_data = utf_data
print(gps_data)
sudo python3 get_gps_data.py
root@beaglebone:~# sudo python3 get_gps_data.py
$GPRMC,173439.000,A,3500.87097,N,10641.14163,W,0.00,348.52,100520,,,A*74
下一步是創建蜂窩 LTE 數據鏈路,這樣即使汽車不在我們的 WiFi 網絡范圍內,您也可以訪問 GPS 和 CAN 數據。
將 ChupaCarBrah 連接到蜂窩網絡
在本教程中,我使用 USB Hologram.io蜂窩調制解調器。隨意使用其他選項。我將使用 PPP 連接,因此 Python 客戶端可以將數據發送到在 AWS 上運行的服務器應用程序。確保已安裝 ppp,然后安裝 hologram-python:
sudo apt-get install ppp
sudo python3 -m pip install hologram-python
您還需要訂閱數據計劃并激活您的 SIM 卡。請參閱官方全息圖文檔以準備好您的卡。
激活您的卡后,確保您的藍色 LED 指示燈亮起,并且調制解調器上的紅色 LED 指示燈閃爍。
然后,要連接和斷開與蜂窩網絡的連接,請運行:
sudo hologram network connect
sudo hologram network disconnect
為了測試 Internet 連接,您可以使用單個 ICMP 請求 ping Google:
ping -c 1 www.google.com
如果您收到回復,則表示 ChupaCarBrah 已連接到蜂窩網絡,并且它應該能夠在您在 LTE 覆蓋范圍內駕駛的任何地方(幾乎在美國的任何地方)泄露汽車數據。
現在,讓我們看看如何使用 Python 連接和斷開 Hologram 蜂窩網絡。運行cellular_test.py腳本來檢查您的 LTE 數據與互聯網的連接。這是示例腳本cellular_test.py 的 Python 代碼:
import psutil
import time
import subprocess
from Hologram.CustomCloud import CustomCloud
def hologram_network_connect():
hologram_network_disconnect()
time.sleep(2)
cloud = CustomCloud(None, network='cellular')
cloud.network.disable_at_sockets_mode()
res = cloud.network.connect()
message = ""
if res:
message = "PPP session started"
else:
message = "Failed to start PPP"
print(message)
def hologram_network_disconnect():
print('Checking for existing PPP sessions')
for proc in psutil.process_iter():
try:
pinfo = proc.as_dict(attrs=['pid', 'name'])
except:
print("Failed to check for existing PPP sessions")
if 'pppd' in pinfo['name']:
print('Found existing PPP session on pid: %s' % pinfo['pid'])
print('Killing pid %s now' % pinfo['pid'])
process = psutil.Process(pinfo['pid'])
process.terminate()
process.wait()
hologram_network_connect()
time.sleep(2)
ping_response = subprocess.Popen(["/bin/ping", "-c1", "-w100", "www.google.com"], stdout=subprocess.PIPE).stdout.read()
print(ping_response.decode())
time.sleep(2)
hologram_network_disconnect()
sudo python3 cellular_test.py
root@beaglebone:~# sudo python3 cellular_test.py
Checking for existing PPP sessions
PPP session started
PING www.google.com (216.58.201.228) 56(84) bytes of data.
64 bytes from par10s33-in-f4.1e100.net (216.58.201.228): icmp_seq=1 ttl=49 time=420 ms
--- www.google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 420.049/420.049/420.049/0.000 ms
Checking for existing PPP sessions
Found existing PPP session on pid: 1559
Killing pid 1559 now
現在您知道如何使用 Python 發送和接收 CAN 消息了;獲取 GPS 位置;并連接到蜂窩網絡;讓我們把它們放在一起,創建一個簡單的客戶端和服務器應用程序來泄露所有數據。
ChupaCarBrah Python 應用程序
我給你帶來了兩個非常簡單的 Python 腳本,它們可以作為一個框架來構建更復雜的汽車黑客應用程序。客戶端腳本基本上是我迄今為止介紹的所有示例 Python 腳本的組合。它將在 BeagleBone Blue 上運行。服務器腳本是一個簡單的 Flask 應用程序,它將在 AWS(Elastic Beanstalk)上運行,并將使用 JSON 格式存儲和顯示所有泄露的數據。
客戶端腳本 - chupacarbrah.py
chupacarbrah.py客戶端腳本可以在這里找到。使用以下 git 命令將其克隆到您的 BeagleBone:
git clone https://github.com/blupants/chupacarbrah.git
cd chupacarbrah
客戶端腳本從由變量“ obd2_csv_file ”定義的 csv 文件中讀取要執行的 OBDII PID 命令列表。然后它解析命令以創建 CAN 消息。csv 文件格式包括一個“啟用”列,允許您啟用(設置為 1)或禁用(設置為零)您要執行的特定 OBDII PID。默認情況下,腳本使用simple.csv文件和以下命令子集:
- 發動機冷卻液溫度
- 發動機轉速
- 車速
- 進氣溫度
文件obd2_std_PIDs_enabled.csv包含要啟用/禁用的所有可用 OBDII PID 命令。請確保您了解這些命令的作用,并在啟用額外命令之前知道您在做什么。
chupacarbrah.py 客戶端腳本將使用 csv 文件中的 OBDII PID 公式解碼所有響應,并將數據與 GPS 坐標一起發布到 AWS 上的 Flask 應用程序。確保在變量“ server_url ”上定義服務器 URL 。我們將很快介紹如何將服務器腳本部署到 AWS 以及如何獲取服務器 URL。
正確配置客戶端應用程序后,您可以運行它:
sudo python3 chupacarbrah.py
它將顯示從 CAN 響應消息中解碼的當前數據,并每 1 分鐘將所有內容發送到服務器。
要停止客戶端并正常退出,請運行:
sudo touch /tmp/stop
現在,讓我們設置服務器腳本來接收泄露的數據。
服務器腳本 - chupacarbrah_server.py
chupacarbrah_server.py腳本可以在這里找到。它將公開兩個端點,以便您可以發送和獲取泄露的數據:
發布 /api/v1/汽車
獲取 /api/v1/狀態
客戶端腳本將使用“POST /api/v1/cars”端點提交所有數據。然后,您可以在家中舒適地使用“GET /api/v1/status”從 Web 瀏覽器監控 JSON 數據。
讓我們設置一個簡單的本地 Flask 應用程序并在這兩個端點上運行一些快速測試。在本教程的后面,我將展示如何將這個相同的本地應用程序部署到 AWS。
在您的本地 PC 上,而不是 BeagleBone,創建一個項目目錄:
~$ mkdir eb-flask
~$ cd eb-flask
創建并激活一個名為“virt”的虛擬環境:
~/eb-flask$ virtualenv virt
~$ source virt/bin/activate
(virt) ~/eb-flask$
使用 pip install 安裝燒瓶:
(virt)~/eb-flask$ pip install flask==1.0.2
使用 pip freeze 查看已安裝的庫:
(virt) sacchetin@Sacchetins-MacBook-Air eb-flask % pip freeze
aniso8601==8.0.0
click==7.1.2
Flask==1.0.2
Flask-RESTful==0.3.8
itsdangerous==1.1.0
Jinja2==2.11.2
MarkupSafe==1.1.1
pytz==2020.1
six==1.14.0
Werkzeug==1.0.1
(virt) sacchetin@Sacchetins-MacBook-Air eb-flask %
將 pip freeze 的輸出保存到名為 requirements.txt 的文件中。
(virt)~/eb-flask$ pip freeze > requirements.txt
將chupacarbrah_server.py下載到您的eb-flask文件夾并將其重命名為application.py:
curl "https://raw.githubusercontent.com/blupants/chupacarbrah_server/master/chupacarbrah_server.py" -o application.py
在本地運行應用程序進行測試:
(virt) sacchetin@Sacchetins-MacBook-Air eb-flask % python3 application.py
* Serving Flask app "application" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
發送一些虛擬數據以確保一切正常。打開一個新終端并使用 curl 發送一些數據:
curl --header "Content-Type: application/json" \
--request POST \
--data '{"car_uuid":"51f317ec266e4adb956212201f87ba52", "VIN": "2C4", "maker": "Generic", "log":{"timestamp":"20200501120000","GPS":"00"}}' \
"http://localhost:5000/api/v1/cars"
本地服務器將回復 car_uuid,在本例中為:“51f317ec266e4adb956212201f87ba52”。打開瀏覽器,最好是 Firefox,因為它原生解析 JSON,然后訪問http://localhost:5000/api/v1/status
如果您能夠看到剛剛使用 curl 發布的虛擬數據,則意味著您的 Flask 應用程序已準備好部署到 AWS。
將 ChupaCarBrah 服務器應用程序部署到 AWS
首先,您需要在 AWS 上創建一個帳戶并在您的計算機上安裝 AWS 客戶端。請在此處創建您的 AWS 賬戶。部署應用程序所描述的步驟基于此處的官方AWS 文檔。
確保您能夠登錄 AWS 控制臺。然后,安裝 AWS 客戶端:
python3 -m pip install awscli
python3 -m pip install awsebcli
使用 eb init 命令初始化您的 EB CLI 存儲庫:
~/eb-flask$ eb init -p python-3.6 flask-chupacarbrah --region us-east-2
可選,但強烈建議:再次運行 eb init 以配置默認密鑰對,以便您可以使用 SSH 連接到運行您的應用程序的 EC2 實例:
~/eb-flask$ eb init
Do you want to set up SSH for your instances? (y/n): ySelect a keypair. 1) my-keypair 2) [ Create new KeyPair ]
創建一個環境并使用 eb create 將您的應用程序部署到其中:
~/eb-flask$ eb create chupacarbrah-env
環境創建大約需要 5 分鐘。環境創建過程完成后,使用 eb open 打開您的網站:
~/eb-flask$ eb open
它將打開一個網絡瀏覽器并自動加載新服務的 URL。復制 URL,返回到您的 BeagleBone,編輯客戶端腳本 chupacarbrah.py 并將變量“ server_url ”更改為您的 AWS 應用程序的實際 URL。使用我的部署示例,“ server_url ”的值應設置為:
global server_url
server_url = "http://chupacarbrah-env.eba-bdahj3wp.us-east-2.elasticbeanstalk.com/"
您的 URL 會有所不同,但格式應該相似。在 BeagleBone 上重新啟動 chupacarbrah.py,從現在開始,它將開始向 AWS 發送數據。
您也可以將一些虛擬數據發送到您的 AWS 應用程序以進行測試。通過將 localhost:5000 替換為您設置變量“ server_url ”的相同值來重復“POST /api/v1/cars” curl 請求。例如:
curl --header "Content-Type: application/json" \
--request POST \
--data '{"car_uuid":"51f317ec266e4adb956212201f87ba52", "VIN": "2C4", "maker": "Generic", "log":{"timestamp":"20200501120000","GPS":"00"}}' \
"http://chupacarbrah-env.eba-bdahj3wp.us-east-2.elasticbeanstalk.com/api/v1/cars"
打開 Firefox 瀏覽器并再次訪問http://chupacarbrah-env.eba-bdahj3wp.us-east-2.elasticbeanstalk.com/ 。您應該會看到您發送的所有虛擬數據以及從 ChupaCarBrah 設備中提取的所有數據。
用你的新 ChupaCarBrah 設備破解汽車
我目前正在撰寫一系列關于汽車黑客攻擊的網絡安全文章。請繼續關注我的Medium 頁面,了解更多關于您今天剛剛構建的 ChupaCarBrah 設備可以做的所有事情。
- 使用Beaglebone和BluPants進行編碼
- BeagleBone Black的PCB板 0次下載
- 《Python編程入門》.pdf 0次下載
- LICi算法抵抗積分攻擊的相關實驗及分析 18次下載
- 基于概率屬性網絡攻擊圖的攻擊路徑預測方法 14次下載
- 基于SQAG模型的網絡攻擊建模優化算法 6次下載
- 基于SQAG模型的網絡攻擊建模優化算法 14次下載
- Python進行配置文件的教程免費下載 6次下載
- Python的學習和使用經驗說明 16次下載
- Python語言的特點和使用Python對XML文件的數據進行解析說明 6次下載
- 如何使用符號執行的python實現攻擊腳本分析平臺 11次下載
- 為什么選用python進行科學計算 3次下載
- python基礎教程之如何使用python進行環境搭建 32次下載
- beaglebone--Android開發教程(中文資料) 12次下載
- BeagleBone-Camera-Expansion-RevA 0次下載
- 使用Python進行Ping測試 232次閱讀
- 使用Python進行自然語言處理 246次閱讀
- 操作BeagleBone Black的方法 3157次閱讀
- 應對黑客攻擊的10個網絡安全小技巧 4639次閱讀
- 服務器遭到DDoS攻擊的應對方法 3352次閱讀
- 有效地預防DDoS攻擊的技術手段及解決措施 2863次閱讀
- 如何避免供應鏈受到網絡攻擊 1548次閱讀
- 是德科技推出汽車網絡安全計劃,可主動防范網絡攻擊 516次閱讀
- 一文盤點黑客最可怕的7種攻擊手段 4940次閱讀
- 黑客經常通過哪些端口進行入侵 1.2w次閱讀
- 詳細剖析黑客利用機器學習發起網絡攻擊的六種方式 6955次閱讀
- 防止電池被假冒--選擇能提供所需精度,防止克隆、黑客攻擊的電量計IC 5571次閱讀
- 黑客Dos命令大全_入門dos命令教程 3.3w次閱讀
- 怎么編寫ddos攻擊器ddos攻擊器源碼 1.8w次閱讀
- ddos攻擊能防住嗎?ddos攻擊預防方法分析 3.3w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多