PowerShell:ファイルを読み込み、16進数を列記したテキストファイルを作成する(およびその逆)

禁断のツールを作成してしまいました。

今のお仕事において、
お客様が管理されているシステムを
遠隔操作により保守することがあります。

職場とお客様の拠点との間でVPNを張っており、
お客様が許可されている方式により保守対象のサーバへ接続します。

GUIでの保守作業(リモートデスクトップなど)は許可されているものの、
お客様のセキュリティポリシーによっては
ファイルの送受信ができない場合があります。

そんなときに備えて、送信したいファイルと
16進数を列記したテキストファイルとを相互変換するための
2つのPowerShellスクリプトを書きました。

送信できないのなら、作成すればいい。
ファイルを表す16進数をキータイプし、
その文字列からファイルを再現すれば、
制限に抵触せずにファイルを配置することができます。

実際にはAutoHotKeyなどでキー送信を行えば、
タイプミスも発生せず、正確なファイル再現が可能でしょう。
そのためのAutoHotKeyスクリプトとサクラエディタマクロも書きました。

……そうです。本当に「使ってはならない」ツールです。

使用して問題になろうものなら、
PowerShellやリモートデスクトップ、
遠隔保守作業そのものを禁止されることにもなりかねません。

でもせっかく作ったのにもったいないので、公開しておきますね!
ご利用は各自の責任で!!

----------------------------------------
◆bin2txt.ps1
###BIN to TXT
$bfn = $Args[0]
$tfn = $Args[1]

[Byte[]]$bs = Get-Content $bfn -Encoding Byte
$bfn = $null

[string]$ts = [System.BitConverter]::ToString($bs)
$ts = $ts -Replace('-', ' ')
$bs = $null

Set-Content $tfn -Value $ts -Encoding String
$ts = $null
$tfn = $null

----------------------------------------
◆txt2bin.ps1
###TXT to BIN
$tfn = $Args[0]
$bfn = $Args[1]

[string]$ts = Get-Content $tfn -Encoding String
$tfn = $null

[string[]]$ts = $ts.Split(" ")
[Byte[]]$bs = $ts|foreach { [System.Convert]::ToByte( $_ , 16 ) }
$ts = $null

Set-Content $bfn -Value $bs -Encoding Byte
$bs = $null
$bfn = $null

----------------------------------------


終わりや終わり! 終了!!

書いた人: 久世うりう (kuzeuriu) お問い合わせ


コメント

タイトルとURLをコピーしました