min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

情報処理安全確保支援士(SC)平成31年度 春期 午前Ⅱ 解答速報(2019年4月21日実施)

昨日 2019年4月21日。受けてきた。

自分なりの解答速報。

 

※ 午前Ⅰ は免除なので受けてない。

※ 午前 の解答速報。

 

平成31年 春期 午前 解答速報>

△が付いていないものはまず間違いなく正解(過去問にある or 調べた)。

△が付いているものは自信なし。正解を確認中

 

問1:エ

問2:ウ

問3:ア

問4:エ

問5:ウ △

 

問6:ア

問7:ア

問8:ウ △

問9:ウ

問10:ア △ → 正解はおそらく エ

 

 

 

 

問11:イ △ 

問12:イ

問13:ア △

問14:イ

問15:ア △

 

問16:イ △

問17:エ

問18:ウ △

問19:ウ △

問20:エ

 

問21:ウ △

問22:ウ △

問23:エ

問24:イ △

問25:ウ △

 

なお、足切りは60点

iromame-beans.jp

 

f:id:min117:20190422072840j:plain

問1 エが正解

ウかエか迷った。CRLに載るのはシリアル番号であって、公開鍵そのものが載るわけではない。

 

f:id:min117:20190422072843j:plain

問2 ウ が正解

これは過去問そのまま。

 

f:id:min117:20190422072847j:plain

問3 ウ が正解

過去問そのまま。

 

f:id:min117:20190422072851j:plain

問4 エ が正解

過去問そのまま。

 

f:id:min117:20190422072855j:plain

問5 ウ が正解と思う

仮想通貨に絡んだ目新しい出題。クリプト(暗号化)ジャッキング(盗む)なんだから、暗号化の計算結果を盗むかのように見えるので、アかもしれない。

 

f:id:min117:20190422072859j:plain

問6 ア が正解

過去問そのまま。SmurfとくればICMP。

 

f:id:min117:20190422072903j:plain

問7 ア が正解

過去問そのまま。サイドチャネル攻撃、テンペスト攻撃、耐タンパ性 はまとめて覚える。

 

f:id:min117:20190422072907j:plain

問8 ウ が正解と思う

ア:盗聴の有無を受信者が知り得るわけがない。

イ:ましてや盗聴者を特定できるはずがない。

ウ:改ざんの有無は設問の処理で検知できる。

エ:どう改ざんされたかまでは知り得ないし、訂正できるはずもない。

 

f:id:min117:20190422072911j:plain

問9 ウ が正解

過去問そのまま。

 

f:id:min117:20190422072914j:plain

問10 エ が正解だろう

良いサイトがあった。

www.websec-room.com

f:id:min117:20190423224019p:plain

 

 

 

f:id:min117:20190422072919j:plain

問11 イ が正解と思う

ア:DNS(の正規な通信)にポイズニングされてるのにマルウェアを調べてどうする。

イ:たぶんこれが正解。DNSの通信が一定の規則(例えば連続した数値)だからポイゾニングされるのであって、ランダムであれば注入されにくいだろうから。

ウ:送信元ポートを固定したら攻撃者が狙いやすくなるじゃないか。

エ:名前解決のポートを固定したら狙われやすくなるし、DNSクライアント側も固定に従う必要が出てきて現場が混乱しそう。

 

f:id:min117:20190422072923j:plain

問12 イ が正解

過去問そのまま。

f:id:min117:20190423224715j:plain

 

f:id:min117:20190422072927j:plain

問13 エ が正解だろう

過去問にあった。

f:id:min117:20190423225930j:plain

 

f:id:min117:20190422072931j:plain

問14 イ が正解

過去問そのまま。

 

f:id:min117:20190422072935j:plain

問15 ア が正解だろう

仕事でネットワークベンダーと話した時に「セキュリティのためにDNSサーバにSPFレコードの登録を検討しませんか」と言われたことがあったのを思い出して回答した。

 

