iWIN 必須被解散!

Weil Jimmer's BlogWeil Jimmer's Blog


Category:Experience

Found 49 records. At Page 2 / 10.

使用 OpenWrt 與 WireGuard 實現 NordVPN、雙層 NAT、特定區域網路 VPN 與 Kill Switch
No Comments

發布:
更新:2023-08-31 21:19:07

前言

繼上次玩 OpenWrt 的第三篇,這次是設定 WireGuard VPN,我查了不少文章,感覺很少人遇到我這問題,我覺得應該是我的網路配置的關係,在這邊分享踩坑經驗出來。

如果你的網路配置比較單純的話,不需要做太多設定,我是比較特殊一點,搞了很複雜的網路環境。

網路環境

首先介紹我家網路配置,多了交換機後有點複雜,下圖現實接線的示意圖,圖中的顏色用以區分網段,而粗細用以區分層級。

目前會想這樣設計,主要是想要隔離我家人與我的網路環境,讓他們干擾不到我,其實一台交換機就夠了。

不過交換機可沒有強大的防火牆阿,軟路由的防火牆才是真的強大。而且只有軟路由才可以辦得到我這複雜的需求。

下面一張圖是化簡後的網路布局,把交換器拔掉(實際上是接著的)的虛擬網路圖。

ASUS 硬路由在這邊是一級路由,而軟路由則是二級路由,透過軟路由的虛擬區網,已經做到兩個區域網路各自隔離(LAN 藍色、LAN2 紅色)。

目的

我的主要目的是想要我常用的電腦,也就是 LAN(藍色),加上 VPN,使我連線到公網是走 NordVPN 的路線。

不過這步有點小麻煩,因為 NordVPN 並沒有提供 WireGuard 的金鑰,但你還是有機會可以實現。

取得 NordVPN 的連線資訊

第一步,先在 Linux 環境中安裝工具包以及 NordVPN。

sudo apt install wireguard curl jq net-tools
sh <(curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh)

第二步,連線到 NordVPN。

# 登入 NordVPN
sudo nordvpn login
# 設定協議
sudo nordvpn set technology nordlynx
# 連線
sudo nordvpn c 

第三步,取得金鑰(公鑰與私鑰)。

# 顯示私鑰
sudo wg show nordlynx private-key
# 顯示公鑰 與 伺服器資訊
curl -s "https://api.nordvpn.com/v1/servers/recommendations?&filters\[servers_technologies\]\[identifier\]=wireguard_udp&limit=1"|jq -r '.[]|.hostname, .station, (.locations|.[]|.country|.city.name), (.locations|.[]|.country|.name), (.technologies|.[].metadata|.[].value), .load'

上圖是我在 Kali Linux 中輸入指令的示意圖。

最後記得要中斷 NordVPN 的連線。

sudo nordvpn d

設置 OpenWrt

如果你的 OpenWrt 還不支援 WireGuard,請先安裝。

opkg install kmod-wireguard luci-app-wireguard luci-proto-wireguard wireguard wireguard-tools

設置 WireGuard

如果前面都沒問題,這裡就是關鍵步驟了。還記得先前拿到的私鑰和公鑰嗎?

第一步,開啟 OpenWrt 接口畫面 (Interface)。

第二步,添加新的接口,通常取名為為 wg0。按照你習慣設定即可。選好協議 WireGuard VPN 點添加。

第三步,一般設定中,填入你剛剛取得的私鑰,不要點到「生成密鑰」

IP 地址,就從你剛剛連線 NordVPN 的介面卡中取得(ifconfig)。

設定好後,就可以開啟下個介面,對端 (EndPoint),我一直覺得這翻譯很怪,總之就是遠端 Server 的意思,路由器本身當 Client 端連上 遠端 VPN Server。

第四步,填入剛剛取得的公鑰,允許的 IP 輸入 0.0.0.0/0

路由允許的 IP 這裡是一個大坑,如果你的網路環境很單純,直接打勾就可以了。這邊我暫時不打勾,因為我要自己設定路由。

