Fork me on GitHub

2009/07/21

Recent entries from same category

  1. javascriptで動くtwitter streamクライアントを作るならばmultipart/mixedを使うべき Hatena
  2. バッチファイルで簡易Webサーバを起動する。 Hatena
  3. twitter.bat Hatena
  4. XSLTを使ったAmazon最速検索が動くようになった。 Hatena
  5. IEとFirefox/Google Chromeでクリック/ダブルクリックの発生回数が異なる。 Hatena

はてな
jjencode素晴らしいですね。記号だけでjavascriptが実行出来てしまいます。
何かに使えないかなーと考えて、apacheのmod_ext_filterを使ってjavascriptの難読サーブをやってみようかと思います。
javascriptエンジンとして使うのは、v8。本当は全部Cで書けば速いのでしょうがメンドクサイのでやりません。
以下フィルタのソース
crypt-js.cc
#include <v8.h>
#include <string>
#include <iostream>

static std::string&
replace_string(std::string& str, const std::string from, const std::string dest) {
    std::string::size_type n, nb = 0;
    while((n = str.find(from, nb)) != std::string::npos) {
        str.replace(n, from.size(), dest);
        nb = n + dest.size();
    }
    return str;
}

v8::Handle<v8::Value> Print(const v8::Arguments& args) {
  bool first = true;
  for (int i = 0; i < args.Length(); i++) {
    v8::HandleScope handle_scope;
    if (first) {
      first = false;
    } else {
      printf(" ");
    }
    v8::String::Utf8Value str(args[i]);
    const char* cstr = *str ? *str : "";
    printf("%s", cstr);
  }
  printf("\n");
  return v8::Undefined();
}

int main(int argc, char* argv[]) {
  v8::V8::SetFlagsFromCommandLine(&argc, argv, true);
  v8::HandleScope handle_scope;
  v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New();
  global->Set(v8::String::New("print"), v8::FunctionTemplate::New(Print));
  v8::Handle<v8::Context> context = v8::Context::New(NULL, global);
  v8::Context::Scope context_scope(context);

  std::string line, content;
  while(!std::cin.eof()) {
    std::getline(std::cin, line);
    content += line;
  }
  replace_string(content, "\\", "\\\\");
  replace_string(content, "'", "\\'");
  line = "var text = '";
  line += content;
  line += "';";
  line +=
    "var r=\"\";"
    "var n;"
    "var t;"
    "var b=[ \"___\", \"__$\", \"_$_\", \"_$$\", \"$__\", \"$_$\", \"$$_\", \"$$$\", \"$___\", \"$__$\", \"$_$_\", \"$_$$\", \"$$__\", \"$$_$\", \"$$$_\", \"$$$$\", ];"
    "for( var i = 0; i < text.length; i++ ){"
    "    n = text.charCodeAt( i );"
    "    if( n < 128 ){"
    "        r += \"\\\"\\\\\\\\\\\"+\" + n.toString( 8 ).replace( /[0-7]/g, function(c){ return \"$.\"+b[ c ]+\"+\" } );"
    "    }else{"
    "        r += \"\\\"\\\\\\\\\\\"+$._+\" + n.toString(16).replace( /[0-9a-f]/gi, function(c){ return \"$.\"+b[parseInt(c,16)]+\"+\"} );"
    "    }"
    "}"
    "print("
    "\"$=~[];$={___:++$,$$$$:(![]+\\\"\\\")[$],__$:++$,$_$_:(![]+\\\"\\\")[$],_$_:++$,$_$$:({}+\\\"\\\")[$],$$_$:($[$]+\\\"\\\")[$],_$$:++$,$$$_:(!\\\"\\\"+\\\"\\\")[$],$__:++$,$_$:++$,$$__:({}+\\\"\\\")[$],$$_:++$,$$$:++$,$___:++$,$__$:++$};\"+"
    "\"$.$_=\"+"
    "\"($.$_=$+\\\"\\\")[$.$_$]+\"+"
    "\"($._$=$.$_[$.__$])+\"+"
    "\"($.$$=($.$+\\\"\\\")[$.__$])+\"+"
    "\"((!$)+\\\"\\\")[$._$$]+\"+"
    "\"($.__=$.$_[$.$$_])+\"+"
    "\"($.$=(!\\\"\\\"+\\\"\\\")[$.__$])+\"+"
    "\"($._=(!\\\"\\\"+\\\"\\\")[$._$_])+\"+"
    "\"$.$_[$.$_$]+\"+"
    "\"$.__+\"+"
    "\"$._$+\"+"
    "\"$.$;\"+"
    "\"$.$$=\"+"
    "\"$.$+\"+"
    "\"(!\\\"\\\"+\\\"\\\")[$._$$]+\"+"
    "\"$.__+\"+"
    "\"$._+\"+"
    "\"$.$+\"+"
    "\"$.$$;\"+"
    "\"$.$=($.___)[$.$_][$.$_];\"+"
    "\"$.$($.$($.$$+\\\"\\\\\\\"\\\"+\" + r + \"\\\"\\\\\\\"\\\")())();\");";
  v8::Handle<v8::String> source = v8::String::New(line.c_str(), line.size());
  v8::TryCatch try_catch;
  v8::Handle<v8::Script> script = v8::Script::Compile(source, v8::String::New(""));
  v8::Handle<v8::Value> result = script->Run();
  return 0;
}

