• Save
目grep入門 +解説
Upcoming SlideShare
Loading in...5
×
 

目grep入門 +解説

on

  • 60,411 views

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

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

Statistics

Views

Total Views
60,411
Views on SlideShare
52,382
Embed Views
8,029

Actions

Likes
136
Downloads
1
Comments
0

49 Embeds 8,029

http://gamelocalize.blogspot.jp 4821
https://twimg0-a.akamaihd.net 785
https://bozuman.cybozu.com 766
https://twitter.com 401
https://si0.twimg.com 369
http://909.xii.jp 152
https://bozuman.s.cybozu.com 133
http://gamelocalize.blogspot.kr 116
http://us-w1.rockmelt.com 101
http://a0.twimg.com 64
http://gamelocalize.blogspot.com 57
https://cybozulive.com 42
http://twitter.com 32
http://favtile.com 27
http://tweetedtimes.com 20
http://translate.googleusercontent.com 14
http://gamelocalize.blogspot.tw 12
http://131.253.14.98 11
http://www.techgig.com 11
http://www.blogger.com 10
http://gamelocalize.blogspot.fr 9
http://pgtwitter.tumblr.com 8
http://webcache.googleusercontent.com 7
http://tokage.tumblr.com 7
http://asakusasatellite.heroku.com 7
http://pinterest.com 6
http://gamelocalize.blogspot.hu 6
http://gamelocalize.blogspot.ru 4
http://gamelocalize.blogspot.de 4
http://twicli.neocat.jp 3
http://hintsworks.sakura.ne.jp 2
http://gamelocalize.blogspot.com.es 2
http://gamelocalize.blogspot.com.br 2
https://tweetdeck.twitter.com 2
http://b.hatena.ne.jp 2
http://paper.li 1
http://gamelocalize.blogspot.co.uk 1
http://gamelocalize.blogspot.se 1
http://gamelocalize.blogspot.ch 1
http://gamelocalize.blogspot.ca 1
http://cloud.feedly.com 1
http://localhost 1
http://safe.tumblr.com 1
http://gamelocalize.blogspot.no 1
http://gamelocalize.blogspot.hk 1
http://de.twitter.com 1
https://jp.twitter.com 1
http://s.deeeki.com 1
http://gamelocalize.blogspot.com.tr 1
More...

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

