FGALDC 14
/RE:07976 RE:高速デコーダ
こんにちは、Emmett さん
》 decode64 って、nifty 経由で届いたメールでもデコードしてくれます? 僕もも
えっと、庄司さんの作られたツールのことですよね?
nifty 経由だろうがなんだろうがデコードしてくれていますよ。
あ、もしかしてログファイルをそのまま食わせてませんか?
このツール、純粋に BASE64 でエンコードされている部分しかデコードしてくれ
ませんから、使う際にはその部分をテンポラリに書き出して、それから食わせて
やる必要があります。あとは、ファイルの指定にちょっとクセがありますから、
私の場合は入力と出力をよく間違えるのですが、でもそれであれば、その手のメ
ッセージは出てきませんからたぶんこれは違うでしょう。
私が decode64 を使ったデコーダを作ると、カーソル位置より下の部分をデコー
ドする、という仕様にして、多分以下のようなロジックになるでしょう。
検索文字列に "filename=" を設定し #c
出力ファイル名取得
その次の空行を検出し、空行の次の文字で #b
検索文字列に "-" を設定し #c #e
テンポラリディレクトリにセーブ "tempfile" #m
コマンドラインに降りて "decode64 " 出力ファイル名 " < %tmp%tempfile"
あ〜、なんか作れそうな気もしてきたけど、Emmett さんの高速デコーダがあるの
に今更作るのも面倒なので中止。
》 本文自体は短くても(数行で)構わないんで、いくつか、イメージをつかめるよ
》 うなサンプル・データでもあれば、メールででも送ってもらえません? Subject
以下、いずれもSPAMの例です。
例1:HTML添付ファイルだけが quoted-printable の場合の添付部分
Content-Type: text/html;
charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable
=1B$B!J=3D>Mh>R2p@)$G9T$C$F$$$?%5!<%S%9$r;n83E*$KEE;R=1B(BDM=1B$=
B$G$40FFb$7$F$$$^$9!#=1B(B=20
例2:本体そのものが quoted-printable の場合
Subject: 未承諾広告※ ★ 馬券が10%オフで購入できる! ★
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Outlook Express 5.50.4522.1200
Content-Type: text/plain;
charset="iso-2022-jp"
<=1B$BAw?.=1B$B!!#I#R#F9q:]6%GOEjI<%7%9%F%`!JGO7t#1#0!s%*%U!*!K=1B=
(B
<=1B$B:#8e$NG[?.Dd;_4uK>$N>l9g$O=1B(B>
=1B$BBjL>$K!!G[?.ITMW!!$H$45-F~D:$-!"$3$N%a!<%k$r$=3D$N$^$^$4JV?.2<$5$k$+=
!"=1B(B
例3:中国語?
Subject: =?big5?Q?=B0_=A8B=3F!=C1=D9=ACO=AF=B8=A6b=AD=EC=C2I=3F!?=
Content-Type: text/plain;
Content-Transfer-Encoding: Quoted-Printable
X-UIDL: P1cnOdHkME1SMAE
=B1z=A6n:
=A7=DA=ACO=BF=CB=A9=F4=C1p=A6X=B3q=B8=F4=AA=BA=BEG=A9=B1=AA=F8=A1A
=A4=A7=ABe=A6=B3=BBP=B1z=B3q=B9L=B9q=B8=DC=A1A
》 それと、できれば、マクロコードよりも、エン
》 コードの「規則」そのものを単刀直入に教えてくださると助かります。
http://www.atmarkit.co.jp/icd/root/24/5784924.html より引用
》 Quoted Printableでは、バイナリデータのうち、文字としてそのまま
》送信できるデータ(「=」を除く0x21〜0x5E、0x60〜0x7E、スペース、
》タブ)はそのまま送信し、これ以外のデータを「=」+16進表記の文字に
》変換する。たとえば0x0Aなら、「=0A」という文字列に変換する。このよ
》うにQuoted Printableでは、文字としてそのまま送信できないデータに
》ついては、元の1byteのデータが3文字(3byte)になるので、キャラクタ
》コード以外のデータを多数含む場合には、送信効率が低下してしまうが、
》そうでない場合(キャラクタコードが多い場合)には、最小限のオーバー
》ヘッドですむという利点がある。
あと、上記には書いてありませんが、デコードの際、行末が "=" の場合にはその
次の改行は読み飛ばし、そうでない場合はそのまま改行を出力、という処理が必
要です。Vzマクロでいう、$ を使った文字列の継続のようなものですね。
としき