エスケープして変数textに入れて、残りはjjencodeそのままです。
これをhttpd.confで以下の様に設定します。
LoadModule ext_filter_module modules/mod_ext_filter.so
ExtFilterDefine crypt_js mode=output intype=application/x-javascript cmd="/path/to/crypt-js"
出来ました。簡単ですね。
これで以下のjavascriptをダウンロードしてみます。
window.alert('hasegawa!');
コマンドラインから...
curl http://localhost:8080/filter/foo.js
$=~[];$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:(![]+"")[$],_$_:++$,$_$$:({}+"")[$],$$_$:($[$]+"")[$],_$$:++$,$$$_:(!""+"")[$],$__:++$,$_$:++$,$$__:({}+"")[$],$$_:++$,$$$:++$,$___:++$,$__$:++$};$.$_=($.$_=$+"")[$.$_$]+($._$=$.$_[$.__$])+($.$$=($.$+"")[$.__$])+((!$)+"")[$._$$]+($.__=$.$_[$.$$_])+($.$=(!""+"")[$.__$])+($._=(!""+"")[$._$_])+$.$_[$.$_$]+$.__+$._$+$.$;$.$$=$.$+(!""+"")[$._$$]+$.__+$._+$.$+$.$$;$.$=($.___)[$.$_][$.$_];$.$($.$($.$$+"\""+"\\"+$.__$+$.$$_+$.$$$+"\\"+$.__$+$.$_$+$.__$+"\\"+$.__$+$.$_$+$.$$_+"\\"+$.__$+$.$__+$.$__+"\\"+$.__$+$.$_$+$.$$$+"\\"+$.__$+$.$$_+$.$$$+"\\"+$.$_$+$.$$_+"\\"+$.__$+$.$__+$.__$+"\\"+$.__$+$.$_$+$.$__+"\\"+$.__$+$.$__+$.$_$+"\\"+$.__$+$.$$_+$._$_+"\\"+$.__$+$.$$_+$.$__+"\\"+$.$_$+$.___+"\\"+$.$__+$.$$$+"\\"+$.__$+$.$_$+$.___+"\\"+$.__$+$.$__+$.__$+"\\"+$.__$+$.$$_+$._$$+"\\"+$.__$+$.$__+$.$_$+"\\"+$.__$+$.$__+$.$$$+"\\"+$.__$+$.$__+$.__$+"\\"+$.__$+$.$$_+$.$$$+"\\"+$.__$+$.$__+$.__$+"\\"+$.$__+$.__$+"\\"+$.$__+$.$$$+"\\"+$.$_$+$.__$+"\\"+$.$$$+$._$$+"\"")())();
おぉ!
HTMLから実行してみました。
hasegawa-crypt-js
おぉ!

これいいね!とか思ってjQueryでやってみたら、30秒以上は戻って来ませんでした... orz

blog comments powered by Disqus
WriteBacks

ドラゴンクエスト9 ドラクエ9 R4マジコン対策パッチ回避コード攻略

ドラゴンクエスト9 ドラクエ9 R4マジコン対策パッチ回避コード攻略

Posted by ドラゴンクエスト9 ドラクエ9 R4マジコン対策パッチ回避コード攻略 at 2009/07/24 (Fri) 09:47:28

美STORY ちょいポニョな梅宮アンナのヌード

雑誌「美STORY」梅宮アンナがフルヌードを披露