如果你的軟路由是二級路由器,也不應該打勾,因為你會到不了 Gateway ,0.0.0.0/0 會路由你的 Gateway 地址,導致迴圈,封包出不去外網,至少我這邊的情況是這樣。

端點主機就填入 NordVPN 的主機位置。

端口保持預設值 51820,Keep-Alive 設定 25。

設定到這邊,VPN 的部分基本上就完工了!如果沒有生效,請重新開機。只要有動到路由表,建議都重新啟動軟路由會比較好。

路由表設定

# 新增路由表300,設定 wg0 路由 0.0.0.0/0
uci add network route
uci set network.@route[-1].interface="wg0"
uci set network.@route[-1].target="0.0.0.0"
uci set network.@route[-1].netmask="0.0.0.0"
uci set network.@route[-1].table="300"

# 新增 IP 網路規則,LAN 接口查詢路由表300
uci add network rule
uci set network.@rule[-1].in="lan"
uci set network.@rule[-1].lookup="300"

# 儲存網路規則 並 重啟網路
uci commit network
/etc/init.d/network restart

防火牆設定

首先一般情況,應該設定 lan 可以轉發到 wan 以及 wg0,如下圖。

到這裡,就算是完工了。但如果你要設定 Kill-Switch,就必須要把 wan 移出允許轉發到的目標區域。

設定防火牆 Kill-Switch (選)

要開啟 Kill-Switch 就必須把 lan 轉發到 wan 的選項移除掉,只能轉發到 wg0,這樣 lan 不走 VPN 就永遠到不了外網。

這是示意圖,直接把 LAN 到 WAN 的路由,用防火牆轉發規則擋掉,這樣 LAN 就出不去。

檢查

現在的 IP 應該是剛剛設定的 VPN Server 的 IP,如果不是,代表你某步驟做錯。

如果你有開啟 Kill-Switch,可以連上 wan 確認 Kill-Switch 有沒有工作。在這裡我的 WAN 是 192.168.0.1 (一級路由)。

或是你可以停止 wg0 接口,當 wg0 接口被切斷,那你會默認轉發到 wan,如果你可以成功上網,而且 IP 是你原本的真實 IP,那麼代表你 Kill-Switch 沒有設定成功。

測速

到了最令人振奮的時刻,軟路由進行對岸所謂的「科學上網」,最重要的就是性能了,根據你的軟路由 CPU 的好壞,可以決定你的網速可以跑到多快。

聽說 x86 CPU 是很不錯的,所以我也選擇了 Intel 的 J4125。

下面是我的測速結果:兩次測速,下載約 470 Mbps、上傳約 74 Mbps。

如果沒有連線 wg0,使用 wan 接口上網,(無 VPN)的結果如下,大概是直接跑滿目前申裝的網路,500 Mbps 上/下傳 。

參考資料:
https://www.ivpn.net/setup/router/openwrt-wireguard/
https://hiy.tw/2021/06/nordvpn_wireguard/

其他文章:
軟路由初體驗 在 PVE 8.0 上安裝 OpenWrt 22.03
使用 OpenWrt 踩坑經驗與心得 設置虛擬區域網路進行隔離
在 OpenWrt 設定 WireGuard VPN 白名單繞過本地網路 並且維持 Kill Switch 開啟

By Weil Jimmer


This entry was posted in General, Experience, The Internet, OpenWrt By Weil Jimmer.

使用 OpenWrt 踩坑經驗與心得 設置虛擬區域網路進行隔離
No Comments

發布:
更新:2023-08-27 21:51:49

前言

這次我就不說太多廢話了,接上篇文章的故事。

其實光是搞這個軟路由的所花的精力應該遠遠大於你省下的錢,就純粹是為了自己動手搞事才會弄這個東西,總感覺有點不划算。

在上次的經驗中,光是韌體的選擇就五花八門了,而且我還踩了不少出錯的點,例如,我下載的版本是 openwrt-x64-R23.4.1-squashfs-combined-efi.img,紅字重點。

那就不是常規的安裝方式,在用 PVE 建立虛擬機的時候,就要選 UEFI,當初根本想都沒想,後來上網查,看到別人說使用沒有 EFI 就正常。

