国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

如何在Linux下設置錄音筆時(shí)間

發(fā)布時(shí)間:2023-05-26 09:25 來(lái)源:西部 閱讀:169 作者:西部數碼 欄目: 虛擬主機 歡迎投稿:712375056

服務(wù)器

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

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

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

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

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

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

那么,還是在 Windows 上抓包吧。有一個(gè)軟件叫 USBPcap,下載安裝最新版,結果遇到 bug。那試試舊版本吧。官網(wǎng)沒(méi)給出舊版本的下載地址,不過(guò)看到下載鏈接帶上了版本號,這就好辦了。去 commit log 里找到舊的版本號替換進(jìn)去,http://wap.friendlycc.com.cn/host/

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

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

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

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

#!/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()

更多關(guān)于云服務(wù)器,域名注冊,虛擬主機的問(wèn)題,請訪(fǎng)問(wèn)特網(wǎng)科技官網(wǎng):wap.friendlycc.com.cn

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

A级毛片100部免费看| 大黑人交XXXX18视频| 一本久道久久综合狠狠躁AV| 久久精品国产自在天天线| 亚洲AV永久无码精品国产精品| 丰满少妇高潮惨叫久久久|