文字列検出ツール "istrings" の使い方

Slides:



Advertisements
Similar presentations
Webmail IMP の日本語化 筑波大学 研究基盤総合センター 木村 博美. レジュメ IMP の紹介 作業の経過 日本語化の作業内容 今後.
Advertisements

1 第5回 配列. 2 今回の目標 マクロ定義の効果を理解する。 1次元配列を理解する。 2次元配列を理解する。 ☆2 × 2の行列の行列式を求めるプログラ ムを作成する.
Copyright © the University of Tokyo 文字化けの背景を知る. Copyright © the University of Tokyo 課題の概要 日本語の文字コードについて理解を深める  MacOS( テキストエディット ) で利用可能なエ ンコーディング ( コード化方式.
Copyright © the University of Tokyo 文字化けの背景を知る. Copyright © the University of Tokyo 課題の概要 日本語の文字コードについて理解を深める  MacOS( テキストエディット ) で利用可能なエ ンコーディング ( コード化方式.
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
Ddによる複製 2004/05/24 伊原 秀明(Port139).
TeX で数式を書くための PowerPoint アドイン Ver (2011/06/26) Ver. 0.1 (2007/5/30)
LZ符号化 森田 岳史.
MS-Word ⇒ XML 2001/10 マウスをクリックしてください。(カーソルはどこにあっても結構です。)次ページが表示されます。
演算、整数型と浮動小数点型 第3回目 [4月27日、H.16(‘04)] 本日のメニュー 1)前回の課題・宿題 2)ファイルサーバの利用
情報処理演習C2 ファイル操作について (2).
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
TeX で数式を書くための PowerPoint アドイン Ver. 0.1 (2007/5/30)
2007 Microsoft Office system クイックガイド
情報理工学部 情報システム工学科 ラシキアゼミ3年 H 岡田 貴大
Microsoft Office 2010 クイックガイド ~Access編~
伺か with なでしこ 発表者:しらたま /05/05 うかべん大阪#3.
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
プログラミング演習Ⅱ 第12回 文字列とポインタ(1)
コードの歴史 ASCII(American Standard Code for Information Interchange)  ANSI ISO 646 = 95文字のラテン文字 アルファベット+数字+特殊文字 制御コード: LF, CR などの表示制御と   ACK,DEL などの通信制御 、など.
地理情報システム論 第3回 コンピュータシステムおける データ表現(1)
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
第2章 ソフトウェアの基礎知識 電子制御設計製図Ⅰ    2010年5月11日 Ⅲ限目.
第2章 ソフトウェアの基礎知識.
文字化けの背景を知る.
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング システムプログラミング プロセス間通信(パイプ) 担当:青木義満
MSBuild 色々出来るよ 2011/04/02 お だ.
マスタリング バベル Boost.勉強会 #2 ( ).
13 Microsoft Word(4) 13.1数式の入力 Microsoft 数式の起動
初年次セミナー 第2回 文字の出力.
Microsoft Office 2010 クイックガイド ~応用編~
川口真司 松下誠 井上克郎 大阪大学大学院情報科学研究科
文字化けの背景を知る.
文字化けの背景を知る.
情報工学科 3年生対象 専門科目 システムプログラミング 第5回、第6回 ヒアドキュメント レポート課題 情報工学科 篠埜 功.
芝野耕司 ISO/IEC JTC1/SC2 (Coded Character Sets)委員長 東京外国語大学
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
プログラミング応用 printfと変数.
独習XML 第2章 XML文書の構成要素 2.1 XMLの文字と文字列 2.2 コメント
文字の表現.
アルゴリズムとデータ構造 補足資料5-1 「メモリとポインタ」
第4回 コンピューティングの要素と構成 平成22年5月10日(月)
文字エンコーディング 2010年7月.
第2章 ソフトウェアの基礎知識 電子制御設計製図Ⅰ    2010年5月19日 Ⅱ限目.
プログラミング基礎B 文字列の扱い.
情報コミュニケーション入門b 第11回 Web入門(2)
B演習(言語処理系演習)第2回 田浦.
情報コミュニケーション入門e 第12回 Part1 Web入門(2)
プログラミング演習I 2003年7月2日(第11回) 木村巌.
地理情報システム論(総)/ 国民経済計算論(商)
短い部分文字列の ミスマッチトレランスを 高速計算するアルゴリズム
TeX で数式を書くための PowerPoint アドイン Ver. 0.1 (2007/5/30)
日本語独特のL10N問題とは? 各社仕様の拡張文字 複数の符号化 規格の混乱など Unicodeとのマッピング
情報コミュニケーション入門e 第12回 Part1 Web入門(2)
TeX で数式を書くための PowerPoint アドイン Ver. 0.1 (2007/5/30)
Microsoft Office 2010 クイックガイド ~応用編~
情報処理Ⅱ 2006年11月24日(金).
情報処理Ⅱ 第7回 2004年11月16日(火).
Make の使い方.
高度プログラミング演習 (11).
情報処理Ⅱ 2007年12月3日(月) その1.
オペレーティングシステム 作成 T21R003 荏原 寛太.
CADシステムとソフトウェア 電子制御設計製図Ⅰ    2009年4月28日 Ⅲ限目.
情報処理Ⅱ 2005年11月25日(金).
情報処理概論Ⅰ 2007 第11回 2007/7/4 情報処理概論Ⅰ 第11回.
第4回 配列.
第5回 配列.
第3回Bashゼミ for文処理について 発表者 直江 宗紀.
Presentation transcript:

