Download presentation
Presentation is loading. Please wait.
1
文字列検出ツール "istrings" の使い方
2005年7月9日 はせがわようすけ hasegawa openmya.hacker.jp @
2
Forensicでの文字列検出 dd で取得したディスクのイメージ ページファイル(メモリの残片) 電子メールの残骸 :
: 文字列の検出には strings コマンドを使う。 ファイル内で連続するASCII文字を表示する。
3
stringsコマンド 4文字以上のASCII 文字の連続を検出 ファイルに含まれる文字列を検出するツール。
A 0B 0C 0D 0E 0F ABCDEF 1E B E 6F 72 6D 61 6C 2E Normal.d 6F FA 1E ot C:\>strings 文書1.doc bjbj : 0 2 3 o0[0L0 Normal.dot Microsoft Word 9.0 4文字以上のASCII 文字の連続を検出
4
stringsコマンドの限界 jstrings 開発 ASCIIにしか対応していない 日本語の検出ができない
一部のstringsではUnicode可だが、これもASCII文字の範囲のみ。 日本語対応のstringsが 欲しいよぅ。 jstrings 開発
5
日本語対応の strings istrings 開発 jstrings Shift_JIS、EUC-JP、ISO-2022-JP に対応
文字コードに関連した部分を全てハードコーディングしているため拡張性がない Unicodeに ちゃんと対応して 欲しいよぅ。 istrings 開発
6
文字コードの基本 文字集合 文字をたくさん集めたもの 符号化文字集合 集めた文字に番号を順に振ったもの
エンコーディング メモリやディスク上での文字の表現方法
7
日本語対応の strings istrings 日本語以外にも多くの文字コードに対応した strings コマンド
エンコーディングの基本部分のみハードコーディング 文字集合は外部ファイルで定義 拡張性が高い あとから文字コードの追加が可能
8
基本的な使い方 5文字以上の文字列を検出 UTF-16の文字列を検出 -nオプション: 文字列とみなす文字数を指定
C:\>istrings -n 5 -iUTF-16 Book1.xls 5文字以上の文字列を検出 UTF-16の文字列を検出 -nオプション: 文字列とみなす文字数を指定 -iオプション: 文字コードを指定
9
2 4 3 4 設定ファイル 指定されたエンコーディングに関する情報を取得するため、起動時に設定ファイルを読み込む。 設定ファイル
C:\>istrings 2 3 4 設定ファイル マッピングファイル
10
設定ファイルの場所 以下の順に設定ファイルを探し、最初に見つかったものを読み込む。 -e オプションにより指定されたファイル
環境変数 ISTRINGS_INI により指定されたファイル コンパイル時に決定され、EXEファイルに埋め込まれたファイル
11
設定ファイルの内容 設定ファイルは、エンコーディングごとに以下のようなセクションを構成している。 エンコーディング名 [Shift_JIS]
alias=CP932 alias=Windows-31J system=DBCS mapfile0=C:\map\CP932-1.map mapfile1=C:\map\CP932-2.map : [エンコーディング名] 別名 エンコーディング種別 マッピングファイル
12
設定ファイルの内容 エンコーディング名、別名は - i オプションで指定される名称
C:\>istrings -iUS-ASCII file.xls C:\>istrings -iASCII file.xls [US-ASCII] alias=ASCII system=DBCS mapfile0=ascii.map :
13
設定ファイルの内容 エンコーディングの種別は、以下のいずれか
DBCS 一般的な1バイトまたは2バイトの文字コード Shift_JIS、ASCII、ISO-8859-* など UTF-8 UTF-16LE UTF-16BE [UTF-16LE] alias=UTF-16 system=UTF-16LE mapfile0=unicode.map :
14
マッピングファイル 指定されたエンコーディングにおいて有効な文字の範囲を定義したファイル 1文字のバイト数 bytecount=1 09
文字として有効な値
15
その他のオプション -f : ファイル名を表示する -p : 文字列の見つかった場所を表示する -c : 文字コードを表示する
-t : テキストモードで出力する C:\>istrings -f -p -c -t file.dat file.dat[ d](ASCII): This is a pen. file.dat[000000bf](ASCII): Delicias Wine. file.dat[000001d0](ASCII): Flesh tomato file.dat[000001f7](ASCII): PPT :
16
出力 結果は、コマンドラインで指定された文字コードで出力される。 iconv や wiconv のような文字コードコンバータを用いると便利
C:\>istrings -t -iUTF-16 file.dat | wiconv -fUTF-16 -t932 | more
17
応用 - base64の検出 bytecount=1 2B マッピングファイルを用意することにより、base64の残骸を検出できる。 2F
30-39 3D 41-5a 61-7a マッピングファイルを用意することにより、base64の残骸を検出できる。 ・・・ + ・・・ / ・・・ 0-9 ・・・ = ・・・ A-Z ・・・ a-z C:\>istrings -t -ibase64 file.eml : filename= attached grGC6oLNIGJhc2U2NCCCxYNHg5ODUoFbg2iCs4LqgumDdI gsggb3Blbm15YSBNTCCC5oLrgrWCrYLLgUINCg0KaHR0cD eXdvcmQvb3Blbm15YU1MDQoNCg==
18
課題 ISO-2022系のエンコーディングに対応できていない ISO-2022-JP、EUC-JP には jstrings が必要
UnicodeはBMP内の文字にしか対応していない コードが汚い、未整理
19
Q&A ご質問をどうぞ!! @ http://openmya.hacker.jp/hasegawa/
hasegawa openmya.hacker.jp @
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.