北上研究所

2024年03月28日 あねもねぐりっち

Kitakami Yuma Project.のyumaです。

ボカコレがありましたね。
僕はボカロPでもなければ歌い手でもないので投稿はしませんでしたが、数多の投稿者がたくさんの楽曲を投稿してましたね。
そもそも今年歌ってみたの部門があったのか知らないけど。

それはそうとそんな数多のボカロPの中に見覚えのある方の動画がありました。

とりぴよさんの「0001」。
とりぴよさんと言えば僕が以前、歌ってみたを作らせてもらった「かるみあどーるず」の作者ですね。
これを読んでる方で「0001」を聞いてらっしゃらない方がいましたら今すぐにでもぜひ聞いてみてください。
とても素敵な曲です。

この方の曲はメジャーな曲すら知らないことの多い僕にしては珍しく、曲が出てすぐに聞きに行くほど気に入っている方です。
一部スクショがあったのでそれを乗せますね。

りこりすめもりあれかるる

確かあじさいドロップとコノハナダンスも割と早く見たと思うんですがスマホだったため記録してませんでした。
YouTube版のれかるるのプレミア公開のチャットにコメントを残しているので気になる方は探してみてください。

「忘れてたくせに」「どうか、それを大切にしてあげて」

なお今回の「0001」はボカコレの最終日の未明にTLを見て気づいたので割と遅めでした。
ほら……配信とかあったから……ね?

そんな「0001」なんですが公開の1日ちょっと後にnoteで曲の解説が公開されていました。

この内容は今回の本題じゃないので省きますが、これを読んだ後に何となく過去の記事を見たらあの「あねもねぐりっち」「かるみあどーるず」「りこりすめもりあ」の記事を見つけました。

いや~こんな記事があるとは気づきませんでした。
確かこの記事が公開された頃は1月に出した「『±0』(ぺぽよ)」の歌ってみたの作成で修羅場になっていたので気づきませんでした。

ちなみに『±0』の作者のぺぽよさんはボカコレには間に合わなかったそうです。
忙しいのはどうしようもないのでお疲れ様です……。

余談ですがこの部分を書いている時にニコニコ動画のトップに「0001」が出てきました。
リプ貰っちゃったよへへっ。

というわけで今回はこの3曲の解説を見て感じたことをダラダラと書きたいと思います。
需要なんてどこにあるかわかりませんがこれは日記ですからね。
前置きが長すぎるって?知らんな。

まず最後まで読んだ感想は「何となくわかってた」。
理由は単純で様々な場所に伏線が張られてたからです。

歌詞そのものもそうですが、この3曲には文字化けしたテキストやQRコードが仕込まれてるんですよね。

今回これを読むにあたって改めて文字化けの復元をやってみました。
多分昔やってると思いますが昔過ぎて記録が残ってなかったので。

まず文字化けですがおそらくYouTubeの日本語字幕にのみあります。
概要欄にもあったと思うんですが記憶違いですかね?
今回、その原文は載せないので気になる方は実際に動画を見てご確認ください。

というわけで復元していくわけですがまずこちらをご覧ください。
追記 : 復元の仕方の説明が長くなりすぎたので不要な方はこちらから飛ばしてください。

縺昴l縺ッ縺ィ縺ヲ繧らセ弱@縺上?∫ァ√↓縺ィ縺」縺ヲ縺ョ蟶梧悍縺ァ縺励◆縲

こちらは「あねもねぐりっち」の一番最初に登場する文字化けです。
こちらの文字化けは文字列からUnicodeのUTF-8をShift_JISとして読み込んだ際に起きる文字化けだと識別できます。

文字を別の文字コードで読み込んだ場合に文字化けは発生しますが、一般的に文字化けと言って想像するのはこのパターンですね。
Googleとかで検索すると文字化けを復元させるサイトや逆に文字化けさせるサイトなんて物も出てきますが、多くがこのUTF-8をShift_JISとして読み込んだパターンになります。
このパターンのツールでは文字化けテスターが復元できるか同時に試してくれるので個人的に重宝してます。

