Windows10の検索ボックスでWeb検索をおこなわないよう設定する

OS: Windows 10 Pro version 1903

素早くバッチファイルを呼び出して実行したりメモ帳のようなアプリケーションを起動するのに誠に有用な検索ボックスであるけれども、検索結果にWeb検索の候補が押し寄せてくるのが大変煩わしいからこれを無効にする。

まず検索ボックスから regedit で以って検索してレジストリエディタを起動する。

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Search へ移動して新規にDWORD値を追加し BingSearchEnabled と名付ける。データは0のままで宜しい。次いでCortanaConsentのデータも0にする。

改めて検索ボックスから検索をおこなうとWeb検索は最早機能していない。すっきりとして清々しい心持ちである。設定を施しても変化がない事もあったけれどサインインし直すと反映されていた。

コマンドプロンプトから一息に実施するならこういう具合である。

>reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Search" /v BingSearchEnabled /t REG_DWORD /d 0 /f
>reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Search" /v CortanaConsent /t REG_DWORD /d 0 /f

参考:
Win 10編: 検索ボックスから「ウェブ」を取り除く

Ubuntu 18.04でPT3を使用して地上デジタルテレビ放送を拝見できるように手配

OS: Ubuntu 18.04 Desktop
接触型 ICカードリーダライタ CLOUD2700-NTTCom
B-CASカード
PT3

カードリーダCLOUD2700-NTTComとB-CASカードを認識させる

aptで以って必要なパッケージをインストールしたのち、pcsc_scanを実施するとカードリーダとB-CASカードが認識された。放っておくとpcsc_scanは延々スキャンを試みるからいい加減でControl-Cを押下して中断せねばならない。

$ sudo apt install pcscd pcsc-tools libpcsclite-dev
$ pcsc_scan
PC/SC device scanner
V 1.5.2 (c) 2001-2017, Ludovic Rousseau 
Using reader plug'n play mechanism
Scanning present readers...
0: Identive CLOUD 2700 R Smart Card Reader [CCID Interface] (55291450217446) 00 00

(snip)

Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99
        Japanese Chijou Digital B-CAS Card (pay TV)

MULTI2の復号ソフトウェアを導入

地上デジタルテレビ放送の放送波はMULTI2と呼ばれる暗号方式によって暗号化されていると言うからそのままでの視聴は叶わない模様である。復号するためのソフトウェアARIB STD-B25ライブラリを導入せねばならない。

$ sudo apt install git cmake dkms
$ git clone https://github.com/stz2012/libarib25.git
$ cd libarib25/
$ cmake .
$ make
$ sudo make install

PT3ドライバの導入

LinuxでもPT3を取り扱えるようにドライバを導入する。カーネルがアップデートされるとドライバの再インストールに迫られ手間であるから、READMEファイルの記載に従い dkms.installを実行してDKMSを有効にする。

$ cd ..
$ git clone https://github.com/m-tsudo/pt3.git
$ cd pt3/
$ make
$ sudo make install
$ sudo bash ./dkms.install

カーネルバージョン3.18以降にはearth-pt3と言う名のDVB版PT3ドライバが存在しているから、先に導入したpt3_drvと張り合いデバイスファイルが生成されない、ということなので此れをロードしないようブラックリストに登録しておく必要がある情勢である。そうしたらマシンを再起動する。

$ sudo vi /etc/modprobe.d/blacklist.conf
blacklist earth-pt3
$ sudo reboot

起動後にカーネルモジュールをあらためるとpt3_drvだけロードされて居る。デバイスファイルも生成されているから良さそうな景色である。

$ lsmod | grep pt3
pt3_drv                45056  0

$ ls -l /dev/pt3video*
crw-rw-rw- 1 root video 241, 0  7月 21 23:42 /dev/pt3video0
crw-rw-rw- 1 root video 241, 1  7月 21 23:42 /dev/pt3video1
crw-rw-rw- 1 root video 241, 2  7月 21 23:42 /dev/pt3video2
crw-rw-rw- 1 root video 241, 3  7月 21 23:42 /dev/pt3video3

recpt1の導入

放送を録画するためのコマンド recpt1 を導入する。もとはPT1用として書き起こされたようであるからPT3でも使用できるようヘッダファイル pt1_dev.h の内容を置き換えてからインストールを実施する。

$ sudo apt install autoconf automake
$ mkdir recpt1
$ wget -c http://hg.honeyplanet.jp/pt1/archive/tip.tar.bz2
$ tar jxvf tip.tar.bz2
$ cd pt1-17b4f7b5dccb/recpt1/
$ sed -i'.orig' 's/pt1video/pt3video/g' pt1_dev.h
$ ./autogen.sh
$ ./configure --enable-b25
$ make
$ sudo make install