可是多數版本都是阿,我也是找好久文章才翻到有篇提到要設定,覺得是知識盲區。

話說回來,你選的版本如果是 squashfs 版本,則是可以自由延伸你的硬碟大小的。例如用 PVE 內建的就可以直接延伸了。

後來我試了好幾套,因為我想設置 VLAN 阿!結果沒想到新版本的 OpenWrt都不支援。被拿掉了。

我還特別去裝了 L大的版本。想說不可能沒有啊。裝完才發現沒有支援 VLAN,白費時間。

安裝

後來,又去查了第二套,結果我也在上面浪費了許久時間。嘗試安裝了 immortalwrt-21.02.6-x86-64 。

這次是有支援 VLAN 功能的,但問題是沒想像中那麼簡單。因為 OpenWrt 似乎在 18 以上的版本就直接拔掉 Switch 的功能,只能用 Bridge 的方式去橋接網路裝置。

而這個正是很大的坑,試滿久最後覺得非常古怪,總感覺不是我的問題。總之,其實也不太推這版本就是。

裝這個版本的時候,看網路上還有透過打指令的方式重新調整硬碟大小的覺得滿奇特的,在這邊附上他用的指令,做為筆記。

#進入資料夾
root@pve1:/var/lib/vz/template/iso#

#填入 2GB 的零資料
dd if=/dev/zero bs=1M count=2048 >> your.img

#讀取 img 到 parted 的工具中
parted your.img 
#列出分區
(parted) print
Model:  (file)
Disk /var/lib/vz/template/iso/immortalwrt-21.02.6-x86-64-generic-squashfs-combined-efi.img: 3004MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name                  Flags
128     17.4kB  262kB   245kB                                      bios_grub
 1      262kB   17.0MB  16.8MB  fat16        EFI System Partition  boot, esp
 2      17.3MB  856MB   839MB                                      msftdata

(parted)

#重新調整大小
resizepart 2 100%

最後再匯入至 PVE 虛擬機。


# 100 是你建立的虛擬機 ID。
qm importdisk 100 immortalwrt-21.02.6-x86-64-generic-squashfs-combined-efi.img local-lvm

後來研究了頗久,還是決定直接重裝一版新的,也就是我目前的版本!

現在體驗其實還滿良好的,雖然最終放棄搞那個鬼東西,但我有想到替代方案,頂多就是重新配置一下網路。也許以後有機會再回來研究,暫時先這麼做。

按照慣例,安裝完硬碟,開機,首先原則上,因為網段不一樣,所以沒辦法直接進,除非改網卡,有點麻煩。

所以這邊我都會先用 PVE主控台進去,而且我後來才發現如果在 NoVNC 畫面中按下某些鍵會被擋的話,只要輸入 Ctrl + Q 就可以關閉,接著繼續打指令都不會被干擾到,之前輸入 A或S之類的,都彈出個視窗,害我沒辦法輸入進去,有夠靠杯,我還以為是 bug,看起來是 feature,有夠廢。

root@OpenWrt:~# vim /etc/config/network

進入修改 network 檔案裡面的 interface,把 WAN、LAN 所用的 ETH 接口定義好。

root@OpenWrt:~# vim /etc/config/firewall

默認沒有裝 Nano 有點不爽,只能用 Vim,好險還有 Vim 可以用,不然真的很難改。

config defaults
        option syn_flood '1'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option fullcone '1'
        option flow_offloading '1'
        option flow_offloading_hw '0'

config zone
        option name 'lan'
        list network 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'

config zone
        option name 'wan'
        list network 'wan'
        list network 'wan6'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'

如果把路由器的 WAN 插到另一台路由器的 LAN 上,就不用改網段,但是預設值都會擋 WAN。所以,只要把 WAN 的 INPUT 改成 ACCEPT 就可以了。

然後別忘記要重啟網路服務,不然配置不會應用,除非重開機。


root@OpenWrt:~# /etc/init.d/network restart
root@OpenWrt:~# /etc/init.d/firewall restart

接著就可以直接訪問 OpenWrt 的管理網頁。

光是看到這介面,就覺得挺不錯的,直接下定決心就用它了。

