はじめに
本記事はHackTheBoxのWriteupです。
ChallengesのDebugging Interface、DifficultiesはVery Easyです。
このChallengeでは、Hardwareのプロトコルを解析するための方法について学ぶことができます。
Debugging Interface
はじめにファイルをダウンロードします。
表層解析
ダウンロードしたDebugging Interface.zip
ファイルを調査するにあたって、zipファイルを展開します。
unzipコマンドでファイルを展開すると、見慣れない拡張子を持つdebugging_interface_signal.sal
ファイルが確認できます。
Archive: Debugging Interface.zip
[Debugging Interface.zip] debugging_interface_signal.sal password:
inflating: debugging_interface_signal.sal
debugging_interface_signal.sal
ファイルに対して、fileコマンドを実行した結果は以下の通りです。
debugging_interface_signal.sal: Zip archive data, at least v2.0 to extract, compression method=deflate
fileコマンドの実行結果を踏まえて、binwalkコマンドを実行して中身を確認します。
$ binwalk -e debugging_interface_signal.sal
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 Zip archive data, at least v2.0 to extract, name: digital-0.bin
5390 0x150E Zip archive data, at least v2.0 to extract, name: meta.json
9675 0x25CB End of Zip archive, footer length: 22
展開された_debugging_interface_signal.sal.extracted/
ディレクトリ配下を確認すると以下のファイルが抽出できました。それぞれ確認します。
åè¨ 64
-rw-r--r-- 1 kali kali 9697 4æ 9 20:11 0.zip
-rw-r--r-- 1 kali kali 22090 3æ 23 2021 digital-0.bin
-rw-r--r-- 1 kali kali 27810 3æ 23 2021 meta.json
digital-0.bin
ファイルは、バイナリファイルになるため、stringsコマンドで中身を確認すると以下の様な文字列が複数確認できます。
<SALEAE>
ffffff
~L@Y
L@LALALAL@LALAY
LAL@LAL@Y
LALALAL@LALAeDeDLAL@LALALAL@eEL@LALALA@
LAY
LAL@LA~HLAL@LALAY
L@LAeDLALAeDL@LBL@LAY
LALAY
meta.json
ファイルは、jsonファイルになるため、jqコマンドを組み合わせて実行すると以下の様なデータが確認できました。
{
"version": 12,
"data": {
"renderViewState": {
"leftEdgeTimeSec": 2.220446049250313E-16,
"timeSecPerPixel": 0.001978117224489796,
"analogChannelViewStates": [
{
"index": 0,
"type": "Analog",
"stripchart": {
"viewportCenterValue": 2.5,
"scalePerPixel": 0.0625
}
},
{
"index": 1,
"type": "Analog",
"stripchart": {
"viewportCenterValue": 2.5,
"scalePerPixel": 0.0625
}
},
{
"index": 2,
"type": "Analog",
"stripchart": {
"viewportCenterValue": 2.5,
"scalePerPixel": 0.0625
}
},
SALEAE
Googleでdigital-0.bin
ファイルから確認できた<SALEAE>
の単語を検索します。
検索結果を踏まえて、一番上に表示されているSaleae Logic Analyzersのサイトにアクセスします。
このサイトに載っているLogic 2というアプリケーションは、SPI、I2C、シリアルなどのプロトコルをデコードするためのソフトウェアであることが分かりました。ダウンロードページからダウンロードして、インストールします。
Logic 2のアプリケーションを起動後、debugging_interface_signal.sal
ファイルを選択して開きます。
以下の様な画面が表示されます。
画面上部のグラフを拡大して表示すると、ビットレートが確認できます。また、グラフの上にマウスを乗せると、マイクロ秒の単位として32.02µsの数字が表示されます。
Challengeの説明から非同期シリアルであることが分かるため、AnalyzersはAsync Serialを選択して、以下の様にinput ChannelとBit Rate(1000000/32.02 = 31230)をそれぞれ設定します。
画面右下にDataが表示されます。
平文で読むためには、Terminalボタンを押します。最後のデータを確認すると、フラグが見つかりました。
おわりに
新しい発見があった面白いChallengeでした。