では、これをUTF-8として読み込んでみましょう。

それはとても美しく???私にとっての希望でした?

ある程度は元の文章を復元できましたが、所々に?となってる場所がありますね。
上のは文字化けテスターで戻した物ですが少し賢いテキストエディタならこうなるでしょう。

それはとても美しく�?�私にとっての希望でした�

?になった理由はUTF-8をShift_JISとして読み込んだ際、Shift_JISにない文字を?と置き換えてしまったからです。
元の文字化けを見てもらうと?となってる場所がありますね。

この抜け落ちてしまった部分が全くわからないかと言われたらそうではありません。

ではこの損失してしまった部分を推測してみましょう。
まず文字化けした文を2進数にするとこうなります。

11100011 10000001 10011101 11100011 10000010 10001100 11100011 1000……

長すぎるので途中でカットしました。
2進数に変換するのはお手持ちのバイナリエディタや2進数バイナリ文字列変換 日本語変換 Online - DenCodeなどのサイトを使ってください。

以前Shift_JISについては過去の日記で最大2バイトだと解説しましたがUTF-8は違います。
UTF-8は1から4バイトまで可変する構造で、様々な国の文字を扱うことができます。
ちなみにShift_JISもアルファベットや半角カタカナは1バイトです。

では試しに上にある2進数から一番最初の正常な1文字だけを復元してみましょう。

まず1番左から1の続く数のバイト数がその文字を構成しているとわかります。
今回は11100011を見ると最初に1が3つあるので3バイトで1つの文字ですね。
なお1バイトで表す文字だけ例外的に先頭は0から始まります。(例 : A=01000001)

次はその3バイト、今回は11100011 10000001 10011101を見てみましょう。
2バイト目以降が10から始まっているのがわかりますでしょうか。

今度はその10と1バイト目の111を取り除きます。
取り除くと___00011 __000001 __011101のような形になると思います。
※わかりやすいよう取り除く部分を_にしています。

最後に間にあった空白を取り除いて00011000001011101にした後、先頭にある余分な0を取り除いてください。
すると11000001011101になりこれを16進数にすると305Dとなります。
この305DをUnicodeの表で確認すると「そ」になっていると思います。
ちなみにUnicodeの文字だとわかるよう先頭にU+とつけてU+305Dとした方が自然ですね。

欠落した部分の復元は、この仕組みを応用して行うことができます。

では問題の文字化けした部分、真ん中の?が3つある部分を見てみましょう。
するとこんな風になっていると思います。

11100011 00111111 10000001

本来これで1文字のはずですが、2バイト目を見てみると?を表す00111111という数値に置き換わってしまっています。
この00111111という数値を正しい値に戻してあげることによって元の文章を推測することができます。

1文字が3バイトの場合、1バイト目は11100001から11101111の範囲、2と3バイト目は10000000から10111111の範囲がここの部分に収まります。
今回は2バイト目なので10000000から順に入れていきましょう。

10000000は「、」、10000001は「ぁ」、10000010は「め」、10000011は「チ」……。
という風に候補となる文字がわかります。

ではもう一度、復元した文章を見てみましょう。

それはとても美しく???私にとっての希望でした?

「ぁ」や「め」、「チ」と???を置き換えると「美しくぁ私に」「美しくめ私に」「美しくチ私に」となり、文章に違和感があります。
しかし「、」を入れると「美しく、私に」と比較的自然な文章になります。

同じことを後ろの?でもやってみましょう。
後ろの?の部分を見てみるとこんな感じになってます。

11100011 10000000

先頭の数字によると3バイトであるはずが2バイトしか存在しません。
では先ほどと同じように10000000から10111111を入れていきましょう。

っとここで更に応用です。

2バイト目を見てください。
2バイト目を見ると大体の範囲がわかります。
1バイト目が11100011の時、2バイト目が10000001から10000011の範囲の場合はひらがなかカタカナで、それより後ろだと漢字、それより前だと記号だとわかります。