原本想搞 VLAN 的,後來一直遇到鬼問題,覺得奇怪,有時候啥都沒改重開機就正常了,讓我覺得很訝異,見鬼了,剛好現在農曆七月。

搞到後來,覺得有可能就是硬體和內核方面的問題,乾脆放棄。更改一下網路模式,目前是弄個雙網卡,直接設置兩個網橋不同的 LAN,這樣也算是差不多的概念,而且沒毛病,更好設置,不用管那個 Tag。

設定

第一步就很簡單,直接在設備 (Device) 建立一個網橋,添加 ETH1,非常簡單。

記得關掉 IPv6,很沒意義的功能,通常也不會用到,而且說不定就是因為這東西搞事。

添加完後,再去接口 (Interface) 建立 lan2 接口,設置成靜態 IP。

建立完記得設置 IP 地址,網段,那些東西,然後不要忘記要加入 DHCP,這個沒加的話,LAN 插上去不會配發 IP 自然就沒網路。

數量那些維持預設就好了,基本上沒差,不用動。

然後是坑人的地方,你以為這樣就完了嗎?還有防火牆阿!

要建立一個新規則,比如取名為 lan2,編輯規則,轉發到 WAN,如果是設置 VLAN 其實也是同樣的道理,如果沒有轉發到 WAN,那基本上等於無網際網路的純內網,如果要架設隔離公網的環境是可以考慮這麼做。

總結

基本上你搞完橋接,新增接口,設置 DHCP,防火牆也設定了,你的 WAN 也正常,那理論上就可以 Work。

像我這情況就是 ETH0 (LAN) 和 ETH1 (LAN2),兩邊是互相隔離的。

由於我網孔其實很少,配一配基本上就沒得用了。下面是我的架構圖,只剩下一個孔,QQ。

端口同個顏色代表同個區網,ETH3 是我 PVE 會用到的網路口,暫時不會拔掉,然後交換機也要設定 Port-based 的 VLAN。不然讓我自己建立的虛擬網路和硬路由疊在一起。

同時有兩個 DHCP 伺服器會出錯。

雖然感覺有交換器就夠了。根本不需要軟路由啊!不過軟路由上面的防火牆功能似乎非常強大,我覺得如果會用算是很不錯的工具。

相對於交換器就少得可憐,幾乎沒什麼可以設定的,除了端口隔離之外就沒甚麼有用的東西了。

而且軟路由還有一堆別人做的插件安裝包,可以一鍵下載。用不用得到是一回事,有總比沒有好。(雖然都是大陸貨,要小心後門。)

其他文章:
軟路由初體驗 在 PVE 8.0 上安裝 OpenWrt 22.03
使用 OpenWrt 與 WireGuard 實現 NordVPN、雙層 NAT、特定區域網路 VPN 與 Kill Switch

By Weil Jimmer


This entry was posted in General, Experience, The Internet, OpenWrt, Tools By Weil Jimmer.

辨識 mp3 文件 真實比特率 碼率 頻譜分析
1 Comments

發布:
更新:2018-05-30 18:19:00

今天突然想到一件事。身為一個音樂收藏癖的人,常常對音樂本身的比特率很感興趣,尤其是無損音樂FLAC格式,但是,這產生一個問題,會有一些人很不肖的把一些MP3檔案轉檔為FLAC,然後告訴別人這是無損音樂,雖然是轉檔後是無損檔案,但實際上音質根本就是原本的有損MP3的音質,很難聽,也有明明是 128 kbps 的 mp3 檔案轉成 320 kbps,然後讓人以為這檔案很高音質。

於是我就想到,到底要怎麼辨識,去網路上稍微查過了一下,感覺沒啥麼中文文章討論這個,我就來發一個,順便當個筆記,以後自己要查也方便。

首先先去下一個具有頻譜分析的軟體,例如 Spek,下載完成後開啟要辨識的文件,以人工方式肉眼判斷。截斷的頻率位置。就可以大概猜得出這文件的原始音質如何。