f:id:min117:20190422072939j:plain

問16 イ が正解だろう

総務省が進めて各自治体が行ったという「ネットワーク分離」が恐らくコレ。インターネット側に仮想PC(VDI)を置いて、その画面だけを庁内(行政事務を行うPC)に転送することで、「危険な(ウイルスのいる)インターネッツ=仮想PC側」と「安全な庁内=実PC側」を分けてしまえ!という、安易で行政屋っぽい発想による施策。

VDI上のブラウザを使ってインターネットにつなぐから、仮にウイルスに感染してもその影響は仮想PCのみにとどまり、仮想PCごと初期化してしまえば何も起こらない。実用的な製品としてはCitrixでの画面転送(VDI)を念頭に置いた出題と思われる。

ア:VDIからファイル転送を許可してしまったら、ネットワーク分離した意味がない。

イ:これが正解。

ウ:VDIのサーバ(雛形から仮想PCを大量に作り出して展開する)はあくまで仮想環境の創造主であって、通信の代理(プロキシ)になるわけではない。

エ:同上。

ちなみに、Citrixについては以前試した。

min117.hatenablog.com

 

f:id:min117:20190422072944j:plain

問17 エ が正解

過去問そのまま。

 

f:id:min117:20190422072948j:plain

問18 ウが正解だろう

過去問では見なかった出題。要はSSIDが同じ複数のアクセスポイント(例えば甲と乙)が同じ場所にあることによって、クライアント(例えばiPhone)の無線LAN設定画面上では正しいSSID(甲)に接続しているように見えるのに、実際は別のアクセスポイント(乙)に接続していた、ような状況だろう。

午後Ⅱでは不正なアクセスポイント(AP)を設置することによって通信を傍受する「KRACKs」なる攻撃手法が出題されたがその布石にも見える。 

 

f:id:min117:20190422072952j:plain

問19 ウが正解かなぁと思う

簡単そうに思えて迷った。過去問を調べる必要がある。

ア:「Mで始まっている=Multi=複数=パラレル」だから、シリアルではないだろう。

イ:PPP(ポイントツーポイント)で実際VLAN組んでTELNETしたことあるので、これか迷った。

エ:しかし、PPPが正解ならPPTPだって正解なはず。ということは、イとエの2つが正解になってしまう。

ウ:そんなことはないはずなので、残ったウが正解だろう。

 

f:id:min117:20190422072956j:plain

問20 エ が正解

過去問そのまま。ただし、過去問ではエは「Trap」とだけなっていたが、プロトコルの進化に合わせて出題もアップデートしていると思われる。SNMP(ネットワーク全体図を作るためのソフトウェア)において、クライアントが自発的に「オレはこのネットワークにいるよ!」と知らせるための機能を「Trap」という、くらいで覚えておけば良さそう。

ちなみに、bashtrapコマンドは全く違うものだが、トラップつながりで覚えておく。

min117.hatenablog.com

 

f:id:min117:20190422073000j:plain

問21 ウが正解かなぁと思う

ア:在庫表の行が消えたところで、製品表には影響が一切ない。在庫1個を減らすのにわざわざ「製品表にこの製品あるかなぁ」を気にする作りだったら、不便すぎてシステムにはなりえまい。

イ:在庫表自体が消えたところで、これまた製品表から見れば関係ない話だ。製品表はあくまで「参照される側」であって、製品表から在庫表の列をどこか見に行っているわけでもないのだから。

ウ:仮に在庫表に行を追加したとして、その製品番号(の列にある値)が製品表には実際に存在しない製品(の番号)だったとしたら、そんな在庫データはあっちゃ困るわけで。そんな行を追加しようとしたら「製品表を参照してもそんなのないからヤメなさい!」という制約が入って当然なわけで、たぶんこれが正解。