Posted by 梅宮アンナ 美STORYの衝撃フルヌード at 2009/09/22 (Tue) 06:25:36

閲覧注意!少女射殺映像

世界中に衝撃!イランの首都テヘランで、十代の少女が胸部を銃で撃たれ死亡する映像・・閲覧注意!

Posted by 衝撃映像 リアルすぎ!少女射殺 at 2009/09/22 (Tue) 07:28:28

おっぱい振り子打法!?推定世界一の巨乳プロゴルファー!新井麻衣

女子ゴルフですごいおっぱいデカい子いるでしょー?

Posted by 注目!女子ゴルフ at 2009/09/23 (Wed) 10:06:48

モザイクは消えるのか?という実験

AVのモザイクが消えるツールとやらをテストしてみた

Posted by AVのモザイクが消えるツールのテスト at 2009/09/23 (Wed) 10:41:35

秋葉原 現役メイドの過激なサービスも?生放送webラジオ「こすなま!」

秋葉原の現役メイドによる、視聴者参加型の生放送webラジオがサービス開始

Posted by メイド生放送ラジオ局「こすなま!」サービス開始!! at 2009/09/24 (Thu) 22:01:30

Folder 5のAKINAがすごいことに!MUTEKI出演も間近か?

アニメ「ワンピース」の主題歌も歌ったダンス系ユニットFolder 5のAKINAがネットで話題だ!

Posted by Folder 5のAKINAがすごいことになっている at 2009/09/25 (Fri) 22:58:24

ヨン様入院 ペ・ヨンジュン倒れる 来日予定はどうなる?

人気俳優のペ・ヨンジュン ヨン様 がたおれ、ソウル市内の病院に入院。

Posted by ペ・ヨンジュン ヨン様たおれる! 冬のソナタ at 2009/09/26 (Sat) 10:44:38

モザイクは消えるのか?という疑問と検証

AVのモザイクが消えるツールとやらをテストしてみた

Posted by モザイクが消えるツールの真相 at 2009/09/26 (Sat) 22:20:16

「アグネスちゃんこ鍋」ってタイトルおかしくね?

大炎上!?アグネス・チャンのブログ「アグネスちゃんこ鍋」

Posted by アグネス・チャンのブログ「アグネスちゃんこ鍋」 at 2009/09/27 (Sun) 18:40:34

森下千里のDVD ノーパン刑事

森下千里 DVD「月刊 森下千里/ノーパン刑事~私がノーパンになった理由~」発売

Posted by ノーパン&ミニスカ撮影 「すごくヤバかった」森下千里 at 2009/09/28 (Mon) 04:47:31

斜め45度の女神 滝川クリステル・アナウンサー卒業

フジテレビの報道番組「LIVE2009 ニュースJAPAN」
滝川クリステル・

Posted by 斜め45度の女神 滝川クリステル・アナウンサー卒業 at 2009/09/28 (Mon) 07:45:33

完全無料!全員参加OK!AV女優とお見合いパーティーできる!!

SODクリエイト DVD「婚活AV。」交際申し込み券付き!

Posted by AV女優と結婚できるチャンス! at 2009/09/28 (Mon) 19:29:02

ツィイー、スン・リー出演 テレサ・テンの自伝ドラマ

「アジアの歌姫」テレサ・テンの自伝ドラマ、主演にツィイーやスン・リー

Posted by テレサ・テンの自伝ドラマ at 2009/09/29 (Tue) 10:01:00

その時なにが起こったか!日航123便 御巣鷹山墜落事故

日本航空123便(JA8119) 乗員乗客524名のうち520名死亡!御巣鷹山墜落事故の真実 

Posted by 日航123便 御巣鷹山墜落事故の真実 at 2009/09/30 (Wed) 06:13:52

スカートが透明化!美少女のパンツが丸見え!

美少女のパンツが丸見え!人気PS3ゲーム ロロナのアトリエ~アーランドの錬金術士

Posted by 美少女のパンツが丸見え! at 2009/09/30 (Wed) 08:46:39

GAMEは元気!東京ゲームショウ2009

東京ゲームショウ2009 盗撮しているオタを盗撮した動画を発見

Posted by 萌えまくり!東京ゲームショウ2009 at 2009/09/30 (Wed) 08:51:27

小学生をレイプ 凶悪強姦魔は教師 動画撮影・投稿も

数十人の小学校女子児童に暴行し懲役30年の元教師が投稿した動画