MP3 file, Bitrate 32 kbps. Cut-off at 4.5kHz.
MP3 file, Bitrate 48 kbps. Cut-off at 7.5kHz.
MP3 file, Bitrate 64 kbps. Cut-off at 10.3kHz.
MP3 file, Bitrate 80 kbps. Cut-off at 11.2kHz.
MP3 file, Bitrate 96 kbps. Cut-off at 11.5kHz.
MP3 file, Bitrate 112 kbps. Cut-off at 13.5 kHz.
MP3 file, Bitrate 128 kbps. Cut-off at 16 kHz.
MP3 file, Bitrate 160 kbps. Cut-off at 17 kHz.
MP3 file, Bitrate 192 kbps. Cut-off at 19 kHz.
MP3 file, Bitrate 320 kbps. Cut-off at 19.5 kHz.
M4A file, Bitrate 500 kbps. Cut-off at 22 kHz.

上表是參考別人數據加上我自己實驗的結果,可以從表的數據知道實際上的 MP3 壓縮有損後會清掉的部分高頻率的部分。所以大概可以得知是何種音頻轉檔而來,由低碼率轉高碼率的檔案,轉檔過後已經切掉的部分是不會復原的,而且還可能使音質變更差。

例如:我們可以從下圖看到平均被切掉的部分是 16k 赫茲,根據查表得出可能原始檔案為 128kbps 的檔案,不過現在已經被轉成 320 kbps。算是一個高音質的檔案。

第二個例子,平均截斷的部分在 9 或 11 kHz,可以知道這檔案原始的碼率絕對不會是 128 kbps,一定比較低,原始檔案極有可能是 96/80/64 kbps。可以和下圖同首音樂的 FLAC 無損音質檔案進行比對。

下圖是 FLAC 無損音質,理應是全頻顯示,不會有截斷的問題。只有有損壓縮才會刪掉一些高頻內容。(因為人耳聽不太出來也不太需要。)

補充再來幾個例子,下面的截圖是WAV無損無壓縮的檔案格式,上面的頻譜高頻區域就全頻顯示沒有任何截斷的問題。

接著,下圖是我用音訊編輯軟體重新輸出為有損音質的 MP3 檔案,128 kbps。可以由頻譜分析明顯看到大概在 16 kHz的地方被截斷,而查表的結果正好是 128 kbps,與實際音訊檔的比特率吻合。所以算是比較實際的檔案。

之後我又把那個 128 kbps 的 mp3 檔案轉檔為 320 kbps 的 mp3 檔案,頻譜分析圖如下:

幾乎沒什麼變化,可以看得出音質沒啥麼改變,而且高頻的部分依舊是缺失的。

總結:

當然這個方法不一定絕對管用,但是拿來識別一般的檔案已經足夠了。有些檔案本身就沒有高頻區域,比如很單純的鋼琴曲,不會有到 20 kHz 的音,所以頻譜分析上方高頻區本身都是黑的,這很正常,檔案也的確很可能是 320 kbps,主要要看的是「截斷區」,比如原本應該有像山峰一樣尖尖的區塊,到了某個頻率後突然被砍斷一樣,那就很可能是轉檔造成的截斷。這時候這個方法判斷原始檔案比特率就很準確了。

最後,本方法本身不保證一定正確。主要還是要靠耳朵去仔細聆聽其中的差異吧。

參考資料:
https://thesession.org/discussions/19642
https://www.reddit.com/r/hiphopheads/comments/2t88ne/a_quick_guide_to_checking_the_real_bitrate_of/

By Weil Jimmer


This entry was posted in General, Experience, Note By Weil Jimmer.

域名的故事
No Comments

發布:2018-01-04 00:49:42

前言:最近會想寫這篇文章都是因為看到網路上有別人在講他們的故事,讓我有感而發。

本站在 2012 年就已經成立了,那時候還是在使用 TWBBS 免費自由網域,隨意以電腦資訊為主題想了一個名稱「0000」,於是乎註冊了「0000.twgogo.org」,至本文章發布日,此網域仍舊可以使用,我甚至心想乾脆就以之為永久網域吧!不料自由網域也即將關停長達十八年的服務,讓我心中頗有不捨。

