鰒。

鰒知(ふぐち)による自己満足なブログ。コメント、リンク大歓迎。

自称 北の大地で技術者を目指すオーナイン捜査官。

スポンサーサイト

一定期間更新がないため広告を表示しています

| スポンサードリンク | - | | - | - | Facebookに追加 はてなブックマークに追加 |

windowsでバイナリをダンプしたい

こんばんは、鰒知です。

windowsでバイナリをダンプしたいけど、フリーソフトのインストールが厳しいアナタへ朗報です。
古臭いコマンドプロンプトを使わずに、めんどくさい書き方なんか覚えずに、
コピペでシェルを組んでやれば、一瞬ですよ!


使うのはpowershell。
windows7ならデフォルトで入ってます。スタートのアクセサリあたりに。



Windows PowerShell ISE を選んでください。
私はx64なので二つ入ってる?みたいです。


んで、三段にわかれている画面の、一番上の段に、以下をコピペ。


#ファイルパスをフルパスで入力↓↓
$FilePath="C:¥xxxxxxxx¥xxxxxxxxx¥test.txt"


Write-Output "--------------------------------------------------------"
Write-Output " 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F"


$Output = New-Object System.String("")

$count = 16 #横ループ
$line = 0 #行数

Foreach($item in Get-Content -Path $FilePath -Encoding byte)
{
#改行
if($count % 16 -eq 0){
Write-Output $Output
$Output = $line.ToString("X").PadLeft(8, '0')
$Output += $line.ToString(" ")
$line = $line + 1
$count = 16
}
#データ出力
$Output += $item.ToString("X").PadLeft(2, '0')
$Output += " "
$count = $count - 1
}

if($count -ne 16){
$line = $line + 1
Write-Output $Output
}





2行目に、バイナリダンプしたいファイルのフルパスを入れる。


で、「F5」キーを押す。


するとー、

真ん中の画面に、バイナリ出力結果が表示されるのだー!!!!!







一応、一般的なバイナリエディタの出力結果と比較して、データがあってることは確認済みですが、
どっかでバグったら自分で直してください…
本当はパワーシェルのコマンドラインから、ファイル名を引数入力〜〜〜ってやりたかったんですが、まあ、自分で使う分にはこれで十分かな、と。


ちなみに、パワーシェルファイルとして保存(.ps1)しちゃうと、実行権限とかが必要になるので、そのあたり、めんどくさいのでおすすめしません。
詳しくは、こういう記事を参照


とりあえず、これでフリーソフト禁止な会社でも、バイナリ出力が簡単だぞー。そうです自分用です。


幼稚なコード書いてごめんね!!!
どっとねっとは全然初心者だから許してね!!!!
| 鰒知 | 技術(powershell) | 22:43 | comments(1) | trackbacks(0) | Facebookに追加 はてなブックマークに追加 |

スポンサーサイト

| スポンサードリンク | - | 22:43 | - | - | Facebookに追加 はてなブックマークに追加 |
<< 家にいてもやることがない | main | FF6完走! >>
    $FilePath = "E:¥text.txt"

    #フルパスのファイルパスを入力↑

    $wd = 16 #バイト数/行
    $Output = New-Object System.String("")
    $pos = 0 #行数
    $mj = " ............................... ! $%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[¥]^_ abcdefghijklmnopqrstuvwxyz{|}~.128"
    Write-Output ""
    Write-Output " 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F"
    $ty = "--------" #------------------- -----------------------"
    for( $j = 0; $j -lt $wd; $j++){
    if( $j % 8 -eq 0){ $ty += " --" } else { $ty += "---" }
    }
    Write-Output $ty

    $tx = ""
    Foreach($item in Get-Content -Path $FilePath -Encoding byte)
    { #改行
    if($pos % $wd -eq 0){
    $Output = $pos.ToString("X").PadLeft(8,'0') + " "
    $tx = " "
    } #データ出力
    $Output += $item.ToString("X").PadLeft(2,'0') + " "
    $tx += $mj.Chars($item % 128)
    $pos = $pos + 1
    if( $pos % $wd -eq 0){
    $Output += $tx #ASCII表示
    Write-Output $Output }
    }

    if($pos % $wd -ne 0){
    for( $j = 0; $j -lt ($wd - ($pos % $wd)); $j++){$Output += " "}
    $Output += $tx #ASCII表示
    Write-Output $Output
    }

    Write-Output $ty
    $Output = $pos.ToString("X").PadLeft(8,'0')
    $Output += " " + $pos.ToString("d").PadLeft(0,'0') + " Bytes."
    Write-Output $Output
    | ASCII文字出力を追加してみました | 2016/11/26 12:26 PM |









    http://112123.jugem.jp/trackback/3747
    + CALENDER
       1234
    567891011
    12131415161718
    19202122232425
    262728    
    << February 2017 >>
    + PROFILE
    + Twitter
    + Search
    サイト内を検索
    + 鰒知のオススメ
    + SELECTED ENTRIES
    + RECENT COMMENTS
    + 広告
    + CATEGORIES
    + ARCHIVES
    + LINKS
     /PAGES