LoginSignup
20
10

More than 3 years have passed since last update.

Windows向けBase64デコードのバッチ作成

Last updated at Posted at 2020-01-29

POWLOAD(マクロ有効化するとPowershell起動して通信)の検体を解析する際に
powershellで実行される引数がBase64でエンコードされていることが多いので、効率化のためにバッチを作成したので共有です。

使い方

1.バッチを実行するとコピペ待ちになるので、デコードしたい文字列を貼り付け
2.デコードされた文字列がクリップボードにコピーされます

バッチファイルの中身

@ECHO OFF
setlocal

pushd "%~dp0"
REM 変数定義
SET /P BASE64_STR="Input encoded strings: "
SET BASE64_START=-----BEGIN CERTIFICATE-----
SET BASE64_END=-----END CERTIFICATE-----
echo %BASE64_START%%BASE64_STR%%BASE64_END% > before.txt

REM Decodeを実行する、元ファイルの削除、デコード結果のクリップボードコピー
certutil -decode before.txt after.txt
del before.txt
type after.txt | clip
del after.txt

ECHO Succesfully encoded. Check your clipboard.

pause

参考情報

WindowsのCertutilコマンドを使っています。

共有フォルダ上で実行することが多そうだったので冒頭でpushdでカレントパスを指定しています。
これでネットワークファイル共有上でもエラーが出なくなるっぽいです。

追記

powershellを呼び出すことでワンラインでシンプルに実行可能というアドバイスを頂きました!
@kfjt さんありがとうございます!

@ECHO OFF

SET /P BASE64_STR="Input encoded strings: "

powershell -command "[Convert]::ToBase64String(([System.Text.Encoding]::Default).GetBytes('%BASE64_STR%'))" |clip

ECHO Succesfully encoded. Check your clipboard.

pause

また、フォルダパスに&が含まれた際にエラーが発生すること可能性がありましたので、下記のようにダブルクオーテーションで囲むように修正しました。
pushd %~dp0 → pushd "%~dp0"
@zarukishi さん、ありがとうございます!

20
10
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
10