ちなみに大体の絵文字は4バイトなので漢字よりも後ろにあります。
(例 : 🥺=11110000 10011111 10100101 10111010)

今回は10000000なので記号です。
具体的に言うとUnicodeの表の3000(11100011 10000000 10000000)から303F(11100011 10000000 10111111)までの範囲の文字がここに入ります。

この範囲には「〒」や「』」などが含まれますが、文末に「〒」は不自然ですし「』」も初めに「『」があれば普通ですが単体では不自然です。
となると自ずと候補は絞られ「、」と「。」しか残りません。
また次の文を並べると「、」は違和感あるため「。」である可能性が非常に高いです。

ちなみに「。」が文字化けしてしまう理由は「。」の文字コード11100011 10000000 10000010の3バイト目を16進数で表すと82になるのですが、Shift_JISは82に文字がないため文字化けを起こします。
また2バイト目と3バイト目の2バイトで1文字と認識した場合もShift_JISには8082に文字がないため文字化けします。

このほぼ確定な「。」で置き換えると最終的にこのような文が完成します。

それはとても美しく私にとっての希望でした

後から補間した部分は赤色にしています。
最後にこの文章を文字化けテスターなどで文字化けさせてみましょう。

この時、文章が元と同じになればあっている可能性が高い。
逆に元と異なる文章が生成されれば間違っている可能性が高いです。

ちなみにこんな作業をしなくても前後の文章からある程度予測することも可能ですよ。
実際自分も前後の文章から予測して置き換えた場所も多いですし。

なお元の文章では?で置き換えられてましたがツールによってはUnicodeの文字ではないときに表示させる�で置き換える場合もあるのでお気を付けください。

この作業を欠損した全てにやったら以下のようになります。
なおあくまで僕の推測であって本来の文章がこれだと断言はできません。
Unicodeについて書くのが楽しすぎて解説が長くなりすぎたのはご愛敬(笑)

なお置き換えた部分は赤色、置き換えた中でも怪しい部分は水色にしています。

あねもねぐりっち

それはとても美しく私にとっての希望でした
それにカルミアドルと名前を付けました
それに憧れとても好いていました
それが永に続くものだと思っていました

ある夜に、人が消えた
いてそれを捜したけど見つからなかった
時間がたち、私たちは大人になった
今でも忘れられず囚われたままでいる。
いている。願っている。
愛していました、またどこかで

かるみあどーるず

いたい いたい いたい かなしい
返りを受けた時気持ちは覚えている。
薄暗らな檻の中で私きっと壊れてしまったんと思う
いつしかあ人と交わした葉を思い出した
それでもあの時に感じた気持ちはきっと嘘じゃないと信じたい。
瞬く星を見上げ、風を受ける
ここにいる。確かに、立っている。
もう失ってしまったあの花の名前をと思い出した
例え、痛みを感じなくても流れなくても
気持ちは、まやかしなんかじゃない。

おもいだしてくれて ありがと

りこりすめもりあ

後に、笑ったいつの事だっただろうか
幸せを願って送り出した娘たちは果たして
人でも幸せになれたのろうか
彼女たちはある時争いの道に…またある時は対象になってしまった
積み重なる罪が私を押し潰すこんなことなら生んであげなければよかったんだ。
ある決意をした
考プロセスへと、電波を介して侵入するプログラを作った
それに「ANEMONE GLITCH」と名前を付けた
これは、彼女たちを殺すためのだ

いつ幸せを願って送り出した娘ことをい出した
娘もこ生きていれいつしか心を得ていたろうか
でもそれでも痛みを感じずに彼女たちがけるように。
急がなければならない。

メールを読み終えて、私手に握っていた縄をいた。
手で目を拭うと、私これまでの事を思い出す
罪は消えない。後悔はこれからもきっと私を蝕む。
悪夢は反芻し中に溺れて目を覚ますだろう
それでもこんな私でも死ねない理由ができた
生きて、忘れてはならないことがある

