先日世間を騒がせた上にAppleにiOS 11.2.6をリリースさせるほどになった、受信するだけでiOS 11.2.5までのバージョンを搭載したiPhone/iPad/Mac/Apple WatchなどApple製品をクラッシュさせてしまうという、特定の破壊的なインドのテルグ文字。ネット上では爆弾文字とも呼ばれています。
このニュースは当ブログでもお伝えしたとおりです。
現在では各デバイス用最新OSにて、特定の文字によってクラッシュしたり再起動ループに陥るなどの問題は修正されています。
しかし実際に検索してもその”爆弾文字”そのものについて詳しく検証しているところはなく、そしてあまり調べる人もいないかと思い、ちょっと気になった私はUnicode表で実際に調べてみました。。という記事です。あんまり意義はないかもです。。笑
iPhoneをクラッシュさせるテルグ文字は1文字ではない
まず、以下のいくつかのテック系ニュースサイトで、iPhoneなどをクラッシュさせる爆弾テルグ文字は1文字だと伝えられていました。私もそれにつられて記事で1文字、と書いてしまったのですが、果たして本当に1文字なのだろうか、という疑問は常に持っていました。。
【対策は?】iPhoneで「ある文字」を受信するだけでクラッシュするバグ発生! 下手したら再起動ループに / 受信したらどうすべき? 対策はこれ!
爆弾テルグ文字は1文字ではなく文字列だった?
しかし、ハフィントンポストの記事によれば、iPhone等をクラッシュさせるテルグ文字は、どうやら1文字というわけではないようです。
爆弾テルグ文字は5つのUnicodeキャラクターからなる文字列?
更に、前出のハフィントンポストの記事によれば、爆弾テルグ文字についてこんな解説がなされています。
iPhone アプリを即死させる魔の文字として最初に話題になったのはこちら。インドを中心に7000万人ほどの話者が居るテルグ語のテルグ文字です。
親しみがないとそもそも文字なのか分からない謎の記号のように見えますが、子音や母音、発音を示す記号などの字素を組み合わせた合字として表記されています。
コンピュータ内部での扱い的には、この例は制御文字を含む5つのUnicodeキャラクターからなる文字列です。念のためここにテキストとしては置きませんが、検索すればすぐに見つかります。
余談ながら、最近ダイバーシティへの配慮で爆発的に増えているように見える絵文字も、内部的には職業+性別+肌の色のような組み合わせ。要素と要素の間は「前後をつないで合字として表示する」意味の制御文字。
最初に話題になったのはこの文字列でしたが、有志の調査や実験の結果、テルグ語に限らず複数の言語で、構成要素に特定の記号や制御文字を含んだ合字(列)で同じクラッシュが発生することが判明しました。
iPhoneをクラッシュさせる文字列パターンは複数ある
しかも、前出のハフィントンポストの記事によれば、iPhoneをクラッシュさせるテルグ語の文字列は1パターンではなく、複数のパターンがあるようです。
なお、当ブログでお伝えした記事の中でも、イタリアのメディアMobile Worldに出ていた文字と、Tom Warren氏によるTwitter動画で出ている文字にも違いが見られます。
Another iOS bug is crashing iPhones and disabling access to iMessage https://t.co/9do0xyz7k4 pic.twitter.com/15Ripq7PP8
— Tom Warren (@tomwarren) 2018年2月15日
2つの爆弾テルグ文字列パターンをUnicode表で分析
しかし本当に5つのUnicodeキャラクターで構成されているのでしょうか?ということで当ブログで爆弾テルグ文字について紹介したニュース記事にある、以下の2つの爆弾文字列パターンについて、実際にUnicode表で分析してみました。
- 多くのメディアが初めて報道したとして引用している、イタリアのメディアMobile Worldの記事に出ている文字列
- Tom Warren氏がTwitter上で公開している動画にある文字列
その結果が以下の通りです。
イタリアメディアで出ていたテルグ文字の文字列をUnicodeで分析
まず、世界で一番最初に報道したといわれているイタリアのメディアMobile Worldに出ていた文字はこれです。
これは、前出のハフィントンポストの記事によると以下のように解釈できるようです。
このイタリアのメディアに出ていたものをUnicodeのテルグ文字コード表(Unicode: 0C00—0C7F)で探してみましたが、ピッタリの字はありませんでした。しかも、前出のハフィントンポストの記事にあるような、「5つのUnicodeキャラクター」によって構成されるものではなさそうです(文字構成要素としては5つの要素なのかもしれませんが)。
私はテルグ語やテルグ文字が全くわかりませんが、これは恐らく、上下に2文字によって構成されていて、恐らく縦書きになっているものではないかと思われます。ただ、上と下の文字の大きさを変えているのはなぜだかわかりませんが。。
1文字目
上の文字は、
発音はJa+Aaでジャアァ、またはヤァァ、といったところでしょうか?
2文字目
そして下の2文字目にはピッタリのがありました。
横書きしてみると。。
これらを横書きするとこんな感じです。
読み方はJaa+Nyaでジャーニャ?なんかかわいいですね。。意味はさっぱりわかりません。
TwitterのTom Warrenの動画に出ていた文字をUnicodeで分析
そして動画に出ていた文字。。これは既に横に2文字のように展開されていて、上記とは少々異なります。
かなりぼやけていてわかりにくいですが調べてみると。。
1文字目
1文字目は
2文字目
2文字目はちょっとボケていて本当に読めないですが、
組み合わせてみると。。
この1文字目と2文字目を組み合わせると
発音はJ+NyaO?ジニャオみたいな発音になるんでしょうか。もちろん意味は皆目わかりまてん。
発音を見てみると、現実的にはこの2つの文字の組み合わせは存在しなさそうな感じがします。。
実際の爆弾文字列の条件とは
で、さんざん調べた後engadgetの記事で、実際の爆弾文字列の条件があることがわかりました。。こちらでは2文字、と書いてますね。2文字で合ってますね。
該当の部分を引用すると。。
Mozillaのエンジニア Manish Goregaokar 氏によれば、爆弾文字列の条件はデーヴァナーガリー文字、ベンガル文字、テルグ文字で、「子音1、ヴィラーマ(発音区別符号)、子音2、ZWNJ (制御文字のゼロ幅非接合子)、母音」の順に並ぶ文字列。
ということです。私の調べたテルグ文字では完全にそういうパターンになっているわけではないようですが、私もテルグ語のことがわかっていないので何とも。いずれにせよ、テルグ文字以外にもデーヴァナガリー文字、ベンガル文字もインドの文字ということで、たった2文字でApple製品をクラッシュさせたり再起動ループに陥らせることができるなんて、やっぱりインドの言葉や文字は破壊力があるなあってことで(違
バルス!(違
よい子は真似しないように!
実際、Unicode表で上記の組み合わせを作ることはできますし、Twitterやサイトなどで「これを送るだけでコンピュータをリセットできます」などと文字列をそのまま公開しているようなところもあるようですが、悪質ですね。よい子は真似しないように!いたずらはゼッタイやめましょう!
もっとも、既にiOS 11.2.6やmacOS 10.13.3追加アップデートなど、先日の一連のOSアップデートで、この爆弾文字列によってApple製品がクラッシュする問題は修正されています。
記事は以上です。