文字列検出ツール "istrings" の使い方 2005年7月9日 はせがわようすけ hasegawa openmya.hacker.jp @

Forensicでの文字列検出 dd で取得したディスクのイメージ ページファイル(メモリの残片) 電子メールの残骸 :    : 文字列の検出には strings コマンドを使う。 ファイル内で連続するASCII文字を表示する。

stringsコマンド 4文字以上のASCII 文字の連続を検出 ファイルに含まれる文字列を検出するツール。 00 01 02 03 04 05 06 07 08-09 0A 0B 0C 0D 0E 0F 0123456789ABCDEF 1E 00 00 00 0B 00 00 00 4E 6F 72 6D 61 6C 2E 64 ........Normal.d 6F 74 00 FA 1E 00 00 00 13 00 00 00 20 20 20 20 ot.......... 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 00 C:\>strings 文書1.doc bjbj  : 0 2 3 o0[0L0 Normal.dot Microsoft Word 9.0 4文字以上のASCII 文字の連続を検出

stringsコマンドの限界 jstrings 開発 ASCIIにしか対応していない 日本語の検出ができない 一部のstringsではUnicode可だが、これもASCII文字の範囲のみ。 日本語対応のstringsが 欲しいよぅ。 jstrings 開発

日本語対応の strings istrings 開発 jstrings Shift_JIS、EUC-JP、ISO-2022-JP に対応 文字コードに関連した部分を全てハードコーディングしているため拡張性がない Unicodeに ちゃんと対応して 欲しいよぅ。 istrings 開発

文字コードの基本 文字集合 文字をたくさん集めたもの 符号化文字集合 集めた文字に番号を順に振ったもの エンコーディング メモリやディスク上での文字の表現方法

日本語対応の strings istrings 日本語以外にも多くの文字コードに対応した strings コマンド エンコーディングの基本部分のみハードコーディング 文字集合は外部ファイルで定義 拡張性が高い あとから文字コードの追加が可能

基本的な使い方 5文字以上の文字列を検出 UTF-16の文字列を検出 -nオプション: 文字列とみなす文字数を指定 C:\>istrings -n 5 -iUTF-16 Book1.xls 5文字以上の文字列を検出 UTF-16の文字列を検出 -nオプション: 文字列とみなす文字数を指定 -iオプション: 文字コードを指定

2 4 3 4 設定ファイル 指定されたエンコーディングに関する情報を取得するため、起動時に設定ファイルを読み込む。 設定ファイル C:\>istrings 2 3 4 設定ファイル マッピングファイル

設定ファイルの場所 以下の順に設定ファイルを探し、最初に見つかったものを読み込む。 -e オプションにより指定されたファイル 環境変数 ISTRINGS_INI により指定されたファイル コンパイル時に決定され、EXEファイルに埋め込まれたファイル

設定ファイルの内容 設定ファイルは、エンコーディングごとに以下のようなセクションを構成している。 エンコーディング名 [Shift_JIS] alias=CP932 alias=Windows-31J system=DBCS mapfile0=C:\map\CP932-1.map mapfile1=C:\map\CP932-2.map : [エンコーディング名] 別名 エンコーディング種別 マッピングファイル

設定ファイルの内容 エンコーディング名、別名は - i オプションで指定される名称 C:\>istrings -iUS-ASCII file.xls C:\>istrings -iASCII file.xls [US-ASCII] alias=ASCII system=DBCS mapfile0=ascii.map :

設定ファイルの内容 エンコーディングの種別は、以下のいずれか 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 :

マッピングファイル 指定されたエンコーディングにおいて有効な文字の範囲を定義したファイル 1文字のバイト数 bytecount=1 09 文字として有効な値

その他のオプション -f : ファイル名を表示する -p : 文字列の見つかった場所を表示する -c : 文字コードを表示する -t : テキストモードで出力する C:\>istrings -f -p -c -t file.dat file.dat[0000004d](ASCII): This is a pen. file.dat[000000bf](ASCII): Delicias Wine. file.dat[000001d0](ASCII): Flesh tomato file.dat[000001f7](ASCII): PPT :

出力 結果は、コマンドラインで指定された文字コードで出力される。 iconv や wiconv のような文字コードコンバータを用いると便利 C:\>istrings -t -iUTF-16 file.dat | wiconv -fUTF-16 -t932 | more

応用 - 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==

課題 ISO-2022系のエンコーディングに対応できていない ISO-2022-JP、EUC-JP には jstrings が必要 UnicodeはBMP内の文字にしか対応していない コードが汚い、未整理

Q&A ご質問をどうぞ!! @ http://openmya.hacker.jp/hasegawa/ hasegawa openmya.hacker.jp @