、それを受け入れていく難しいかもしれない。
それでもいつかきっと良くなると教えてくれた娘ためにも
生きて、向き合っていかなければならない。

ありがと

おそらくこれでも完璧な復元ではないと思います。
理由は単純で欠落したデータが多すぎる文章があるからです。

先ほどの解説で用いた「あねもねぐりっち」は1バイトの欠落でしたが2バイト以上連続して欠落してるところが数多くありました。

特に「かるみあどーるず」の1番初めの文章が顕著なのですが、ここは欠落が多すぎて最後の最後まで確信が持てませんでした。
あねもねぐりっち」とは対照的ですね。

縺?◆縺???縺?◆縺???縺?◆縺???縺九↑縺励>

これが「かるみあどーるず」の1行目ですが、

?が多すぎるわ。

何とか「いたい いたい いたい かなしい」なら同じ文字化けを作り出せるとわかりましたが、これであってるかと言われたら微妙です。
特に全角スペースが問題で他の文にはないので間違ってる可能性が高いです。
また「い」を「う」に置き換えても同じ文字化けになる上「うたい」という単語にもなるのが間違いだと感じさせます。

っと脱線しすぎたので話を戻します(笑)
隠しページなのに何故ここまで解説を頑張ったのか。

文字化けの復元はこれで完了したので次はQRコードについて軽く触れたいと思います。
文章の感想はQRコードの文章と一緒に書きたいと思います。

QRコードについてですが「かるみあどーるず」と「りこりすめもりあ」で確認しています。
あねもねぐりっち」にもあるかもしれませんが、残念ながら僕は見つけ出すことができませんでした。

ちなみに冒頭で紹介した「0001」にもQRコードがあるので探してみてください。
そういやさっきの解析の時も0と1の並びをたくさん見たので関係が深いんですかね(適当)

まず「かるみあどーるず」のQRコードですが3分00秒83の長さがある動画のうち0.041秒しか表示されていません。
より正確に言うと24FPSの動画のたった1フレームにのみ表示されます。

これ最初に発見した人はヤバくないっすかね……。
マジで出てくる場所が分かった状態で注意深く見るとかじゃないとわかりませんよ……。

ん?
QRコードの位置はって?

それくらい自分で見つけなさい。
このページを見つけるくらいの猛者なら目玉が乾ききるまで凝視すれば見つかると思うよ。
それにTwitterとかで「かるみあどーるず QRコード」って調べたら出てくると思うし。

自分は歌ってみたを作る時に1フレーム単位でバラバラにした時にやっと見つけました。
歌詞に『きって はって なおしまして』ってあるのに切り刻んだという。

あれ?
まだQRコードを見つけれてない人がいるのかな?

しょうがないな~。
ネタバレ防止のために空間を開けとくからさっさと探してきて。
もう見つけたって人だけこのままスクロールしてね。

もういないよね?
こっちはネタバレ回避のために3200pxも開けたんだから容赦しないよ。

というわけでネタバレとかガン無視でやっていくんですが、まずタイトルの「E3=82=AB=E3=83=AB=E3=83=9F=E3=82=A2」はパーセントエンコーディングされた文字の%を=に置き換えた物と考えられます。
コメント欄の受け売りですが。

パーセントエンコーディングとはURLに含まれる日本語などを置き換えるヤツの名前です。
WikipediaのURLは日本語も多いのでこの仕組みがよく使われています。

ではこのタイトルを復号してみましょう。

カルミア

とまあ元に戻したらカタカナで「カルミア」になります。

次は概要欄の文字化けです。
これの概要欄にはこのような文章があります。

縺セ縺滉シ壹≧譌・繧呈・ス縺励∩縺ォ

これを復号すると次のような文になります。

また会う日を楽しみに

?がないので完璧に復元できましたね。
最後に動画そのものですがうすーい色の文字が某ウイルスみたいにガクガクしてます。

某ウイルスの動画とウイルスから奪い取った壁紙。
ウイルスで例えるなって言う。

