hakeの日記

Windows環境でプログラミングの勉強をしています。

OperaのUA偽装

daimaou-Kさんのブログ浪漫の7月9日の日記 ザウルスの吐き出す環境変数を拝見して、Operaのユーザーエージェントについて調べてみました。

OperaUAは、Opera7-jpn-helperのUserAgentの設定から3種類を選択することができます。私の使用しているOpera7.55では以下のような文字列になります。

ID=1:Opera/7.55 (Qt embedded; Linux armv5tel; 640x480; U) [en]
ID=2:Mozilla/4.78 (Qt embedded; Linux armv5tel; 640x480; U) Opera 7.55 [en]
ID=3:Mozilla/4.0 (compatible; MSIE 6.0; Qt embedded; Linux armv5tel; 640x480) Opera 7.55 [en]

なるほどこれでは、ザウルスのOperaだと容易に推測されてしまいますね。設定ファイルであるOpera.iniにはユーザーエージェントのID番号の設定しかないので、文字列はプログラム本体に含まれているようです。そこで/home/QtPalmtop/bin/operaバイナリエディタで調べてみました。

アドレス003c5100より
Opera/%s%%s (%%s; U) ~ [%%s]

アドレス003c50d8より
Mozilla/%%s (%%s; U) Opera %s ~ [%%s]

アドレス003c5120より
Mozilla/4.0 (compatible; MSIE %%s; %%s) Opera %s ~ [%%s]

という文字列があります。そこで各文字列を

003c510b:20->00
003c50e3:20->00
003c512b:20->00

の様に0x20を0x00に置き換えてみました。すると各IDでのユーザーエージェントは

ID=1:Opera/7.55
ID=2:Mozilla/4.78
ID=3:Mozilla/4.0

となりました、これならザウルスということは判らないです。先頭から適当な文字列を入れて最後を0x00にすれば、おそらくどんな文字列にすることも可能だと思います。


ユーザーエージェントの確認は以下のサイトを使用しました。
http://www.ugtop.com/spill.shtml