欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何在Linux下設置錄音筆時間

 更新時間:2017年12月19日 08:34:24   作者:依云  
這篇文章主要介紹了如何在Linux下設置錄音筆時間的方法,有這方面需要的朋友跟著學習下吧。

買了一個錄音筆,效果比使用筆記本話筒錄音好多了還省電。當然啦,我也曾試過使用手機錄音,結果是,沒能錄多久就中斷了(Android 就是這么不靠譜)。

我的錄音需要記錄較為準確的時間信息。錄音筆怎么知道現(xiàn)在是什么時間呢?還好它沒有跟風,用不著聯(lián)網(wǎng)!

它帶了一個小程序,叫「錄音筆專用時間同步工具」(英文叫「SetUDiskTime」,可以搜到的)。是一個 EXE 文件,以及一個 DLL 文件。功能很棒,沒有廣告,沒有推薦,也不需要注冊什么亂七八糟的賬戶,甚至都不需要打開瀏覽器訪問人家官網(wǎng)。就彈一個框,顯示當前時間,確定一下就設置好時間了。這年頭,這么單純的 Windows 軟件還真是難得呢。

然而,它不支持我用的 Linux 啊。雖然我努力地保證這錄音筆一直有電,但是時間還是丟失了幾次,它的FAT文件系統(tǒng)也臟了幾次。每次我都得開 WinXP 虛擬機來設置時間,好麻煩。

Wine 是不行的,硬件相關的東西基本上沒戲。拿 Procmon 跟蹤了一下,也沒什么復雜的操作,主要部分就幾個 DeviceIoControl 調用,但是看不到調用參數(shù)。試了試 IDA,基本看不懂……不過倒是能知道,它通過 IOCTL_SCSI_PASSTHROUGH 直接給設備發(fā)送了 SCSI 命令。

既然跟蹤不到,試試抓 USB 的包好了。本來想用 Wireshark 的,但是 WinXP 版的 Wireshark 看來不支持。又嘗試了設備分配給 VBox 然后在 Linux 上抓包,結果 permission denied……我是 root 啊都被 deny 了……

那么,還是在 Windows 上抓包吧。有一個軟件叫 USBPcap,下載安裝最新版,結果遇到 bug。那試試舊版本吧。官網(wǎng)沒給出舊版本的下載地址,不過看到下載鏈接帶上了版本號,這就好辦了。去 commit log 里找到舊的版本號替換進去,https://dl.bintray.com/desowin/USBPcap/USBPcapSetup-1.0.0.7.exe,就好了~

抓好包,取到 Linux 下扔給 Wireshark 解讀。挺小的呢,不到50個包,大部分還都是重復的。很快就定位到關鍵位置了:

一個 0xcc 命令發(fā)過去,設備回復「ACTIONSUSBD」,大概是讓設備做好準備。然后一個 0xb0 命令,帶上7字節(jié)數(shù)據(jù)發(fā)過去,時間就設置好了。簡單明了,不像那些小米空氣凈化器之類的所謂「物聯(lián)網(wǎng)」,通訊加密起來不讓人好好使用。

那么,這7字節(jié)是怎么傳遞時間數(shù)據(jù)的呢?我首先檢查了UNIX時間戳,對不上。后來發(fā)送這個字串看上去挺像YYYYMMDDHHMMSS格式的,只是明顯不是當時的時間。啊,它是十六進制的嘛!心算了幾個,符合!再拿出我的 Python 牌計算器,確定年份是小端序的16位整數(shù)。

好了,協(xié)議細節(jié)都弄清楚了,接下來是實現(xiàn)。我原以為我得寫個 C 程序,調幾個 ioctl 的,后來網(wǎng)友說有個 sg3_utils 包。甚好,直接拿來用 Python 調,省得研究那幾個 ioctl 要怎么寫。