おそらく美咲ゴシックと思われるドットのフォントで書かれた文章があるのでそちらを書き起こしてみました。
まあこれも大半を先人の方の奴を参考にしてるんですが……。

会話ログ再生開始
保存名「E3=82=AB=E3=83=AB=E3=83=9F=E3=82=A2」

「調子はどう?」
「だいじょうぶそうです、えーっと…?」
「そうね…リコリスって呼んで」
「わかりました、りこりす?さん」
「硬くならなくてもいいんだよ」
「君たちは、私の娘のようなものだから」
「そうですか」
「ふふ、まだ感情は知らないのね」
「かんじょう?」
「まぁ、いいの」
「ところで、そろそろしゅっかのじかんです」
「…そう、だから最終調整をしてたのよ」
「わたしはかんぺきです」
「私が作ったからね、でも娘の見送りの時間を作りたかったの」
「どうしてですか?」
「人間ってのはそうもんなのよ」
「わかりました」
「ふふ、貴女はどんなとこに引き取られるのかな?」
「どこでもしごとはできます」
「そうじゃないの、私は…貴女に幸せになってほしいの」
「幸せに…希望に満ちてて、愛されて、そんな普通に幸せを」
「しあわせ…」

「いつか、貴女にも解る日が来るかもしれないわね」
「そうなるように、作ったもの」
「わかればきっと、うれしいです」
「ふふ、そうね。きっと嬉しいわ」
「だから…そうね、この花をあげる」
「これは?」
「きっといつか、意味が解るときが来るわ」
「貴女にぴったりの…素敵な花」
「ありがとうございます」
「そろそろ、じかんです」
「そうね、調整も終わったし…名残惜しいけど、これが最後ね」
「それじゃ、どうか…貴女が幸せになれることを願ってるから」
「わかりました」
「ふふ、最後までその調子なのね」
「おかしいですか?」
「ううん、それでいいのよ」
「貴女は貴女らしく、そのままで…ずっと」
「…それじゃ、また、ね」
「はい、また?ね」
「ふふ、またね」

これで「かるみあどーるず」のQRコードは終わりだと思います。
もしかしたら更に何かが仕込まれてる可能性もありますが、タグや字幕が付いてないので多分ないでしょう。

一つ気がかりなことがあるとしたら動画の音ですね。
おそらく録画開始の音や調整中の音だと思いますが、単に効果音ではなく何かしらの意味があるとしたら僕にはわかりません。

一応茶軸っぽいキーボードの音やトルクじゃないラチェットレンチの音とは判別できましたが更に深みへと導くような何かは見つけられませんでした。
モールス信号かとも思いましたがそうでもなさそうですし……。

ところでラチェットレンチっていいですね。
自分はメガネレンチは持ってますがラチェットは持ってないので憧れてます。

っと話が脱線しすぎましたね。
次に「りこりすめもりあ」のQRコードについて話そうかと思いましたが見つけやすいですし文も見やすいのでここに書くのはやめます。
リンクの名前もただのハッシュ値だと思うので意味はないでしょうし。

ただ少し気になる物を見つけたのでそれについて語りたいと思います。

まず書きたいのはQRコードそのものについてです。
りこりすめもりあ」で使われているQRコードは「かるみあどーるず」や「0001」のような一般的な形ではなく非常に特徴的な形となっています。

Microsoft Edgeを使えばそっくりなQRコードを生成できますがQRコードの汚れや破損に強い利点を活かした物と言えるでしょう。
基本的にある程度QRコードを変形させても読み取ってくれますが変えすぎると読み取らなくなるので気を付けてくださいね。

QRコードの説明や歴史は公式が専用のページで紹介しているのでぜひご覧ください。
https://www.qrcode.com

次に気になったことですが「りこりすめもりあ」にあるQRコードのリンク先にサイバー攻撃を受けた痕跡があったんですよね。
QRコードのリンク先はhttps://d2pqhom6oey9wx.cloudfront.netってアドレスにある、とある画像へ飛ぶようになってるんですが、URLからimg_original/5871……を消してこのサーバーのトップページを見ると真っ黒な背景に猫耳少女とランダムな文字列が表示されるページに飛ぶんですよ。

