Movatterモバイル変換


[0]ホーム

URL:


Uploaded bymurachue
93,614 views

目grep入門 +解説

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

Embed presentation

目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

Recommended

PDF
【Unite Tokyo 2019】Understanding C# Struct All Things
PDF
オブジェクト指向できていますか?
PDF
SAT/SMTソルバの仕組み
PDF
ネットワーク ゲームにおけるTCPとUDPの使い分け
PPTX
Linuxのsemaphoreとmutexを見る 
PPT
Glibc malloc internal
PDF
オンラインゲームの仕組みと工夫
PPTX
本当は恐ろしい分散システムの話
PDF
ソーシャルゲームのためのデータベース設計
PDF
例外設計における大罪
PDF
暗号技術の実装と数学
PDF
心理的安全性を 0から80ぐらいに上げた話
PDF
テスト文字列に「うんこ」と入れるな
PDF
Dockerfile を書くためのベストプラクティス解説編
PDF
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
PDF
Pythonによる黒魔術入門
PDF
ゲーム開発者のための C++11/C++14
PPTX
DockerコンテナでGitを使う
PDF
C++ マルチスレッドプログラミング
PDF
DockerとPodmanの比較
PPTX
Redisの特徴と活用方法について
PDF
分散学習のあれこれ~データパラレルからモデルパラレルまで~
PDF
コンテナ未経験新人が学ぶコンテナ技術入門
PDF
明日使えないすごいビット演算
PPTX
30分で分かる!OSの作り方
PDF
マイクロにしすぎた結果がこれだよ!
PDF
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
PDF
素晴らしきメガデモの世界

More Related Content

PDF
【Unite Tokyo 2019】Understanding C# Struct All Things
PDF
オブジェクト指向できていますか?
PDF
SAT/SMTソルバの仕組み
PDF
ネットワーク ゲームにおけるTCPとUDPの使い分け
PPTX
Linuxのsemaphoreとmutexを見る 
PPT
Glibc malloc internal
PDF
オンラインゲームの仕組みと工夫
PPTX
本当は恐ろしい分散システムの話
【Unite Tokyo 2019】Understanding C# Struct All Things
オブジェクト指向できていますか?
SAT/SMTソルバの仕組み
ネットワーク ゲームにおけるTCPとUDPの使い分け
Linuxのsemaphoreとmutexを見る 
Glibc malloc internal
オンラインゲームの仕組みと工夫
本当は恐ろしい分散システムの話

What's hot

PDF
ソーシャルゲームのためのデータベース設計
PDF
例外設計における大罪
PDF
暗号技術の実装と数学
PDF
心理的安全性を 0から80ぐらいに上げた話
PDF
テスト文字列に「うんこ」と入れるな
PDF
Dockerfile を書くためのベストプラクティス解説編
PDF
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
PDF
Pythonによる黒魔術入門
PDF
ゲーム開発者のための C++11/C++14
PPTX
DockerコンテナでGitを使う
PDF
C++ マルチスレッドプログラミング
PDF
DockerとPodmanの比較
PPTX
Redisの特徴と活用方法について
PDF
分散学習のあれこれ~データパラレルからモデルパラレルまで~
PDF
コンテナ未経験新人が学ぶコンテナ技術入門
PDF
明日使えないすごいビット演算
PPTX
30分で分かる!OSの作り方
PDF
マイクロにしすぎた結果がこれだよ!
ソーシャルゲームのためのデータベース設計
例外設計における大罪
暗号技術の実装と数学
心理的安全性を 0から80ぐらいに上げた話
テスト文字列に「うんこ」と入れるな
Dockerfile を書くためのベストプラクティス解説編
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Pythonによる黒魔術入門
ゲーム開発者のための C++11/C++14
DockerコンテナでGitを使う
C++ マルチスレッドプログラミング
DockerとPodmanの比較
Redisの特徴と活用方法について
分散学習のあれこれ~データパラレルからモデルパラレルまで~
コンテナ未経験新人が学ぶコンテナ技術入門
明日使えないすごいビット演算
30分で分かる!OSの作り方
マイクロにしすぎた結果がこれだよ!

Similar to 目grep入門 +解説

PDF
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
PDF
素晴らしきメガデモの世界
PDF
Deflate
 
PDF
目grep入門
PDF
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
PDF
V6 unix in okinawa
PPTX
PHP でバイナリ変換プログラミング
 
PDF
2011.09.18 v7から始めるunix まとめ
PDF
ファイナル・ファンタジー2のデータを解析してみる
PDF
2015圧縮ゼミ
PDF
2011.06.11 v7から始めるunix まとめ
PDF
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
PDF
ゲームエフェクトセミナー:BISHAMONの導入と実践
PDF
Tokyo.R#16 wdkz
PDF
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
PDF
KLab勉強会#6 発表資料
PDF
【学習メモ#5th】12ステップで作る組込みOS自作入門
 
PDF
V6read#3
PDF
ソースコードリーディングの基礎
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
素晴らしきメガデモの世界
Deflate
 
目grep入門
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
V6 unix in okinawa
PHP でバイナリ変換プログラミング
 
2011.09.18 v7から始めるunix まとめ
ファイナル・ファンタジー2のデータを解析してみる
2015圧縮ゼミ
2011.06.11 v7から始めるunix まとめ
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
ゲームエフェクトセミナー:BISHAMONの導入と実践
Tokyo.R#16 wdkz
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
KLab勉強会#6 発表資料
【学習メモ#5th】12ステップで作る組込みOS自作入門
 
V6read#3
ソースコードリーディングの基礎

目grep入門 +解説


[8]ページ先頭

©2009-2025 Movatter.jp