巫女が死ぬとファイルが消える東方作った

Posted on
ゆっくりしていってね!!!・・・と
言いたいところだが、
君等(のファイル)には消えてもらう。
実は今まで君たちが巫女だと思っていた
残機の正体は、
ハードディスクの肥やしになっている
マイドキュメントの.docファイルだったのだ。
君等は何も知らずに
作りかけのレポートを削除していたのだよ。
しかしそれは、
私の筋書どおりなのだ・・・
あとはゲームを強制終了させれば
私の計画は完成する。
これからは私の最強の
特別戦闘部隊をもって
君等を抹殺するので
よ ろ し く。

巫女が死ぬとファイルが消える東方作った

ついカッっとなって作った†1。後悔はしていない。

巫女(じゃなくても可)が死ぬ度に、マイドキュメントのファイルがランダムで一つずつ消えていきます。消すファイルが無くなった場合、ゲームがアプリケーションごと終了します。もうこれは死ぬ気で練習するしかないねー

 

パッチダウンロード

すいません公開できません m(_ _)m

公開して割れゲーに紛れて流されると色々ヤバイwのでwwwwww

原理

簡単に言うと、巫女が死ぬ処理に無理やり割り込んで、ファイルを消す処理をくっ付けてるだけです。だから、洞窟物語の「どこでもセーブ」パッチと技術的にはほとんど同じです。ただ、こっちの方が追加されてる処理が多くて複雑ってだけです。