recpt1を使用しての録画が恙無くおこなえるか確かめる。コマンドへ引き渡す値はオプションの他、物理チャンネルや録画時間(秒)、録画ファイル名である。またVLCメディアプレーヤーを使用して番組の視聴をするなら録画時間と録画ファイル名を-に置き換えてvlcコマンドへパイプでつなげれば宜しい。

$ recpt1 --b25 --strip 20 60 rec.ts
$ recpt1 --b25 --strip 20 - - | vlc -

やったぜ。

参考:
MULTI2 – Wikipedia
地上デジタル放送 チャンネル表 MASPRO
テレビ周波数チャンネル

コマンドプロンプトから時刻合わせを試みたけれども狙い通りの挙動にならない

OS: Windows 10 Pro version 1809

主として使用しているパソコンの時刻が日本標準時から1.2秒も進んでいたからコマンドプロンプトからチャッと時刻を同期して精密に時計を合わせようと試みたけれどもWindowsの時刻同期は挙動が掴み切れず生半可な知見で臨んだところ忽ち返り討ちである。

w32tmコマンド一度きりの実施で時刻が確り同期される場合もあれば何遍繰り返してもちっとも同期されないケースもあったから困る。まずはコマンドプロンプトを管理者として実行するところから始めねばならない。一先ず時刻同期の様子を確認しようと次のコマンドを流すとこういう有様である。

>w32tm /query /status
次のエラーが発生しました。 そのサービスを開始できませんでした。 (0x80070426)

Windows Time サービス(w32time)が実行されていないとw32tmコマンドの主たる機能が取り扱えないようである。w32timeを開始するにはこうである。

>net start w32time
Windows Time サービスを開始します.
Windows Time サービスは正常に開始されました。

改めて w32tm /query /status を実行すると時刻の同期にCMOS Clockを使うことを発見した。おおかたマザーボードに搭載されているCMOSの時計を照らし合わせに用いるという設定であるとおもうからこれをNICTが公開しているNTPサーバ ntp.nict.jp に切り替える。

>w32tm /query /status
閏インジケーター: 3 (同期未実行)
階層: 0 (未指定)
精度: -23 (ティックごとに 119.209ns)
ルート遅延: 0.0000000s
ルート分散: 0.0000000s
参照 ID: 0x00000000 (未指定)
最終正常同期時刻: 未指定
ソース: Local CMOS Clock
ポーリング間隔: 10 (1024s)

NTPサーバの指定に続けてカンマを配して同期モードを16進数でセットできる風情である。1,2,4はSymmetric ActiveとかいうNTPサーバ同士でやり取りを交わすためのモードであったからクライアントとして使うPCには相応しくないとおもってClientモードを用いる0x8を記述した。

>w32tm /config /update /manualpeerlist:ntp.nict.jp,0x8 /syncfromflags:manual
コマンドは正しく完了しました。

>w32tm /query /status | find "ntp.nict.jp"
ソース: ntp.nict.jp,0x8

そうしたら /resync オプションで以って手づから時刻を同期させる。

>w32tm /resync
再同期コマンドをローカル コンピューターに送信しています
コマンドは正しく完了しました。

ズレが解消されたか確認をすると何ら効果を齎していない風情であった。幾度か実施を繰り返して見たけれどもほとんど動きが見られない。此は如何にとおもって調べるとじわじわと時刻を調整してゆくslewモードと一息に時刻を同期させるstepモードが用意されていて、諸条件を満たすとslewモードになりそうでなければstepモードになるという仕組みである。

>w32tm /monitor /computers:ntp.nict.jp /nowarn
ntp.nict.jp[133.243.238.163:123]:
ICMP: 25ms 遅延
NTP: -1.1755319s ローカル コンピューターの時刻からのオフセット
RefID: 'NICT' [0x5443494E]
階層: 1

slewモードの条件を満たしたから時計がすぐに合わないのだといっときは納得したけれども腰を据えて条件式を計算したところぜんぜん要件を満足しないからstepモードでパッとずれが解消されることが期待される筈であるのにどうも挙動がわからない。

>w32tm /debug /enable /file:"%userprofile%\desktop\w32tm.txt" /size:0 /entries:0-300
プライベート ログを有効にするコマンドをローカル コンピューターに送信しています...
コマンドは正しく完了しました。

>w32tm /resync
再同期コマンドをローカル コンピューターに送信しています
コマンドは正しく完了しました。

>w32tm /debug /disable
プライベート ログを無効にするコマンドをローカル コンピューターに送信しています...コマンドは正しく完了しました。

デバッグログを出力するよう設定して時刻同期を実施した際の内容を眺めたけれどもなんだかむつかしくてslewモードで時計を合わせようとしている情勢で或ることくらいしか掴めない。

