想在 mp3 隨身聽聽歌,只有找到 flv 或 mp4 的影片,去查看其音效的編碼 (滑鼠右鍵->屬性->音效/視像) 大多是 MPEG-4 AAC audio。我用 ffmpeg 抽出聲音部份,再用 mplayer 轉成 wav 檔,再用 lame 轉成 mp3,指令如下:
ffmpeg -i xxx.flv -acodec copy xxx.aac
mplayer -vc null -vo null -ao pcm:fast -ao pcm xxx.aac -ao pcm:file=xxx.wav
lame xxx.wav
應該有較簡單的方法,例如 ffmpeg 抽出聲音時,直接轉成 mp3 儲存,但需要 ffmpeg 編譯時支援 mp3 編碼。
參考:
2011年12月28日 星期三
2011年12月16日 星期五
第三者 Ethernet 抓封包
![]() |
| (修改自 Wireshark 的圖片) |
如此一來,就可能需要其它特別的硬體配合,例如找以前舊式的 Ethernet Hub、找支援 monitoring 或 mirroring 的高階 Ethernet switch、有兩個 Ethernet 介面的電腦、使用 Passive Ethernet TAP、使用 Passive Ethernet Hub 等。
也有純粹軟體的解法,一種方式是利用 ARP Poisoning (或稱 ARP spoofing),放 ARP 毒藥給雙方,分別告訴雙方的對方是自己的 MAC 位址,掩蓋正常的 ARP,這樣雙方之間的封包就會送到自己的 MAC 位址,自己再分別轉送來維持他們通訊暢通,自己也順便「觀察」。程式 ettercap 有支援,這是我認為最方便的方式。
使用步驟如下:
- 安裝 ettercap,我安裝個板本是 NG-0.73
- sudo apt-get install ettercap-gtk
- 執行 ettercap
- 「Sniff」→「Unifed Sniffing」,選自己的網卡。 (不知為何,此步驟會將 /proc/sys/net/ipv4/ip_forward 設為 0)
- 「Hosts」→「Scan for hosts」。會對子網上每個 IP 發 ARP 詢問。
- 「Hosts」→「Hosts lists」,將雙方分別「Add to Target 1」及「Add to Target 2」。
- 「Mitm」→「Arp Poisoning。此時開始假冒雙方,會先 ping 雙方,再多次 ARP 雙方,雙方間的封包就會跑過來了
- 啟用 IP 轉發功能,維持被觀察機器的通訊暢通。(似乎不能直接 sudo 執行,所以先變成 root 再執行)
- sudo -i
- echo 1 > /proc/sys/net/ipv4/ip_forward
- exit
- 此時 Wireshark 可以抓到雙方間的封包,封包會看到兩份,一份是進來的,一份是轉發出去的,兩者的來源 MAC 位址跟目標 MAC 位址是不同的。
- 停止 Arp Poisoning
- 在 ettercap,「Mitm」→「Stop mitm attack(s)」。
註:ettercap 也有 Windows 版,在 http://sourceforge.net/projects/ettercap/files/unofficial%20binaries/windows/ 下載。
註:Mitm 是 man-in-the-middle。
註:由此可知,你的封包是很容易被觀察的,即使硬體都沒動到。但用 ARP Poisoning 也不是都能成功,機器的 ARP 表改用靜態的、router 紀錄並檢查每個 IP 位址的 MAC 位址等可以防止封包被導向。監聽是否有異常的 ARP 回應也可以發現。
註:還有別的軟體方式,例如 MAC Flooding,用封包把 Ethernet switch 的 MAC Table 灌爆,而將所有封包都 broadcast 處理。dsniff 等軟體有支援這種功能。
參考:
- Wireshark: Ethernet capture setup (說明許多抓封包方式)
- Ettercap MITM攻擊詳細教學 (裡面所言並不是所有步驟都需要)
延伸閱讀
- 如何防止 ARP 詐欺或攻擊? (不用 DHCP 取得位址,IP 位址綁 MAC 位址)
- Passive Ethernet TAP (傳跟收分別接到另兩個 Ethernet 界面的收,兩個都接到一台有兩個 Ethernet 界面的電腦,將兩個 bonding/trunking/bridge 在一起來同時看雙向資料)
- Passive Ethernet Hub (大概只支援 10 Mbps half duplex)
2011年12月14日 星期三
非 root 執行 wireshark 抓封包
wireshark 安裝完,需要用 root 身份才能執行抓網路介面的封包,現在要改成不必用 root 身份:
參考:
- sudo dpkg-reconfigure wireshark-common
- Should non-superusers be able to capture packets? 選「是」,會產生 wireshark 群組
- sudo vi /etc/group
- 在 wireshark 群組加上自己
- 重新登入
參考:
- /usr/share/doc/wireshark-common/README.Debian
2011年12月11日 星期日
git grep 的自動換行
git grep 查詢字串樣式時,超出行寬的字就看不到了,如何讓他自動換行,看到整行的字呢?執行
就可以了,這個動作會在 ~/.gitconfig 的 [core] section 加一行
git 的換頁程式是用 less,而控制 less 行為的環境變數 -- LESS,預設為 FRSX。其中 S 是削減超過行寬的字,要把這項設定移除。
參考:core help config 的 core.pager
git config --global core.pager "less -+FRSX -FRX"
就可以了,這個動作會在 ~/.gitconfig 的 [core] section 加一行
pager = less -+FRSX -FRX
git 的換頁程式是用 less,而控制 less 行為的環境變數 -- LESS,預設為 FRSX。其中 S 是削減超過行寬的字,要把這項設定移除。
參考:core help config 的 core.pager
2011年12月4日 星期日
VirtualBox 使用 USB 裝置
我的主端 (Host) 作業系統是 Ubuntu 11.10,需在 /etc/group 的 vboxusers 群組成員加上自己。
如要使用 USB 2.0,還需要到 virtualbox 網站下載 Oracle VM VirtualBox Extension Pack,執行 VirtualBox 安裝。
延伸閱讀
如要使用 USB 2.0,還需要到 virtualbox 網站下載 Oracle VM VirtualBox Extension Pack,執行 VirtualBox 安裝。
延伸閱讀
- 本站 Virtual Box 主文:VirtualBox 安裝及使用
- http://fcamel-life.blogspot.tw/2011/08/virtualbox-usb.html
訂閱:
意見 (Atom)
SIP header Via
所有 SIP 訊息 都要有 Via,縮寫 v。一開始的 UAC 和後續途經的每個 proxy 都會疊加一個 Via 放傳送的位址,依序作為回應的路徑。 格式 sent-protocol sent-by [ ;branch= branch ][ ; 參數 ...] s...
-
列出目錄的檔案。 opendir(目錄) 或 fdopendir(fd) 開啟一個 directory stream (DIR),包含此目錄的所有檔案 (含目錄)。readdir(DIR *) 自 directory stream 取得一個檔案,用 struct direct ...
-
-l:輸出 Long Listing 格式,包括下列資訊: 檔案 type and permissions:有 10 個字母,第 1 個字母是 file type: -:一般檔案 b:block device c:character device d:direct...
-
APRS(Automatic Packet Reporting System)字面翻是「自動封包回報系統」,其實是「自動位置回報系統』,是業餘無線電結合全球衛星定位系統 (GPS),以 AFSK AX.25 通訊模式回報給世界各地的 APRS 接收電台,電台再透過網際網路上傳到 ...