在2016年二月前,我一直都是採用自由網域,不過一直期盼能夠擁有 .com 網域,不過頂級網域並非免費的,而且我也沒管道不知道要怎麼付款,再加上那時候都還是國中國小階段,怎麼可能有錢付…,故只好用免費的架站。直到高中三年級才擁有了自己的第一個網域「00wbf.com」,原本是想繼承「零」的特性,可是四個零早早就被別人註冊走,我也不想要太長的網域名稱,想註冊 wbf 相關類的網域,結果大多都被註冊走了,只好變成 00wbf 這個名稱。使用這網域將近九個月時,我已經開始厭惡了,因為開頭是數字再加上後面英文輸入不太好打,要嘛就全數字或全英文,而且好像也不好記憶。

因此,2016年十一月,我又在域名註冊網站上閒晃,一直在想一個好名稱,喜歡的,有代表性的,結果當我查到 weils.net 時,發現沒有人註冊!讓我突然心一喜,就決定是這個域名了,可以直接翻譯成 Weil's Net,讓我覺得還可以接受,雖然我比較想要 weil.net,不過都被別人註冊走了,當初註冊完後就開始祕密佈署,等到正式測試完後再取代掉原本網域。

原以為這樣就可以鬆一口氣,沒想到我竟然有一點不捨,第二年,我還是又續約了 00wbf,心想這種網域萬一落入他人之手,是不是可以冒用我的名義?開始在想:換網域的缺點似乎不只有網址改變,不只有影響SEO,最重要的是要保持著原本的網域…我還在想,到底何時要放棄舊的網域,目前沒有什麼定案。

以上都是講我自己的私人網域,其次也有註冊比較公用性質的,個人比較重視公私分明,能盡量不合一就不合一。同樣在 2012 年註冊了名為「birch.twgogo.org」這個名稱,birch 是白樺樹的英文,原本也是一直架著論壇好幾年,直到後來主機一直有問題,再加上自己本身無心管理,才暫時放棄管理,但網站一直都是 Online 的。而且我也註冊很多個自由網域指向同個 IP,同時我還註冊了「birch.idv.la」(之前在香港IT聯盟註冊的,現在已停止服務)。

後來私人網域已經有了頂級網域後,我認為公用域名應該也要是頂級域名,才可以凸顯其專業,原先有拿到免費優惠碼,故註冊一年的 wbft.asia,不過是在我不太喜歡的網站註冊的,覺得續約麻煩,轉移又要錢,再加上不喜歡 asia 這個後驟,即使 asia 也是 gTLD,我依舊老古板的認為要用傳統域名比較專業,於是註冊了 wbftw.org,同樣的,為何不註冊 wbft.org,我也是很想阿,不過已經被別人註冊走了,我甚至想註冊 wbf 就好,最後還是決定使用 wbftw.org。

「wbftw」可以直接解釋為「wbf」(白樺論壇)與「tw」(台灣),也可以解釋成白樺論壇網頁,多一個 w,跟我自己的私人網域一樣,總是多出不想要的字母,我個人是對團隊網域沒有任何不滿,就這樣了,覺得取名也不會太爛,是有點難記但很獨一無二,原本想註冊 WBFTeam 礙於太長了,就不考慮註冊那麼長的網域,於是就沿用此網域至今。不知道何時,白樺論壇才能正式再度 Online。

網域這種東西,不僅僅象徵了品牌、唯一性,一旦註冊了就影響深遠,大家都是記憶這個名稱、這個網址,一旦換網域問題真的很多!尤其是當舊網址已經散播出去時,要通知所有大大小小的網頁去修改網址是非常困難的!

By Weil Jimmer


This entry was posted in General, Experience, Mood, The Internet, Note By Weil Jimmer.

BadUSB 初體驗 Arduino Duckuino Hid Keyboard Attack
No Comments

發布:
更新:2017-12-24 19:36:21

最近不知道為啥,突然心血來潮一直想要來編譯 USB隨身碟,做一支 BadUSB,遺憾的是一直找不到目標型號的控制器(Controller)。後來搜尋,沒想到網路上竟然已經有賣類似功能的東西了!

