タグ

バイナリに関するtmsanrinshaのブックマーク (5)

  • 正規表現で「制御文字以外」のチェック - ockeghem's blog

    一般に、セキュアコーディングの基として入力値の検証(Validation)をせよということになっていますが、これが変な方向に行くといわゆる「サニタイズ」のような手法になってしまいます。以前も指摘したように、アプリケーションとしてのValidationは仕様に従って行うべきものです。 ですが、概ねどの場合でも行うべき検証として以下があると思います。 文字エンコーディングの妥当姓 制御文字(\x00〜\x1f, \x7f)のチェック 文字列長のチェック このうち後ろ二つを正規表現として書くにはどうすればいいかを考えていました。つまり、「制御文字以外の文字でm文字以上n文字以下」というようなチェックです。m文字以上、n文字以下は、{m,n}で書けるので、問題は「制御文字以外の文字」です。これはtextタイプのinput要素で、かつアプリケーション仕様としては文字種の制限をしない場合を想定してい

    正規表現で「制御文字以外」のチェック - ockeghem's blog
  • バイナリデータを16進数文字列に変換【Perl】 : morituriのブログ

    ■バイナリデータを16進数文字列に変換 適当な名前(「hex1」など)で以下のスクリプトを保存し、実行権限を与える。 #!/usr/bin/perl # 標準入力の終わりまでループ while (<>) { # バイナリデータを16進数文字列に変換 $hex = unpack("H*", "$_"); # 結果の文字列を標準出力に書き出す print $hex; } ※16進数文字列をバイナリデータに変換【Perl】の逆の操作をする ■実行例 例: パイプなどで標準入力からバイナリデータを入力 echo ABC | ./hex1 実行結果 4142430a ■同じスクリプトのワンライナー版 echo ABC | perl -ne 'print unpack("H*", "$_");' ■参考 ミケネコ研究所 / Perl / Perl の数値変換 while/for文を使い標準入力から繰り

    バイナリデータを16進数文字列に変換【Perl】 : morituriのブログ
  • Javaのhello worldの読み方 | mwSoft

    前書き お馴染み、hello worldのソース。 class Hello { public static void main(String[] args) { System.out.println("hello world"); } } このコードはコンパイルされると、こんなバイトコードになります。 ca fe ba be 00 00 00 32 00 22 07 00 02 01 00 05 48 65 6c 6c 6f 07 00 04 01 00 10 6a 61 76 61 2f 6c 61 6e 67 2f 4f 62 6a 65 63 74 01 00 06 3c 69 6e 69 74 3e 01 00 03 28 29 56 01 00 04 43 6f 64 65 0a 00 03 00 09 0c 00 05 00 06 01 00 0f 4c 69 6e 65 4e

  • 目grep入門 +解説

    目grep入門があまりにもKernelVM::入門だという指摘があったため、解説をつけてよりstd::入門に近づけてみました。

    目grep入門 +解説
  • スラッシュドットジャパン: shinichiro.h氏からのコメント - Binary Day 2008

    月並ですが、happy hacking と言ってみました(ちょっとした仕掛け付き)。 このGIFファイルは一見普通のGIFファイルですが、MS-DOSのCOMファイルとして実行可能です。実行するとHappy Hacking!と出力します。 WindowsならDOS窓で copy happy.gif happy.com happy.com など、Unix系ならdosemuを使って cp happy.gif happy.com dosemu -dumb happy.com などと実行できます。 と同時に、このGIFファイルは、Ruby及びPerlで実装されたCOM2TXTでもあります。第一引数に与えたCOMファイルをASCIIのみで表現したCOMファイルに変換することができます。引数を省略すると自分自身に対して処理を行ないます。つまり、 ruby happy.gif > happy_ruby.

  • 1