エ:在庫票のデータがどうかによって「製品表への行追加」ができないはずがない。「コレコレの在庫があるから、新たな製品は持たない」なんてことはないはずで、在庫があろうがなかろうが、新製品を取り扱うようになれば製品表には製品を追加しなければいけない。なのでこの選択肢はありえない。

 

f:id:min117:20190422073008j:plain

問22 ウ が正解だろうと思う

英語の「fuzz(予測不可能なデータ)」が語源らしい。要はイジワルテスト

www.ookawara.com

ファジングときたら脆弱性」で覚える。ペネトレーションテストとどう違うかあとで調べる。

www.ipa.go.jp

 

f:id:min117:20190422073012j:plain

問23 エ が正解

過去問そのまま。

 

f:id:min117:20190422073016j:plain

問24 正解わからない

調べないといけない。

ア:ログの反映の時間は、バックアップ取得(の時間間隔)とは一切関係がない。

イ:「一定の頻度」でデータへの追加・変更・削除が行われる、そのバックアップの取得間隔を2倍に伸ばした=その間のデータが増える んだから、磁気テープの使用量は倍になるんじゃなかろうか。

ウ:短く(半分にも)なることはないだろう。

エ:バックアップを取得するための時間間隔を伸ばしたからと言って、取得にかかる時間は、例えば磁気テープに書き込む速度は磁気テープや書き込むディスクの性能によるわけで、仮に倍のデータが来たとしても、それによって磁気テープにバックアップを取る「時間が」2倍になるなんて、言う根拠がないんじゃなかろうか。

 

f:id:min117:20190422073020j:plain

問24 常識的に考えてウしかないんじゃないか

ア:監査対象部門がなぜ「改善」を「提案」するのか。コンサルじゃないんだから。

イ:自分用の作業マニュアルを監査調書なんて呼ぶはずもなく。

ウ:常識的にこれだろう。

エ:計画を「調書」とは言いません。調書は「(計画に基づいて進められた結果について)あとから調べて書いたもの」なんだから。

 

午後 の 問1 はこちら。

min117.hatenablog.com

 

午後 の 問3

min117.hatenablog.com

 

午後 の 問1

min117.hatenablog.com

古いDELLのデスクトップPCをSSDで爆速化 → Windows10 Pro をインストールする

かなり古い型のDELLパソコン。VOSTRO 220a。

f:id:min117:20190420061737j:plain

遅いのでなんとかしてほしいとの相談。

 

SSDに換装することにする。

f:id:min117:20190420061800j:plain

 

使うのはこれ。

f:id:min117:20190420061947j:plain

Amazonで買った。LINE Store または ハピタスを経由してAmazonへ。

 

その買うを、もっとハッピーに。|ハピタス

 

2019/4/30までなら、LINE Payの20%還元もあるのでお得に買える。

skyblue.ciao.jp

f:id:min117:20190420063149p:plain

 

SSDを装着する。

f:id:min117:20190420061927j:plain

f:id:min117:20190420061834j:plain

 

OSの無い状態でBootしてみる。当然ながらエラー。

f:id:min117:20190420065624j:plain

 

 

Windows10のISOを入手する。Macで作業した。

f:id:min117:20190420062029p:plain

 

ダウンロードしたファイルを右クリックしてDVDに焼く。

f:id:min117:20190420062239p:plain

min117.hatenablog.com

 

 

書き込みが進行。

f:id:min117:20190420062522p:plain

 

 

書き込み完了。

f:id:min117:20190420065614j:plain

 

ディスクをセット。

f:id:min117:20190420065619j:plain

内臓の5インチDVDドライブが故障で開かないので外付けDVDドライブにて。

 

Windows10のインストール開始。

f:id:min117:20190420065628j:plain

 

日本語環境が最初から選ばれている。

f:id:min117:20190420065636j:plain

f:id:min117:20190420065641j:plain

ライセンスはあとでインストールするので「プロダクトキーがありません」で進める