BadUSB 顧名思義就是壞的 USB 碟,會執行一些程式碼,可能會讓電腦受損,而這類攻擊都是需要實體插入電腦裡面的,並且,防毒軟體有很大機率是掃描不到,程式碼都是在閃存控制器(Flash Memory Controller)裡面,除非很底層的軟體,否則幾乎是碰不到那區塊。

雖然一般隨身碟拿來修改的話,價格比較便宜,但是不太好操作,真正的 Rubbery Ducky 又太貴了,買不起。網路上的 Arduino 做成的微型控制器比較便宜一點。很久以前也有萌生用 Arduino 實作的想法,不過太醜了,就是一塊電路板,沒有殼,網路上找不太到賣殼的,而現在我找到的真的很精美,不是 MicroUSB 所以連轉接都不用,於是乎買來體驗一下。僅僅是測試,至於啥麼用途,可以自由發揮,例如:騙別人這是普通的隨身碟之類的,插上去就立刻變身成鍵盤執行惡意代碼。

上圖即是我網購的帶有 Arduino ATmega32U4 控制器的 USB,外觀就像正常的隨身碟,不是所有 Arduino 都可以當成鍵盤用,例如 Arduino Nano 就不行。

這樣一來就可以把 Arduino 當成 Rubbery Ducky 使用,直接實行 Hid Keyboard Attack。網路上已經有教學文章可以直接將 Rubbery Ducky 的程式碼 轉為 Arduino專用的程式碼。這樣就不太需要自己修改。

可以參考:https://github.com/Nurrl/Duckuino

DELAY 2000
GUI r
DELAY 100
SHIFT
STRING cmd
ENTER
DELAY 100
STRING shutdown -t 0 -y -s
ENTER

以上是我編譯的 Script Example,用途是立刻將電腦關機,當我實際運行時有遇到不少麻煩,好像開不了 Windows Key + R Key,最後解決方法是把

Keyboard.press("r"); 
換成
Keyboard.press('r');

就這個單雙引號害我 Debug 好久,加上 Delay 好像也沒用。覺得奇特。

運行結果如下方影片:

By Weil Jimmer


This entry was posted in Arduino, C, General, Experience, Functions, Note By Weil Jimmer.

上一頁  1 2 3 4 5 6 7 8 9 10 /10 頁)下一頁 最終頁

Visitor Count

pop
nonenonenone

Note

支持網路中立性.
Support Net Neutrality.

飽暖思淫欲,饑寒起盜心。

支持臺灣實施無條件基本收入

歡迎前來本站。

Words Quiz


Search

Music

Blogging Journey

4204days

since our first blog post.

Republic Of China
The strong do what they can and the weak suffer what they must.

Privacy is your right and ability to be yourself and express yourself without the fear that someone is looking over your shoulder and that you might be punished for being yourself, whatever that may be.

It is quality rather than quantity that matters.

I WANT Internet Freedom.

Reality made most of people lost their childishness.

Justice,Freedom,Knowledge.

Without music life would be a mistake.

Support/Donate

This site also need a little money to maintain operations, not entirely without any cost in the Internet. Your donations will be the best support and power of the site.
MethodBitcoin Address
bitcoin1gtuwCjjVVrNUHPGvW6nsuWGxSwygUv4x
buymeacoffee
Register in linode via invitation link and stay active for three months.Linode

Support The Zeitgeist Movement

The Zeitgeist Movement

The Lie We Live

The Lie We Live

The Questions We Never Ask

The Questions We Never Ask

Man

Man

THE EMPLOYMENT

Man

In The Fall

In The Fall

Facebook is EATING the Internet

Facebook

Categories

Android (7)

Announcement (4)

Arduino (2)

Bash (2)

C (3)

C# (5)

C++ (1)

Experience (49)

Flash (2)

Free (13)

Functions (36)

Games (13)

General (56)

HTML (7)

Java (13)

JS (7)

Mood (24)

Note (30)

Office (1)

OpenWrt (5)

PHP (9)

Privacy (4)

Product (12)

Python (4)

Software (11)

The Internet (23)

Tools (16)

VB.NET (8)

WebHosting (7)

Wi-Fi (5)

XML (4)