Movatterモバイル変換


[0]ホーム

URL:


Uploaded bymurachue
93,871 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

PPTX
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
PDF
テスト文字列に「うんこ」と入れるな
PDF
オンラインゲームの仕組みと工夫
PPTX
「おうちクラウド」が今熱い!
PDF
低レイヤー入門
PDF
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
PDF
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PDF
新入社員のための大規模ゲーム開発入門 サーバサイド編
PDF
プログラムを高速化する話
PPTX
テストコードの DRY と DAMP
PDF
こわくない Git
PDF
Twitterのsnowflakeについて
PPTX
Dockerからcontainerdへの移行
PDF
フロー効率性とリソース効率性について #xpjug
PDF
イミュータブルデータモデル(入門編)
PPTX
DockerコンテナでGitを使う
PDF
Docker Compose 徹底解説
PPTX
近年のHierarchical Vision Transformer
PPT
メタプログラミングって何だろう
PDF
WebAssemblyのWeb以外のことぜんぶ話す
PPTX
本当は恐ろしい分散システムの話
PDF
ソーシャルゲームのためのデータベース設計
PDF
SAT/SMTソルバの仕組み
PDF
Docker入門 - 基礎編 いまから始めるDocker管理
PPTX
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
PDF
例外設計における大罪
PDF
マイクロにしすぎた結果がこれだよ!
PDF
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
PDF
目grep入門
PDF
KLab勉強会#6 発表資料

More Related Content

PPTX
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
PDF
テスト文字列に「うんこ」と入れるな
PDF
オンラインゲームの仕組みと工夫
PPTX
「おうちクラウド」が今熱い!
PDF
低レイヤー入門
PDF
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
PDF
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PDF
新入社員のための大規模ゲーム開発入門 サーバサイド編
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
テスト文字列に「うんこ」と入れるな
オンラインゲームの仕組みと工夫
「おうちクラウド」が今熱い!
低レイヤー入門
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
新入社員のための大規模ゲーム開発入門 サーバサイド編

What's hot

PDF
プログラムを高速化する話
PPTX
テストコードの DRY と DAMP
PDF
こわくない Git
PDF
Twitterのsnowflakeについて
PPTX
Dockerからcontainerdへの移行
PDF
フロー効率性とリソース効率性について #xpjug
PDF
イミュータブルデータモデル(入門編)
PPTX
DockerコンテナでGitを使う
PDF
Docker Compose 徹底解説
PPTX
近年のHierarchical Vision Transformer
PPT
メタプログラミングって何だろう
PDF
WebAssemblyのWeb以外のことぜんぶ話す
PPTX
本当は恐ろしい分散システムの話
PDF
ソーシャルゲームのためのデータベース設計
PDF
SAT/SMTソルバの仕組み
PDF
Docker入門 - 基礎編 いまから始めるDocker管理
PPTX
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
PDF
例外設計における大罪
PDF
マイクロにしすぎた結果がこれだよ!
PDF
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
プログラムを高速化する話
テストコードの DRY と DAMP
こわくない Git
Twitterのsnowflakeについて
Dockerからcontainerdへの移行
フロー効率性とリソース効率性について #xpjug
イミュータブルデータモデル(入門編)
DockerコンテナでGitを使う
Docker Compose 徹底解説
近年のHierarchical Vision Transformer
メタプログラミングって何だろう
WebAssemblyのWeb以外のことぜんぶ話す
本当は恐ろしい分散システムの話
ソーシャルゲームのためのデータベース設計
SAT/SMTソルバの仕組み
Docker入門 - 基礎編 いまから始めるDocker管理
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
例外設計における大罪
マイクロにしすぎた結果がこれだよ!
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する

Similar to 目grep入門 +解説

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

目grep入門 +解説


[8]ページ先頭

©2009-2026 Movatter.jp