Tại sao một số tin nhắn văn bản Unicode bị sập hệ điều hành iPhone?


31

Gần đây, một "trục trặc" mới đã xuất hiện trên Internet trong vài tuần qua nếu người dùng iPhone được gửi:

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

thông qua iMessage, nó tạm thời làm hỏng hệ điều hành điện thoại và buộc khởi động lại điện thoại nhận.

Tại sao điều này làm việc?


3
Trên thực tế, tôi tin rằng chỉ có các ký tự tiếng Ả Rập (và có thể là những ký tự sau chúng) là bắt buộc. Văn bản "sức mạnh hiệu quả" chỉ là một phụ và có thể là bất cứ điều gì, nhưng phải đủ dài để thông báo bị cắt ngắn (hoặc ít nhất là cố gắng, vì đây là nguyên nhân gây ra sự cố) ở các ký tự nước ngoài.

Câu trả lời:


36

Nếu bạn cần sửa lỗi này, hãy sử dụng Siri hoặc Mac bằng iMessage để gửi cho mình một tin nhắn mới. Xem https://support.apple.com/en-us/HT204897

Đây là một quy trình gồm ba bước để khôi phục và bản cập nhật phần mềm trong tương lai sẽ vá lỗi này.

  1. Yêu cầu Siri "đọc tin nhắn chưa đọc."
  2. Sử dụng Siri để trả lời tin nhắn độc hại. Sau khi bạn trả lời, bạn sẽ có thể mở lại Tin nhắn.
  3. Nếu sự cố vẫn tiếp diễn, chạm và giữ tin nhắn độc hại, nhấn Khác và xóa tin nhắn khỏi chuỗi.

Về lý do tại sao nó xảy ra, đó là một lỗi cụ thể trong cách Trung tâm thông báo hiển thị nội dung Unicode của thông báo này. Mã này thực hiện một hoạt động "không an toàn" (gần giống với 5 chia cho 0 và sau đó không kiểm tra kết quả không mong muốn) gây ra lỗi chưa được xử lý.

Sau đó, vì Trung tâm thông báo không thể kết xuất khối văn bản và cuối cùng làm hỏng Springboard không có mã để xử lý lỗi này một cách duyên dáng. Khi không có trình xử lý lỗi cụ thể, hầu hết các hoạt động đều không an toàn "tự khởi động lại" để thử và khắc phục lỗi.

Unicode là một cách mã hóa các ký tự được sử dụng để xử lý các ngôn ngữ có số lượng ký tự lớn hơn tiếng Anh. Các lập trình viên có thể gặp vấn đề với nó vì họ đã học lập trình bằng văn bản ASCII và họ bỏ qua việc viết phần mềm của họ với sự hỗ trợ Unicode đầy đủ.

Một bài viết hay về điều này giải thích "nếu bạn vẫn lập trình theo cách đó, bạn sẽ không tốt hơn nhiều so với một bác sĩ y khoa không tin vào vi trùng".

Bài viết này giải thích tốt tình huống cụ thể này.

Apple có thể thực hiện đánh giá mã chặt chẽ hơn, kiểm tra đơn vị cụ thể hoặc để người dùng cuối kiểm tra mã của họ như trong trường hợp này và các trường hợp tương tự .


6

Đó là một cái gì đó để Apple sửa chữa.

Vấn đề dường như đến từ cách điện thoại cố gắng hiển thị thông báo trong thông báo. Các ký tự làm cho hệ thống đó bị hỏng, do đó, nó cố gắng hiển thị ngắn gọn trước khi gặp sự cố và sau đó cài đặt lại điện thoại trong nỗ lực khắc phục.

Dưới đây là một số sửa chữa ngắn hạn bạn có thể làm cho đến khi Apple khắc phục sự cố.

  • Có người đã gửi cho bạn tin nhắn độc hại gửi một tin nhắn khác có hiệu quả hủy bỏ chuỗi ban đầu

  • Gửi cho bạn một tin nhắn qua Siri, bảng chia sẻ hoặc từ máy Mac của bạn.

  • Một độc giả khác lưu ý rằng, việc gửi ảnh đến liên hệ qua ứng dụng Ảnh có thể cho phép họ truy cập vào lịch sử tin nhắn và xóa cuộc hội thoại

nguồn: http://www.redmondpie.com/how-to-fix-ios-text-messages-crash-orms/

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.