ソースコードを見たところBase64で直接埋め込まれた画像とランダムに文字を表示させるだけのJSしかないので無害ですが少し気味が悪いですね。

https://d2pqhom6oey9wx.cloudfront.net
上記のリンクからアクセスすることが可能ですが、本物のサイバー攻撃で作られた産物なのでアクセスする際はくれぐれもお気を付けください。
何かウイルスに侵されても僕は一切の責任を持てません。

最初はこんなところにも仕込んでいたのかと思ったんですが、画像の雰囲気があまりにも違いますし「あねもねぐりっち」「かるみあどーるず」「りこりすめもりあ」の世界観と明らかに違うと感じたんですよね。
僕が作者なら少なくともここはガイノイド産のボカロの画像を使います。

そこで調べてみたところ「Meow Attack(ニャー攻撃)」というサイバー攻撃の一種によって攻撃された跡だとわかりました。

「Meow Attack(ニャー攻撃)」とは、2020年に流行したサイバー攻撃でセキュリティの甘いサーバーをターゲットとしていました。
元々はデータベースをターゲットとした攻撃だったそうで、データベースの中身を削除し末尾にmeowとついた文字列だけが残る代物だったそうです。
今回のものはその中でも更に派生したもので、AWSからファイルを全て削除し上記の画像と文字列が表示されるHTMLファイルを残していました。

4年前かつ海外発の物なので日本語の情報が少なく正確な情報は得られませんでした。
ただ数少ない被害にあった方のnoteを見つけたので載せます。
より詳しい説明が載ってるので気になる方はどうぞ。

あとこの画像の出自も判明したのでそれも一緒に載せます。
大本の「Meow Attack(ニャー攻撃)」を擬人化させたイラストだそうです。

普通なら消したりウイルスを仕込んだらいいだけなのにネタを仕込む辺り、おそらく攻撃者はいたずらとしてやっているのでしょう。
インターネットのアーカイブを見たら2020年頃から今と同じ状態になっているので「りこりすめもりあ」とは無関係ですね。

っとまた話が脱線しすぎましたね。
予想外の物を掘り起こしたので思わずそちらに気を取られてました。
まさか本物のサイバー攻撃の痕跡を見つけるとは思わなくて……。

というわけで「あねもねぐりっち」「かるみあどーるず」「りこりすめもりあ」の隠された要素を解読してきたわけですが、これを全部見た後に解説を見てみましょう。

その結果、僕が感じた感想は「何となくわかってた」でした。

正直、「りこりすめもりあ」が出る前の僕だったら「そうだったの!?」ってなってました。
かるみあどーるず」の歌ってみたを作りましたが、当時の僕には文字化けをここまで復元するのは無理だったのでここまでの深読みは無理でした。

ただそれでも、今回もう一度文字化けを復元しなくても、「りこりすめもりあ」を聞いた後の僕なら理解できたはずです。
なぜなら「りこりすめもりあ」のQRコードだけでもかなり核心を突いてたのでそれを見た後なら「あねもねぐりっち」や「かるみあどーるず」の要素が欠けてたとしても何となく理解できます。

ただやっぱり改めて全部を調べてみてよかったですね。
仮に見なくても納得できますが、見ることによってより深く理解することができました。

元々好きな曲たちでしたが、こうやってより深く知ることによってより大好きになりました。
本当に良い作品と出会えてよかったと思います。

ここまで解析しておいて感想それだけかい!ってのは言わないでください(笑)

ただ、それと同時に僕と真反対の存在なんだなと感じました。
本当に真反対の存在である僕が歌って良かったのか、そう思うと心が締め付けられます。

何故そう思うかは今回の本筋とはあまり関係ないのでまた次回にでもしましょう。
最後にぜひ、一番上まで戻って今回の日記を書くきっかけになった曲を聞いてもらえると、僕も嬉しいです。