目grep入門 +解説 目grep入門 +解説 Presentation Transcript

  • 目grep入門 +解説 murachue 1 / 83
  • いいわけ 1• なぜかよくわからないけど好評だったらしい• でも – いみわかんねwww – 後半が意味不明 – つーかそれ目grep言わないでしょ• というツッコミが…• 頭おかしいというのがうけたらしい? – 全然おかしくないよ!• が、人によっては「ためになる資料です!!」というコ メントもあったり 2 / 83
  • いいわけ 2• これはこまった• そもそも、自分で発表を見返して何言ってい るのかわからなかった件についてじゃあ解説つければいいんじゃね<いまここ> 3 / 83
  • と、いうわけで解説付きはじまりー 4 / 83
  • 何が必要? 5 / 83
  • はい、ヘキサエディタですね 6 / 83
  • • テキストエディタでもなんとかなる時はありま すが、基本的に辛いので無難にヘキサエディ タを選びましょう。 – Null文字が消えたりするし – プロポーショナル文字使われるし – 折り返し位置がばらばらだし – などなど…? 7 / 83
  • 8 / 83
  • 9 / 83
  • 10 / 83
  • • 3枚ほどhexdumpを見ていただきましたが、い かがでしょうか。 – さっぱり – 何の形式かは分かった – 個人特定した (こわい) 11 / 83
  • • 「おまいらバイナリアンはこんなものばっかり 見ているんじゃねーの」と思うかも知れません – 実際そういう時もあるけれど – ツール使うよ!!• その一つが… 12 / 83
  • 見える化(笑) 13 / 83
  • BZやstirlingにはビットマップ表示という機能があるので、それを使ってみましょう。BZの方がちょっぴり高機能です。 14 / 83
  • わかりやすい!(笑)なんてつけて正直スマンカッタ 15 / 83
  • ひたすら同じものが並んで退屈なものが… 一目でデータの違いがわかる!!(矢印の部分がそれぞれ違いますよね) 16 / 83
  • 目grepに必要な知識 •シグネチャ(マジックナンバー) •見た感じ(パターン)あくまで個人的な意見なので、人によって違うと思います。 17 / 83
  • ちなみに私の場合は、 18 / 83
  • ひたすらファイルを見る作業 によって鍛えられました… 19 / 83
  • というわけで、いろいろなファイルを見ていきましょう sample 20 / 83
  • • txt – Shift_JIS, EUC-JP, UTF-8, UTF-16… • ゲームが使うファイル • bmp • wav • exe, com, bin… • jpg, png, gif... • lzh, zip, cab, rar...下に行くほど規則性が無くなっていく(高エントロピー)ように並べてみました。あくまで感覚です。 21 / 83
  • 説明があまかった…• このスライドで説明するときに使うビットマップビューは Binary Editor BZのものです。 – stirlingも同じ色づけらしい….?• 1ドット1バイトに相当します。横幅128ドット。• 1ドットごとの色はその部分に当たるデータの値により ます。• 色づけは以下の通り – 白 : 0x00 (NULL文字) – 水色 : 0x01~0x1F (ASCII制御文字) – 赤 : 0x20~0x7F (ASCII普通の文字) – 黒 : 0x80~0xFF (MSBが立っている)• 詳しくはBZのヘルプをご覧ください。 22 / 83
  • • txt – Shift_JIS, EUC-JP, UTF-8, UTF-16…• ゲームが使うファイル• bmp• wav• exe, com, bin…• jpg, png, gif...• lzh, zip, cab, rar... 23 / 83
  • テキストファイルなの で普通に読めます。 ASCIIの普通の文字とたまにCR/LFの制御文字があるので 赤(ちょっと水色)になります ASCII 24 / 83
  • ASCII文字だけのUTF-16は 1文字ごとに0x00が入るので こんな感じになります。BOM ASCII(UTF-16) ビットマップは縦縞になります。 25 / 83
  • 日本語はMSBが立つことが多いので ビットマップは黒くなってきます。 日本語だけだとほとんど黒(+水色)に。 以降、ここはShift_JISで表示します。 これはShift_JISなので普通に読めます。 Shift_JIS Shift_JISは81、82が多い感じ (=ひらがな)。 26 / 83
  • EUC-JPは、Shift_JISより もうすこし黒いですね。 半角カナが多いです。Ax、Bx、Cxが多い? EUC-JP 27 / 83
  • EUC-JPよりもうちょっと黒い? 糸へんの漢字が多くなります。E3 xx xxが多いです。 UTF-8 28 / 83
  • ASCII文字があると縦線が見えます。日本語があるのに黒くない(赤い)。 (このサンプルではHexdump側は ASCIIしか見えない…) UTF-16 29 / 83
  • WindowsのexeファイルにはUTF-16な文字列が 入っていることが多いのでサンプルとして 持ってきてみました。(x86実行可能部分) UTF-16 0が多く見えますね! 30 / 83
  • • ここで紹介したtxtファイルは、あくまで日本語 が多い時の話です。• 韓国語や中国語など別の言語はあまり見な いのでよく知りません… – また別の見え方になると思います。 31 / 83
  • txt – Shift_JIS, EUC-JP, UTF-8, UTF-16…• ゲームが使うファイル• bmp• wav• exe, com, bin…• jpg, png, gif...• lzh, zip, cab, rar... 32 / 83
  • ゲームが使うファイルは モノによるので説明は適当…PNGの部分 このファイルには PNGファイルがありますね。 (臼NG、IHDR、IDATなど…) よくあるのはパラメータとかが 書いてあるパターンで、 固定長(縦か斜めに揃う)で 疎な感じに見えます。 33 / 83
  • txt – Shift_JIS, EUC-JP, UTF-8, UTF-16…ゲームが使うファイル• bmp• wav• exe, com, bin…• jpg, png, gif...• lzh, zip, cab, rar... 34 / 83
  • BMPのシグネチャ この画像の場合 カーブの部分がビットマップビューに見えますBMPのようなべた画像の場合は 繰り返しが見られます。 35 / 83
  • BZの色づけで残念な例は白っぽい画像は真っ黒になってしまい、 ビットマップと気づきにくい所です。 36 / 83
  • txt – Shift_JIS, EUC-JP, UTF-8, UTF-16…ゲームが使うファイルbmp• wav• exe, com, bin…• jpg, png, gif...• lzh, zip, cab, rar... 37 / 83
  • wavファイルのようなべた音声は まだら模様が見えます。 wavファイルの同じ文字が繰り返される シグネチャ ことが多いPCM 11k 8bit mono 38 / 83
  • 16bitはまだら+点々が見えます。PCM 11k 16bit mono 39 / 83
  • (拡大)PCM 11k 16bit mono 40 / 83
  • ADPCMは水色が多いことが 多かったです。 ADPCMの場合、 まだら模様は見えにくいです。 でも水色率の波は見えたかも。ADPCM 11k 4bit mono 41 / 83
  • txt – Shift_JIS, EUC-JP, UTF-8, UTF-16…ゲームが使うファイルbmpwav• exe, com, bin…• jpg, png, gif...• lzh, zip, cab, rar... 42 / 83
  • 黒っぽい 白・水色っぽい 赤っぽい ぐちゃー ごま塩 ARM、MIPS、SPARCは x86は命令が 命令が固定長(32bit)なので縦に揃う 可変長なので 揃わない (ここではTHUMBモードは無かったことに…) 43 / 83
  • x86-64は赤っぽい ですね。 (ごま塩)ごまではない塩。 白の部分が 多いような 気がします。 44 / 83
  • txt – Shift_JIS, EUC-JP, UTF-8, UTF-16…ゲームが使うファイルbmpwavexe, com, bin…• jpg, png, gif...• lzh, zip, cab, rar... 45 / 83
  • ヘッダ部分 JPGなど圧縮された JPEGのシグネチャデータがあるファイルはぐちゃぐちゃに見えます。 jpg (元画像) 46 / 83
  • やはりデータ部は ぐちゃぐちゃ ZIPファイルの シグネチャヘッダ部 zip 47 / 83
  • gzipのシグネチャ 1F 8B (08)はあまりにも有名やはりデータ部は ぐちゃぐちゃ (おまけ)gzip 48 / 83
  • (PDFの一部より、選択部分) zlibのシグネチャ。78 9Cは有名。 他にも78 DA、78 01などたまにありやはりデータ部は ぐちゃぐちゃ (あ、ここPDF部分ですね…) (おまけ) zlib 49 / 83
  • • まめちしき: zip、gzip、zlibのデータ部分はどれ もdeflateという同じアルゴリズムで圧縮されて います。• 圧縮されている部分はさすがに読めないので、 これらは(私の場合)ヘッダを頼りに探していく ことになります。 50 / 83
  • • ちなみに、圧縮されているデータの他に、暗 号化されたデータも同じようにぐちゃぐちゃに 見えます。• 見分けはつかないと思います…。(ヘッダ等を 参考にできるなら別) 51 / 83
  • 実践 52 / 83
  • 某ルータのファームウェア 53 / 83
  • おなじみgzipのシグネチャだ!! 54 / 83
  • (展開後)むむっ、縦に並んでいて水色っぽい…MIPSだな!? 55 / 83
  • (スクロール後)ASCIIテキストだ! ra、fp、hi、lo… MIPSで間違いないな! 56 / 83
  • (さらにスクロール後) この感じ…音声かビットマップか? 57 / 83
  • 音声でしたー (μ-law) 58 / 83
  • 某CTFの問題 ばらばらzip 59 / 83
  • Unallocatedって… 不吉だなあ… 56MB… 60 / 83
  • Unallocatedで不吉ってなによ• 最近、CTF(ハッキングコンテスト)の問題として出 始めました• ファイルシステムの未使用領域(unallocated area)だけを切り取ったファイルを渡されるので、 そこからkeyを見つけ出す作業になります• 削除されたファイルが鍵となることが多いです• ファイル名、クラスタチェーンなどの情報 (metadata)が無いため、解くのはかなり難しい事 が多いです – かなり断片化してたら解くのは無理レベル 61 / 83
  • なんじゃこりゃ?なにか構造を持っていそうだが…UTF-16のASCIIのようなものもあるな… 62 / 83
  • (スクロール後)x86のコードもあるぞ… この混沌具合、 どう見てもunallocatedです。 本当にありがとうございました。 63 / 83
  • (さらにスクロール後) むむ、怪しいzipファイル…! (keyfileってファイル名…!!) ビットマップビューを参考に切り取ってみて展開してみたが、 壊れていると表示され駄目。 64 / 83
  • (さらにさらにスクロール後) FILEレコードがある… どうやらNTFSの未使用領域を 集めたモノらしいな。FILEレコードが並んでいるのでここはMFTだった場所らしい。ここには例のzipファイルの情報は ありませんでした…。 65 / 83
  • (さらーーーにスクロール後) むむっ、このぐちゃぐちゃ具合、圧縮データor暗号化されたデータだな!?(さっきのzipとくっつけてみたが、やはり 壊れていると表示されてだめでした。) 66 / 83
  • 一旦例のあやしいzipがあった 場所に戻ってみるそういえば、ビットマップビューに 縞々が見えないか…? (普通の圧縮されたデータなら このような縞々はでないはず…) 67 / 83
  • (拡大) こんな感じに… 68 / 83
  • (拡大)(ディスプレイの性能に左右されるかも…) 69 / 83
  • スクロール後気づいたら、同じような縞々が 見える場所が ほかにもあるぞ!? 70 / 83
  • さらにスクロール後 ここも縞々だ と思ったらzipの終わりが見えた 71 / 83
  • さっきの縞々があった部分くっつけたらいけるんじゃね…!?? 72 / 83
  • 「CRC エラーはありません。」 いけちゃった━━(゚∀゚)━━!! 73 / 83
  • 早速keyfileを展開してみました。 うーん、知らない形式だなあ…でもこの感じ、べた形式に見える。 音声かビットマップかな? 74 / 83
  • スクロール後 なんとなく、ビットマップのような気がするな… rawファイルを表示できる 画像ビューアで見てみるか! 75 / 83
  • すごくビットマップっぽい! 幅を変えてみて… 76 / 83
  • keyキタ━━━(゚∀゚)━━━!! この問題の答えは sm4rtc4rvin9でした。 77 / 83
  • 目grep入門 完解説はもうちょっとだけ続くのじゃ 78 / 83
  • • いかがでしたか?• すこしでも分かっていただけたら幸いです。• 他にもPNGやGIFやmp3やLZHや7zやBZ2や LZSS(アルゴリズム)やLZMAやXORで暗号化され たデータなどなどなどなど…も盛り込みたい所です が、力尽きました。 – (というより、よくこの内容8分で話したな…) – 以上の形式はみなさまの宿題ということで。 – \えー/ 79 / 83
  • 解決したかな?• いみわかんねwww• 後半が意味不明 – おわかりいただけたと思います。• つーかそれ目grep言わないでしょ – 私の場合、元々CTFでkeyを探すところから知られ たので、目grepと言われていました。 – 「というかg/re/pではないよね」というツッコミに関 しては…まあその通りだと思います。reもpもない し… 80 / 83
  • おまけ• 知らないファイルを知るために私がよくやるこ と – とりあえずヘキサエディタで開く – ビットマップビューを眺めてみる – [サイズ][データ]のような構造が無いか見る – 仕様書があればそれに目を通してみる – ググる *超重要* 81 / 83
  • と、いうわけでですね• バイナリアンヘキサリアン(なにそれ)の生態を少 しは分かっていただけたと思います。 – 大したことないですよね。 – 昔の人は今回の内容を「普通じゃん」と思うような スキルを持っていたらしいですし。• それではまた~ (・∀・)ノシ 82 / 83
  • 目grep入門 +解説 完 83 / 83