[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[port139ml:03343] Re: はせがわさん版jstrings 0.5



はせがわといいます。

Hideaki Iharaさんは 2003/5/23(金) 17:32 ごろ、
「[port139ml:03341] はせがわさん版jstrings 0.5」の
メールで書きました。

>Port139 伊原です。ネタもとは (R)日記。
>http://www.alles.or.jp/~hasepyon/

むぅ〜、いつのまにやら監視されてるし。

>なんか、sleuthkit-users でも Unicode 文字列検索どうするか?とかいう
>話題が流れてるみたいだから、どこでも問題になるんですかね。
>

jstrings 0.5 の Unicode(UTF-16) 対応は、実験的な実装で、かなり制限つき
のものです。ので期待しないでください。と一応言ってみるテスト。

で、man に書いてある

>    -s
>           文字列の先頭バイトがマルチバイト文字の先行バイトであった場
>           合には、それを読み捨て、2バイト目以降から文字列が始まってい
>           るものとする(Shift_JISおよびWindows-31Jでのみ有効)。

に関しては、ふぉれんじっくのためには少し補足が必要かもしれません。

例えば、Shift_JIS であろうバイト列(16進)
 
  81 82 82 82 83 82 84 82

があったとします。これをそのまま Shift_JIS に直すと、「≠bモр」という
意味のない文字列の断片なわけです。ところが、先頭の 81 を敢えて切り捨て
た上で Shift_JIS に直すと「bcd」とそれなりに意味のありそうな文字列に
なるわけです。

すなわち、多バイトのエンコーディングにおいては、文字列らしきバイト列を
見つけたときには、素直にその先頭からを文字列と見なしてはいけない、とい
うことになります。

通常のバイナリエディタや dump などでは当然、これらを見落としてしまうこ
とになります。

で、jstrings 0.5 の -s オプションは上記を実現するためのもので、現状では
Shift_JIS / Windows-31J にしか対応していませんが、UTF-16 なんかでも同じ
ことが言えますので、そのうち対応したいところです。

本来、こんなオプションをわざわざ指定しなくても、可能な限りの文字列を拾
い上げたいところですが、それをすると唯でさえ汚いソースが、さらに収集つ
かなくなりそうですので、ご勘弁を。


---
   はせがわ hasegawa@xxxxxxxxx

   "UNIX 4.3BSDの設計と実装" 復刊リクエスト投票募集中
   http://www.fukkan.com/vote.php3?no=4316