一部のUnicodeテキストメッセージがiPhone OSをクラッシュさせるのはなぜですか?


31

最近、ここ数週間でインターネット上で新しい「グリッチ」が表面化しました。iPhoneユーザーが送信された場合:

  effective. 
      Power
           لُلُصّبُلُلصّبُررً ॣ ॣh ॣ ॣ
 冗

iMessageを介して電話OSを一時的にクラッシュさせ、受信電話を強制的に再起動します。

なぜこれが機能するのですか?


3
実際、必要なのはアラビア語の文字(およびおそらくその後の文字)だけだと思います。「有効電力」テキストは単なるフィラーであり、どのようなものでもかまいませんが、外部文字で通知が切り捨てられるように(または少なくともこれがクラッシュの原因となるため)、十分に長くする必要があります。

回答:


36

この修正が必要な場合は、SiriまたはiMessageを使用するMacを使用して、新しいメッセージを自分に送信してください。https://support.apple.com/en-us/HT204897を参照してください

回復するのは3ステップの手順であり、今後のソフトウェアアップデートでこのバグにパッチが適用されます。

  1. 「未読メッセージを読む」ようにSiriに依頼します。
  2. Siriを使用して、悪意のあるメッセージに返信します。返信すると、メッセージを再び開くことができます。
  3. 問題が解決しない場合は、悪意のあるメッセージをタップしてホールドし、[その他]をタップして、スレッドからメッセージを削除します。

なぜ発生するかについては、Notification CenterがこのメッセージのUnicodeコンテンツをレンダリングする方法に特有のバグです。コードは「安全でない」操作(5を0で割ったようなもので、予期しない結果をチェックしない)を実行し、未処理のエラーを引き起こします。

その後、Notification Centerはテキストブロックをレンダリングできず、最終的にこの障害を適切に処理するコードを持たないSpringboardをクラッシュさせるためです。特定のエラーハンドラが存在しない場合、ほとんどの操作には、エラーを試行して修復するためのフェイルセーフな「自分で再起動」があります。

Unicodeは、英語よりも文字数が多い言語を処理するために使用される文字をエンコードする方法です。プログラマーは、ASCIIテキストを使用してプログラミングすることを学び、Unicodeを完全にサポートするソフトウェアを書くことを怠っているため、問題が発生する可能性があります。

これに関する優れた記事の 1つは、「まだそのようにプログラミングしているのなら、細菌を信じていない医師よりもはるかに良くない」と説明しています。

この他の記事では、この特定の状況について詳しく説明しています。

Appleはどちらか、より厳密なコードレビューを行い、特定のユニットテストを持っているか、エンドユーザーが聞かせて可能性が彼らのコードをテストFUZZこのとのように同様の


6

Appleが修正するものです。

問題は、電話が通知でメッセージを表示しようとする方法に起因するようです。キャラクターはそのシステムを破壊します。そのため、システムはクラッシュする前に短時間表示を試み、それを修正するために電話をリセットします。

Appleが問題を解決するまでにできる短期的な修正を次に示します。

  • 悪意のあるメッセージを送信した人に、最初のストランドを効果的にキャンセルする別のメッセージを送信してもらう

  • Siri、共有シート、またはMacからメッセージを送信します。

  • 別の読者は、「写真アプリを介して連絡先に写真を送信すると、メッセージ履歴にアクセスして会話を削除できる」と述べています

ソース:http : //www.redmondpie.com/how-to-fix-ios-text-messages-crash-bug/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.