アイデアは「【自己責任】敵機を撃つとHDDのファイルが削除されるシューティングゲームが登場」から貰い、ファイルが消える条件を反転させて一般のゲームに実装した形になります。ルールとしてはこちらの方が緊張感があって良いと思うのですが、どうでしょうか(笑

知らず知らずの内に悪意のある処理が行わせる事が可能

今回は実験なので、ファイルを削除した際にウインドウを表示して削除した事が分かるようになっていますが、もちろんそうした表示処理をすべて消してしまう事も可能です。その場合、プレイヤはファイルが消されていることにおそらく気づかないでしょう。

この実例で、P2P等にこうして改造したゲーム等の実行ファイルを流すことで、ダウンロードした人が全く気づかないうちに悪意のある処理を実行させることが可能という事が分かったと思います。もちろんUACが不要な範囲内で、ですが、それでも個人情報を流出させるには十分です。

現在、キンタマウイルスのようなファイル名を偽装するような手口がよく知られていますが、このファイル名を偽装したウイルスを実行させる方法には引っかかった場合大抵すぐ気づくという難点があります。

しかし今回の手法ならもっとナチュラルに実行させる事が可能でしょう。ゲームと一心同体ですから。

感想と今後の展望

今回、パラサイトルーチンは全部手書きアセンブラですw

正直全部アセンブラで書くのは、まあ…たまにやる分には楽しいがしんどすぎるw 今回はファイルの列挙を行う処理ということで再帰処理が入ってるんですが、スタック操作がなかなか大変でした。まあその分今後解析を行う際の参考にはなったかな、と思いますけどね。

アプリの最後の方にdllのファイルをそのままくっ付けておいて、パラサイトルーチンはdllを分離して実行させて、処理に割り込んだ時の処理はdll内の関数を呼ぶだけ、みたいな感じで、任意のDLLが呼べたりすると楽ですね。もうこんなにたくさん書きたくないわ…。

ふと気づいた

これただのファイル感染型ウイルスじゃね?(

今までずっと「本物のファイルに紛れてるキンタマウイルス」という線で考えてたので気づかなかった。

みんながみんな全く疑うことなく実行しているだろうと思われるP2Pのゲームに入れるのは効果的だと思うが、P2Pの大半の人間はDL専門だとすると拡散させにくいという気はする。特定のファイルだけ気をつければいいならハッシュ指定とかで防げちゃうだろうし。

あ、あと

五月祭お疲れさまでした え、ああ、ちゃんとさきゅばすも作ってるよ 仕様書も無い言語の言語処理系って難しいな…。ニワン語はプロトタイプ型オブジェクト指向ってことでいいの?

  • †1: 製作時間は3時間程度

明日・明後日は五月祭に参加します

Posted on

 東京大学の五月祭に参加します。私はニコニコ動画研究会のメンバーとして、各種団体を取材するのをメインでやります。

こんな格好で行きます

 以下の格好で行きますので、何か文句を直接言いたい場合の参考にしてください。私かどうかは分かりませんが、誰かメンバーの一人がカメラを持っているはずですので、それも参考にしてね。

土曜日

 すいません。体力的問題で本日は休みます。今週は色々ありすぎたのだ…。なお、明日着ていく格好に変更はありません。

日曜日

要約

 半ズボンのヲタを見つけたら大体私。そしてキルミンずぅ面白いのでみんな見てください。

東京大学ニコニコ動画研究会で東大ちゃんねるを開設(予定)

Posted on

 誰だよ大学は暇だの幼稚園だの言った奴は!!浪人してた時より忙しいぞwwwwww

 ニコニコ動画研究会っていうまだメンバーがリアルに顔会わせして今日で一週間のサークルに入ってるんですが、その関係で一つ告知があります。

ニワンゴの杉本誠司社長にお会いしました

 メンバーのつてでニワンゴの杉本誠司社長からお話を戴きまして、ニコニコ動画のチャンネルの一つとして、「東大ちゃんねる」を作らないか、という事になりました。動画の配信のほか、生放送を行う予定です。

 明日・明後日の五月祭では時間が無いため生中継は行いませんが、1~2ヶ月以内には企画を立てて、動画配信や生放送を行おうと考えています。

 昨日杉本誠司社長とお会いして、今後の方針のほか、参考になるお話を色々とさせていただきました。その場で上がった事についてとても適切な例を瞬時に上げられたり等、とても頭の切れる方で圧倒されました…。

メンバー募集中

 というわけで、ニコニコ動画研究会ではメンバーや協力してくれる方を募集中です。

  • 生中継の企画をしたい人
  • 生中継に興味がある人
  • ウェブサイトのデザイン等に興味がある人
  • その他詳しい話を聞きたい人

 は、私のメールアドレス、psi<ぁっとまーく>science.mi.toか、代表(ゲンシュン)のメールアドレスnikochu_otsu<あっとまあく>yahoo.co.jp†1までご連絡ください。

 注意です。これは1ユーザとして行う単なる遊びではなく、ある種のビジネスです。会社側からの手厳しい駄目出しもあるでしょう。「生放送でてえwwww」といった安易な気分で入ると後悔するかもしれません。本気でやっていける方を募集しています。

と、こうして

 さきゅばすの開発は遅れていくのであった。

 実を言うと、サークルを一個立ち上げた(えっ)のですが、それはおいおい。

  • †1: ひどいメールアドレスだww

アニソン三昧視聴中

Posted on

ニワン語のANTLRでの文法定義書きながらNHK-FMのアニソン三昧視聴中

Poo@キルミンずぅ来た、これで勝つる!!!!!!!!!!!

# 2~3通名前を変えてリクエスト送りました 採用はされなかったけど。

ちょっと嬉しかったのでこれだけですが記事を投稿(

# こういうのついったー向けか?

「さきゅばす」公式サイト、模様替え終了。

Posted on

 公式掲示板がついに荒らされた事を受け、このたび、気分転換もかねてさきゅばすの公式サイトの模様替えを行いました。

 環境を、

 から、

 という環境にしました。ずいぶん垢抜けた感じになったな…。なんというか、2000年代前半から後半に、約5年くらい進んだ感じがするw

 昔のBBSはついに荒らされてしまった上、書き込みしたクライアントについて記録してある情報も極端に少ないなど問題があったので、廃止とさせて頂きます。ここ一ヶ月近く書き込みも無かったようですし、問題はありませんよね…?もちろん、過去ログはこちらで閲覧できます

phpBBはすごい!

 やはり有名なプロジェクトだけあって機能がすごい…。設定するのも大変ですが。大丈夫かな、セキュリティ…。

 日本語だと最近のバージョンの情報がほぼ無いのですが、最近のバージョンだとver2系列ではmodが必要だった(らしい)以下の機能がカスタマイズやmod無しで使えます。

  • RSS配信
  • ファイルのアップロード
  • utf8対応による多言語化

 前出の記事での調達用件のうち、達成できたのは、

  • reCAPTHAによるSPAM弾きができる それとも妹認証!?
  • IPアドレスその他のクライアントについての情報をちゃんと記録する
  • MySQLでデータを記録し、高速な表示や検索が行える
  • RSSの配信ができる
  • 内部コードはUTF8で多言語対応
  • 言語は何でもいいや

 達成ができなかったのは

  • SPAMか否かの投票ができ、SPAM認定されたら表示しない。(Youtubeを思い出してね)

 これだけ!なかなかすごいな。SPAMはreCAPTCHAで弾けるのを期待。

MediaWiki

 こちらもやはりWikipediaで採用されてるだけあって凄いです!しかも、想像してたより軽い!

 RSSを表示するextensionを入れることでSourceForgeのニュースとシンクロしたり、最新バージョンをSourceForgeに登録するとそれがそのまま公式サイトにも表示されたりします。うーん、すごい便利だ。

 こちらも、書き込み時にreCAPTCHAで認証を行うのですが、毎回毎回認証させる訳ではなく、外部URLを書き込んだ場合などに限っています。なるほど…うまいですね。

mt-sukeroku2 β3のMT5における不具合を修正する

Posted on

 当Blogでも利用しております、MovableTypeではてな記法(やその他)を使えるようにするプラグイン、mt-sukeroku2 β3は、MovableType5では不具合があるようで、文の冒頭が全角空白で始まっている場合に整形されなくなってしまうようです(半角空白で始まっている場合に効かなくなるのは「整形済みテキスト」記法なので、仕様です)。

 今回、対策用のパッチを作ってみましたのでおいておきます。内容は正規表現の中の「\s」を「 」(半角空白そのもの)に置き換えただけです。

 以下のパッチをEUCで保存して当てて下さい。これくらいなら手動でもいい気がしますけれど。

=== modified file 'extlib/Text/Sukeroku/HatenaDiary.pm'
--- extlib/Text/Sukeroku/HatenaDiary.pm	2010-03-07 06:49:17 +0000
+++ extlib/Text/Sukeroku/HatenaDiary.pm	2010-03-07 07:32:46 +0000
@@ -174,7 +174,7 @@
# スタックを吐き出す
push(@result, splice(@saved));
# 空白文字ではじまり、整形テキスト出力でないなら<p></p>付加
-      if (/^\s+/) {
+      if (/^ +/) {
($modeParagraph == 1 &&
$modePreLevel != 1) ? push(@result, $self->html->inlineElement('p', $_, ()))
: push(@result, ($_));
=== modified file 'extlib/Text/Sukeroku/PukiWiki.pm'
--- extlib/Text/Sukeroku/PukiWiki.pm	2010-03-07 06:49:17 +0000
+++ extlib/Text/Sukeroku/PukiWiki.pm	2010-03-07 07:34:16 +0000
@@ -129,7 +129,7 @@
push(@result, "<p>");
}
# 整形済みテキスト
-    elsif (/^\s(.*)$/) {
+    elsif (/^ (.*)$/) {
$self->backPush('pre', 1, \@saved, \@result, ());
push(@result, $self->html->escape($1));
}
@@ -166,7 +166,7 @@
$self->backPush('table', 1, \@saved, \@result, ());
my $tmp = "$1,";
my @value = map {/^"(.*)"$/ ? scalar($_ = $1, s/""/"/g, $_) : $_} ($tmp =~ /("[^"]*(?:""[^"]*)*"|[^,]*),/g); # ";
-      my @align = map {(s/^\s+//) ?1);
}
# 整形済みテキスト
-    elsif (/^\s(.*)$/) {
+    elsif (/^ (.*)$/) {
$self->backPush('pre', 1, \@saved, \@result, ());
push(@result, $self->html->escape($1)); # Not &$func_inline, but &escape
}
@@ -103,7 +103,7 @@
$self->backPush('table', 1, \@saved, \@result, ());
my $tmp = "$1,";
my @value = map {/^"(.*)"$/ ? scalar($_ = $1, s/""/"/g, $_) : $_} ($tmp =~ /("[^"]*(?:""[^"]*)*"|[^,]*),/g); # "
-      my @align = map {(s/^\s+//) ? ((s/\s+$//) ? ' align="center"' : ' align="right"') : ''} @value;
+      my @align = map {(s/^ +//) ? ((s/ +$//) ? ' align="center"' : ' align="right"') : ''} @value;
my @colspan = map {($_ eq '==') ? 0 : 1} @value;
for (my $i = 0; $i < @value; $i++) {
if ($colspan[$i]) {

「\s」に全角空白にヒットするか?

 ネットでちまちま検索してみたところ、メタ文字「\s」に全角空白はヒットしないようですし、このプラグインを無理やりコマンドラインから叩いてみてもやっぱりヒットしませんでした。

 が、なぜかMT5内から呼ばれると全角にもヒットするようになり、当Blogのように段落の冒頭に全角空白を入れてる場合、ほとんどのテキストが整形されなくなってしまうようです。

 よくわかんないや。まあ動いたから良いや。

  1. s/\s+$//) ? ' align="center"' : ' align="right"') : ''} @value; + my @align = map {(s/^ +//) ? ((s/ +$//) ? ' align="center"' : ' align="right"') : ''} @value; my @colspan = map {($_ eq '==') ? 0 : 1} @value; for (my $i = 0; $i < @value; $i++) { if ($colspan[$i]) { === modified file 'extlib/Text/Sukeroku/YukiWiki.pm' --- extlib/Text/Sukeroku/YukiWiki.pm 2010-03-07 06:49:17 +0000 +++ extlib/Text/Sukeroku/YukiWiki.pm 2010-03-07 07:34:25 +0000 @@ -93,7 +93,7 @@ push(@result, $self->html->openElement('p',( []

「『さきゅばす』掲示板」が荒らされてる件

Posted on

 推奨BGM:迷惑メーリングGIRL

 「さきゅばす」掲示板 がついに荒らされたみたいです。

現在公式サイト改装中

 現在、公式サイトをMediaWikiに移行して、その上で掲示板プラグインを動かそうと作業中。公式サイトは現在死んでおります。

05/02 11:03現在

 やだ…移行が済んだからまともな掲示板プラグイン探したけど全く無いじゃない…アップローダプラグインも無いじゃない…絶対あるだろうと見こんで作業したのに…。どうするかなあ。

05/02 16:20現在

 現在の案:

  • phpBBを使う
    • アップロードもmodを使えばでき、reCaptchaプラグインもある模様。
    • 日本人にはなじみのないシステムなのが難点。
  • 「サポートは2chで」と言い切る
    • 案外その方が一本化されて良いかもしれない。過去ログ保存するのが面倒なのが難点。
    • アップローダは昔rubyで作ったやつ(簡易掲示板機能付き)があるので、それをカスタマイズして使う。

 ついに…ついに来たか…。

 この掲示板のSPAM対策は現在今年何年?認証のみです。この記事にも書きましたが、この方式は数多くの掲示板に、BOTを使って絨毯爆撃を仕掛けるようなタイプのスパマーには効果がありますが、個別にこの掲示板を狙われると意味がありません。

 ついにBOTに実装されたんでしょうか…。でも、「CAPTCHAを人力で解くサービスを行う会社がある」ことを踏まえると、手動の掲示板SPAMってのもありそうな気がします。

この掲示板はIPアドレスすら記録していない

 びっくりして掲示板のログを調べましたが、現在の掲示板スクリプトはIPアドレスすら記録していない模様…。これは流石に…。

 Apacheのログを調べたところ、ホストは「*.*.*.*.broad.hm.nm.dynamic.163data.com.cn」。検索してみると、どうも有名なスパマーのようですね。諸事情により一件しか残ってないんですが、ログを転載しておきます。

121.56.231.39 - - [29/Apr/2010:20:08:10 +0900] "POST /soft/saccubus/bbs/post.php HTTP/1.1" 200 327 "/soft/saccubus/bbs/read.php?key=1270951891" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQPinyin 730; TheWorld)"

そろそろ替え時か

 ついにSPAMも書かれてしまった事ですし、そろそろ替え時でしょうかね。流石にIPアドレスすら記録してないのはちょっと…。RSSの配信なんかも出来なくて不便ですし…。

掲示板の調達用件を列挙してみる

 上に行くほど重要度が上がります。

  • reCAPTHAによるSPAM弾きができる それとも妹認証!?
  • IPアドレスその他のクライアントについての情報をちゃんと記録する
  • MySQLでデータを記録し、高速な表示や検索が行える
  • RSSの配信ができる
  • SPAMか否かの投票ができ、SPAM認定されたら表示しない。(Youtubeを思い出してね)
  • 内部コードはUTF8で多言語対応
  • 言語は何でもいいや

 やだ…こんなの探したけど無いじゃない…。どうしよう…自分で書くのめんどくさい…。