#!/usr/bin/env python3
import os
import sys
import struct
import subprocess
import datetime
def set_time(dev):
 cmd = ['sg_raw', '-s', '7', dev, 'b0', '00', '00', '00', '00', '00',
   '00', '07', '00', '00', '00', '00']
 p = subprocess.Popen(cmd, stdin=subprocess.PIPE, stderr=subprocess.PIPE)
 dt = datetime.datetime.now()
 data = struct.pack('<HBBBBB', dt.year, dt.month, dt.day,
      dt.hour, dt.minute, dt.second)
 _, stderr = p.communicate(data)
 ret = p.wait()
 if ret != 0:
 raise subprocess.CalledProcessError(ret, cmd, stderr=stderr)
def actionsusbd(dev):
 cmd = ['sg_raw', '-r', '11', dev, 'cc', '00', '00', '00', '00', '00',
   '00', '0b', '00', '00', '00', '00']
 subprocess.run(cmd, check=True, stderr=subprocess.PIPE)
def main():
 if len(sys.argv) != 2:
 sys.exit('usage: setudisktime DEV')
 dev = sys.argv[1]
 if not os.access(dev, os.R_OK | os.W_OK):
 sys.exit(f'insufficient permission for {dev}')
 actionsusbd(dev)
 set_time(dev)
if __name__ == '__main__':
 main()

相關文章

  • linux mpstat命令使用詳解

    linux mpstat命令使用詳解

    這篇文章主要介紹了linux mpstat命令使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • linux系統(tǒng)虛擬主機開啟支持SourceGuardian(sg11)加密組件的詳細步驟

    linux系統(tǒng)虛擬主機開啟支持SourceGuardian(sg11)加密組件的詳細步驟

    這篇文章主要介紹了linux系統(tǒng)虛擬主機開啟支持SourceGuardian(sg11)加密組件的詳細步驟,需要的朋友可以參考下
    2020-12-12
  • Centos7實現(xiàn)磁盤限額設置方法

    Centos7實現(xiàn)磁盤限額設置方法

    本篇文章給大家詳細分享了Centos7實現(xiàn)磁盤限額設置方法,對此有需要的朋友可以參考學習下。
    2018-02-02
  • Apache Calcite 實現(xiàn)方言轉換的代碼

    Apache Calcite 實現(xiàn)方言轉換的代碼

    這篇文章主要介紹了Apache Calcite 實現(xiàn)方言轉換的代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • Linux下的ssh安全防護問題

    Linux下的ssh安全防護問題

    這篇文章主要介紹了Linux下的ssh安全防護問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Linux中用rename命令批量替換文件名方法實例

    Linux中用rename命令批量替換文件名方法實例

    這篇文章主要介紹了Linux中用rename命令批量替換文件名的方法,文中詳細介紹了在Debian或者Ubuntu下批量替換文件名的語法和實例代碼,對大家具有一定的參考價值,需要的朋友可以們下面來一起看看吧。
    2017-04-04
  • telnet?Connection?refused端口不通如何處理

    telnet?Connection?refused端口不通如何處理

    本文介紹了telnet命令的基本用途及排查telnet連接拒絕的處理思路,telnet主要用于測試網(wǎng)絡連接,如遇到連接問題,可能是由于防火墻未開放或目的主機服務未啟動,文章通過實際例子解釋了telnet命令的作用,并提供了解決網(wǎng)絡連接問題的方法
    2024-10-10
  • linux nohup及tail-f用法

    linux nohup及tail-f用法

    這篇文章給大家分享了linux nohup及tail-f用法相關內容,有興趣的朋友可以參考學習下。
    2018-07-07
  • Linux命令搜索命令whereis與which的區(qū)別

    Linux命令搜索命令whereis與which的區(qū)別

    這篇文章主要介紹了Linux命令搜索命令whereis與which的區(qū)別的相關資料,這里舉例說明該如何區(qū)別他們之家的用法,需要的朋友可以參考下
    2017-08-08
  • Linux推薦使用Xfce桌面環(huán)境的8個原因

    Linux推薦使用Xfce桌面環(huán)境的8個原因

    今天小編就為大家分享一篇關于Linux推薦使用Xfce桌面環(huán)境的8個原因,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-09-09

最新評論