Posted by 小学生レイプ 凶悪強姦魔は教師 動画撮影・投稿も at 2009/09/30 (Wed) 23:53:42

ヨン様来日 東京ドーム 冬のソナタ ぺ・ヨンジュン

ペ・ヨンジュン ヨン様たおれる!でも無事退院 冬のソナタ

Posted by ヨン様サイコー ペ・ヨンジュン祭り at 2009/10/01 (Thu) 05:23:57

競馬その1

一般には出回らない情報を集めてみました。

Posted by ギャンブル虎の穴 at 2009/11/15 (Sun) 00:28:42

当たる馬券だけ買えばいいのはわかってます

自慢じゃないが競馬が好きだ。思えば今までいくらつぎ込んだかわからない。ところが今じゃ連戦連勝!その極意とは・・・勝つための馬券はこうして探せ!

Posted by お得な競馬情報 at 2009/11/16 (Mon) 15:24:32

マイルチャンピオンシップ予想

競馬好きの競馬予想とか

Posted by 競馬予想 at 2009/11/17 (Tue) 03:41:53

今年最後を飾る有馬記念

今年最後を飾るグランドフィナーレ!「第54回 有馬記念」を大予想!!

Posted by 有馬記念を大予想! at 2009/12/22 (Tue) 19:39:10

有馬記念!競馬で儲ける方法!

有馬記念で儲かる予想

Posted by 競馬で儲ける!有馬記念 at 2009/12/24 (Thu) 18:34:34

有馬記念!競馬で儲ける方法!

有馬記念で儲ける予想

Posted by 競馬で儲ける!有馬記念! at 2009/12/25 (Fri) 15:25:19

今年最後の大予想!有馬記念!

今年最後を飾るグランドフィナーレ!「第54回 有馬記念」を大予想する!!

Posted by 有馬記念を大予想する! at 2009/12/25 (Fri) 22:19:28

有馬記念予想情報が流出

会員制競馬情報サイトの有馬記念予想が流出

Posted by 有馬記念の予想情報が流出 at 2009/12/27 (Sun) 00:27:46

金メダルのキムヨナ ハメ撮り動画流出か!?

金メダルに輝いたキムヨナのハメ撮り流出のうわさが!その真相は?

Posted by キムヨナのハメ撮り動画!流出か!? at 2010/03/04 (Thu) 23:52:58

MUTEKI 第16弾は おはガールの石川エリこと 七色あん!

MUTEKI 第16弾は おはガールの石川エリこと 七色あん!

Posted by MUTEKI 第16弾 おはガールの石川エリこと七色あん! at 2010/03/05 (Fri) 17:12:17

製品版を無料配布!美少女ゲーム「se・きらら」速報

製品版を無料配布!美少女ゲーム「se・きらら」受付開始!人が殺到してサイトがダウン

Posted by 製品版を無料配布!美少女ゲーム「se・きらら」 at 2010/03/07 (Sun) 19:24:25

整形疑惑!キムヨナ引退か?衝撃動画!

整形手術の痕跡?キムヨナに整形疑惑が急浮上

Posted by 金メダルのキムヨナに整形疑惑が急浮上 at 2010/03/08 (Mon) 01:04:26

発売中止か!?露出狂アイドル 沢本あすか

露出好きアイドル・沢本あすかのAVにまつわる話題が熱い

Posted by 露出狂アイドル 沢本あすか AVに at 2010/03/09 (Tue) 01:31:55

ベッキー・クルーエルが出演!東京ガールズコレクション

あのかわいすぎる英国美少女ベッキー・クルーエルが東京ガールズコレクション出演

Posted by 東京ガールズコレクション!英国美少女ベッキー・クルーエル at 2010/03/11 (Thu) 13:00:56

すばらしすぎる超巨乳!グラビアアイドル・山田ももか

K点超え112センチ!超巨乳新人・山田ももかの胸を揉んでみた!

Posted by 112センチKカップの超巨乳を揉んでみた! at 2010/03/12 (Fri) 11:03:34

加護亜依 サービス過剰DVD 「LOS ANGELES」

お尻の谷間まで!加護亜依の新作DVD「LOS ANGELES」

Posted by 加護亜依の新作DVD「LOS ANGELES」 at 2010/03/12 (Fri) 16:35:25

TrackBack ping me at
Post a comment

writeback message: Ready to post a comment.