f:id:min117:20190420065645j:plain

f:id:min117:20190420065650j:plain

Windows10 Proを選択。

f:id:min117:20190420065655j:plain

f:id:min117:20190420065659j:plain

f:id:min117:20190420065703j:plain

今回のSSDが見える。120GBだが、実質利用できるのは111.8GB。

f:id:min117:20190420065708j:plain

f:id:min117:20190420065713j:plain

f:id:min117:20190420065717j:plain

f:id:min117:20190420065720j:plain

f:id:min117:20190420065724j:plain

f:id:min117:20190420065728j:plain

さすがSSD。めちゃ速い。

f:id:min117:20190420184048j:plain

わずか6秒でチェックが4つ進む。

f:id:min117:20190420184143j:plain

 

ここから

f:id:min117:20190420184218j:plain

f:id:min117:20190420184222j:plain

f:id:min117:20190420184225j:plain

このブルー画面までが、わずか8秒。

f:id:min117:20190420184229j:plain

 

 

snow-white.cocolog-nifty.com


 

 

 

Windows10 Gmailで複数の宛先に(それぞれ違う添付ファイルつけて)メールを一括送信する

複数の宛先それぞれ違う添付ファイルをつけてメールを一括送信したい。

 

例えば

大阪事業所 には A添付ファイル

九州事業所 には B添付ファイル

のようなメールを一括で送信するようなケース。

 

WindowsバッチJScriptで実現する。

qiita.com

 

完成イメージはこれ。

f:id:min117:20190419012906p:plain

 my_GMAIL_DATA.csv に「件名,本文,宛先,BCC,添付ファイル名」を書いて

 my_GMAIL.bat を実行すれば

my_GMAIL.js がCALLされてメール送信し)

 宛先Gmailにメールが届く。

 送信ログも記録される。

 

 

 

ソースはこれ。

 

my_GMAIL.bat

f:id:min117:20190419013745p:plain



my_GMAIL.js

f:id:min117:20190419014828p:plain

f:id:min117:20190419014930p:plain

 

メール本文になるテキストファイルはこれ。

f:id:min117:20190419015152p:plain

 

自動でメールに添付されるファイル(test.txt)はこれ。

f:id:min117:20190419015316p:plain

宛先ごとに違うファイルを用意できる。

 

my_GMAIL_DATA.csv はこれ。

f:id:min117:20190419015529p:plain

件名,本文,宛先,BCC,添付ファイル名」が記載され、バッチで読み込まれる。

 

ログはこんな感じで出る。

f:id:min117:20190419015835p:plain

添付ファイルがなければエラーになってくれる。

 

届いたメールはこれ。

f:id:min117:20190419020540p:plain

 

本文もしっかり表示されているし、

f:id:min117:20190419020739p:plain

 

添付ファイルもバッチリついている。 

f:id:min117:20190419020642p:plain

完璧。

 

CSVのメンテにさえ集中すれば、複数の宛先にそれぞれ違った添付ファイルをつけて一括でメールを送信するという、地味でダルい作業がイッパツでできる。RPAやらAIやら色々言われてるけど、やっぱ自分で作るのが一番便利。

 

JScriptは枯れた技術だけど、Windowsなら7だろうが10だろうが動いてくれるので結局実用的だったりする。

 

RaspberryPi3 に Bitcoin Explorer と Bitcoin Core をインストールする

2018年末にメルカリで安く買えたこれ。

f:id:min117:20190103003653p:plain

testnet試してみたいけどなかなか向き合えずにいたが、少しでも進めたい。

 

環境は RaspberryPi 3。

f:id:min117:20190414201814j:plain

あとでどうせWindows10Armをインストールするので初期化するし

min117.hatenablog.com

その前に、試しにやってみる。

 

まずは Bitcoin Explorer をインストールする。

f:id:min117:20190414230939p:plain

 

$ mkdir -p ~/bx ; cd ~/bx