もうすっかり厭になってしまって捨て鉢で時刻の自動設定をオフにしてから時刻を徒に大きくずらして改めて時刻を自動的に設定する設定をオンに切り替えたところ、何がどう作用したかは知れないけれども期せずしてstepモードのような働きによって時刻のぶれが慎ましい値へ落ち着いた。

>w32tm /stripchart /computer:ntp.nict.jp /period:5

たいへん強引なやり方であるから決して常用できないけれども退っ引きならない情勢であるときは不承不承この方法を選択せざるを得ない。

参考:
第3回 w32tmコマンドとレジストリによるWindows Timeサービスの制御 (1/4)

HTTPSによる暗号化された通信のやり取りをWiresharkで復号して内容を読み取る

OS: Windows 10 pro version 1809
Wireshark 2.6.6 64-bit
Google Chrome 72.0.3626.96

或るサイトから取得されるファイルのURLを探ろうとしてWiresharkを立ち上げ通信を捕えても近頃はすっかりHTTPSでやり取りがなされるから、中身を覗き見ようとしてもEncrypted Application Dataという具合に暗号化されて出鱈目な文字がおどるだけであって具体的な内容は確認できない。そうするとリクエストヘッダであるとかレスポンスヘッダが全く定かでなくなるから一寸内容を知りたいときにこまる。

Google Chromeのショートカットアイコンを右クリックしてプロパティを開くと「リンク先」の欄にGoogle Chromeのexeファイルを示すパスが記載されているからその後にひとつ、半角スペースを付け加えてから --ssl-key-log-file オプションと値を続けて記す。値は、暗号化にまつわる情報を書き出してゆくファイルのパスを指定するのである。デスクトップへssl.txtとして情報をダンプするならこういう具合でよかった。

--ssl-key-log-file=%userprofile%\desktop\ssl.txt

Google Chromeをすっかり終了させ改めて起動するとデスクトップへssl.txtがひとりでに作成され暗号化に使われている各種の情報が詳らかに記載されてゆく。悪いやつの手に落ちると大変危ないファイルであるから厳重な管理のもとに扱わねばならない。

今度はWiresharkを起動して「編集」の「設定」を開く。

「Protocols」の項目を展開するとおびただしい数のプロトコルがずらりと並ぶからそのうち「SSL」を見つけて「(Pre)-Master-Secret log filename」という設定項目に、先に作成された暗号化にかかわる情報が溢れているファイルのパスを指定する。

そうして改めてWiresharkで以ってHTTPSの通信内容をキャプチャして中身を確認するとこういった具合である。

目論見通り暗号化された情報が復号されて具体的な内容が確認できる。

ショートカットのプロパティを編集する方法であると、のちに復号の必要がなくなったというのに設定を消し忘れて痛い目を見る恐れもあるから、一時的に利用する手立てとしてコマンドプロンプトを開いて SSLKEYLOGFILE という環境変数を定めてからGoogle Chromeを起動してやればのちに禍根を残す蓋然性が低くなって良いとおもう。

>set sslkeylogfile=%userprofile%\desktop\ssl.txt
>start "" "%ProgramFiles(x86)%\Google\Chrome\Application\chrome.exe"

参考:
NSS Key Log Format

Windows Driver Kitをインストールすることなしにdevcon.exeを用意する

OS: Windows 10 Pro version 1809 64bit

devcon.exeによるデバイスの操作を企てたのであるけれども、其れ単独でインターネットからダウンロードすることが叶わない。Windows Driver Kit(WDK) for Windows 10, version 1809を手近なパソコンへ導入しさえすれば %programfiles(x86)%\Windows Kits\10\Tools\x64 にdevcon.exeの準備は整うけれども概ね2GBものディスク容量を消費するうえインストールに暇もかかって誠に遺憾である。

も少し手軽な手段を探ると、WDKを構成するCABファイルの一つをダウンロードしてdevcon.exeを取り出すという手立てがあるようである。まずは787bee96dbd26371076b37b13c405890.cabをダウンロードする。

そうしたらダブルクリックをしてCABファイル内に格納されているファイルの一群を覗く。

filbad6e2cce5ebc45a401e19c613d0a28fというファイルがdevcon.exeそのものであるから適当な場所へコピーしてdevcon.exeにリネームしてやれば終いである。

>move filbad6e2cce5ebc45a401e19c613d0a28f devcon.exe
1 個のファイルを移動しました。

>devcon.exe
devcon.exe Usage: devcon.exe [-r] [-m:\\<machine> ] <command> [<arg>...]
For more information, type: devcon.exe help

参考:
Quick Method to install DevCon.exe?
Where to find DevCon.exe