f:id:min117:20190414231021p:plain

 

$ wget https://github.com/libbitcoin/libbitcoin-explorer/releases/download/v3.2.0/bx-linux-x64-qrcode

f:id:min117:20190414231052p:plain

f:id:min117:20190414231103p:plain

バイナリの名前を直接変更。

$ mv bx-linux-x64-qrcode bx ; chmod 777 bx

f:id:min117:20190414231213p:plain

 

PATHの追加。

f:id:min117:20190414231258p:plain

f:id:min117:20190414231432p:plain

f:id:min117:20190414231513p:plain

 

必要なパッケージのインストール。

$ sudo apt-get -y install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils python3

f:id:min117:20190414232207p:plain

 

f:id:min117:20190414232307p:plain

f:id:min117:20190414233136p:plain

 

f:id:min117:20190414233243p:plain

f:id:min117:20190414233432p:plain

 

f:id:min117:20190414233545p:plain

 

f:id:min117:20190414233841p:plain

 

f:id:min117:20190414234014p:plain

 

f:id:min117:20190414234128p:plain

f:id:min117:20190414234200p:plain

 

$ sudo apt-get -y install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler

f:id:min117:20190414234405p:plain

f:id:min117:20190414235212p:plain

 

Bitcoin Core 0.16.0 のビルド。

書籍にしたがって、指定のバージョンをインストールすることにする。

f:id:min117:20190414235857p:plain

f:id:min117:20190415000504p:plain

 

あれ?githubが「detached HEAD」エラーを返してしまう。

f:id:min117:20190415000546p:plain


最新バージョンならいけるか?

f:id:min117:20190414235736p:plain

 

ダメ。やはり同じエラー。

f:id:min117:20190414235935p:plain

 

この記事を頼りに修正を試みる。

qiita.com

 

ダメ。今度は「Remove note about temporary file from release notes」でエラーになってしまう。

f:id:min117:20190415001305p:plain

f:id:min117:20190415001403p:plain

 

Remove note about temporary file from release notes」を調べる。

f:id:min117:20190415001605p:plain

 

$ git notes prune が効くとある。

f:id:min117:20190415001549p:plain

 

$ git notes prune 

f:id:min117:20190415001537p:plain

効かなかった…

 

これでは ./autogen.sh  も configure もできない。しばらく調べる。

 

 

 

RaspberryPi3 にインストール可能な「Windows10 Arm版」のISOファイルをダウンロードする

とても面白そうな記事。

gigazine.net

 

なんとRaspberryPi3 に Windowsをインストールして起動できるらしい。早速試す。

uepon.hatenadiary.com

 

RaspberryPi3 は余っているのを使うとして

f:id:min117:20190414201814j:plain

 

まずは Windows10 Arm版のISO を入手するのが先決だ。

 

上記記事によると、ISOを直接ダウンロードできるわけではなく、ISO作成用のcmdファイルをダウンロードして既存のWindows上で実行することでArm版のISOができるという流れらしい。

 

さっそくやってみる。まずは cmdをダウンロードできるサイトに行く。

https://uup.rg-adguard.net

uup.rg-adguard.net

ファイルを落とすところまではMacSafari)でやっても問題あるまい。

 

https://uup.rg-adguard.net

にいったらまず

Cumulative Update for Windows10 を選ぶ。

f:id:min117:20190414195501p:plain

 

[18762.53」で始まる KB4495666 の x64 版を選ぶ。

f:id:min117:20190414195412p:plain

 

ja-jp:Japanese を選ぶ。

f:id:min117:20190414195703p:plain

 

Windows 10 Professional を選ぶ。

f:id:min117:20190414195829p:plain

 

Download ISO compiler in OneClick!(run downloaded CMD-file) を選ぶ。

f:id:min117:20190414195916p:plain

 

ここまで選ぶと、右半分に creatingISO_18362...で始まる拡張子.cmd へのリンクができるのでクリックしてダウンロードする。

f:id:min117:20190414200059p:plain

ダウンロード完了。

f:id:min117:20190414200247p:plain

 

 

 

このcmdファイルを普段使っているWindows(7でも8でも10でもいいんだろうけど。念のため今回は10でやることにする)で実行すれば、Arm版のWindows10インストールバイナリ(ISOファイル)ができるはず。

 

自分の場合は、Windows仮想環境(VMware)にしか持っていないのでそこに今回のcmdファイルを持って行って実行することにする。

 

仮想環境を起動。

f:id:min117:20190414200538p:plain

 

今回のcmdファイルを移動して右クリックから「管理者として実行」する。

f:id:min117:20190414200708p:plain

 

処理開始。

f:id:min117:20190414200826p:plain

 

必要なフォルダができていく。

f:id:min117:20190414200834p:plain

C直下で実行してしまったが、専用のフォルダを作ってその中で実行すべきだったか。まあいいや。

 

この「uup」なるフォルダがどうやら大事みたい。

f:id:min117:20190414200918p:plain

しばらく放っておく。

 

1時間ほど放ったまま(食事から戻ってきたら)エラーが出てしまっていた

f:id:min117:20190414201041p:plain

ERROR: UUP Edition file is not found in specified directory

「UUPエディションファイルはご指定のディレクトリには見当たりません」

 

いやいや、「uup」ってフォルダがあるじゃん…

 

Windowsは大文字と小文字を区別しないんだから「uup」ないし「UUP」フォルダがあれば問題ないはず。

 

たぶんuupフォルダへの書き込み権限が足りてないんだろうと思う。デスクトップで実行しなおしてみることにする

 

※ そもそもダウンロードしたcmdファイルが違っていた可能性も無いではないが、あまりそんな気はしない。

 

 

気を取り直してやりなおす。

 

まずは デスクトップに作業用のフォルダ(Win10Arm)を作り

f:id:min117:20190414204109p:plain

 

その中で、今回のcmdファイルを右クリックから「管理者として実行」する。

f:id:min117:20190414204116p:plain

 

今度はうまくいきそうな予感。

f:id:min117:20190414204122p:plain

 

ファイルも順当にダウンロードされている。

f:id:min117:20190414204145p:plain

 

これもしばらく待ってみる。

f:id:min117:20190414204153p:plain

f:id:min117:20190414204201p:plain

 

CABファイルとディレクトリからESDファイルを作るところまで来た。

f:id:min117:20190414204917p:plain

ESDはたしか「まんまISOになる」ファイルだったはず。ISOの原型ファイルだったはずだ。

 

かなりいい感じ。

f:id:min117:20190414204929p:plain

 

OpenSSH-Client が標準で入ってるのか。

f:id:min117:20190414205123p:plain

 

Media Layoutを作るところまできている。これはISO(からメディアに焼くとき)のレイアウトを決めているのでは、と想像。

f:id:min117:20190414205143p:plain

 

boot.wimファイルの作成を経て

f:id:min117:20190414205316p:plain

 

1049MB(約1GB)のファイルを書き出すところまで来た。

f:id:min117:20190414205328p:plain

f:id:min117:20190414205504p:plain

f:id:min117:20190414205526p:plain

f:id:min117:20190414205545p:plain

f:id:min117:20190414205734p:plain

f:id:min117:20190414205902p:plain

f:id:min117:20190414205927p:plain

f:id:min117:20190414210840p:plain

 


 


 

PHP で作った文字列を javascript の alert に表示する

PHPで作った一覧画面がある。

チェックを入れて「削除する」ボタンを押したら

f:id:min117:20190414131449p:plain

 

「本当に削除しますか?」のアラート画面を出したい。

f:id:min117:20190414131839p:plain

 

javascript詳しくない。そもそもが<head>タグに書くべきなのか<body>でいいのかからわからない。

teratail.com

f:id:min117:20190414134132p:plain

記事によればjavascript別にどこに書いても動くことは動くみたいだけど、表示速度向上のためには末尾(bodyタグ終了直前)に書いたほうがいいらしい。

 

 

 

書いてみた。

f:id:min117:20190414132328p:plain

一覧のファイル名はGET文でPHP配列 $mySELECTED で渡ってくるようにしたので

 

まずはimplode関数を使って配列から文字列に変換する。文字列の区切り文字には改行(¥n)を指定した。

f:id:min117:20190414133046p:plain

webkaru.net

f:id:min117:20190414132701p:plain

 

それをjavascript のアラートにセットする。

f:id:min117:20190414133139p:plain

 

PHPからjavascriptを呼び出す。

f:id:min117:20190414133210p:plain

teratail.com

 

結構カンタンにできた。

f:id:min117:20190414133709p:plain

次回は「閉じる」を「OK」「キャンセル」に変えてみる。javascriptの(alertではなくて)confirmを使うとできるらしい。

 

Outlookのデータ(.pstファイル)をテキストに変換する(readpstコマンド利用)

6年前の古いOutlookのデータ(.pst)が出てきた。

f:id:min117:20190413074934p:plain

6年前、自分はどんなメールをしていたんだろう…と。

 

開いて中を見たいけどWindowsで開くと

f:id:min117:20190413074853p:plain

現在のOutlookにインポートされちゃって、リアルに使っているメールと混じってしまう心配がある。

 

なのでLinuxOutlook(.pst)ファイルを読めないかを考えてみる。

 

 

 

読めたreadpstという素晴らしいコマンドを作っている人がいた。

www.systutorials.com

 

さっそくインストールする。環境は RaspberryPi 3

$ sudo apt-get -y install readpst

f:id:min117:20190317015029p:plain

 

読み込みたいOutlookデータファイル(.pst)を用意する。

$ ls | grep pst

f:id:min117:20190413080247p:plain

 

使い方を調べる。

$ readpst -h

f:id:min117:20190413081424p:plain

読み取ったメールをファイルに書き出すには -Mオプションをつけるようだ。

 

読み取ってみる。

$ readpst -M hoge@test.jp.pst

f:id:min117:20190413082044p:plain
すっげ。

海外の人が作ったコマンドなのに日本語のメールフォルダも全く問題なくそのまま取り出せている。

 

できたフォルダを見てみる。

 hoge@test.jp.pst  というファイルを読み取った場合は

 hoge@test.jp というフォルダができて、その中にメールが書き出されるようだ。

 

$ ls hoge@test.jp

$ tree hoge@test.jp

f:id:min117:20190413082610p:plain

連番のファイルになるようだ。

 

取り出せたメールファイルを開いてみる

$ cat hoge@test.jp/受信トレイ/1

f:id:min117:20190413083645p:plain

スゴすぎる。日本語メール本文も全く問題なく読み取れた。6年前のメールが一瞬で復活する。

 

ただし、件名だけが文字化けている。これはソフトウェアのバグではなくて、メールの仕様(エンコード)のせいだろうと思う。

 

試しに nkf に通してみる。

$ cat hoge@test.jp/受信トレイ/1 | nkf

f:id:min117:20190413084314p:plain

完璧。件名(Subject)のみならず、Message-id も日本語で復元された。

 

for文で全メールをなめて件名だけ読み取ってみる。

 

for i in hoge@test.jp/受信トレイ/*; do echo "$i"; cat "$i" | grep Subject | nkf; echo '---------------------------' 

f:id:min117:20190413085257p:plain


読めた。素晴らしすぎる。

f:id:min117:20190413085117p:plain

しばらく過去のファイルを漁ってみるか。

 

WindowsならPowerShellを使って添付ファイルも復元できるらしい。今度試す。

kapibara-sos.net