DISCLAIMER
Не пытайтесь повторить это со своими телефонами и телефонами коллег! Судя по комментариям, много людей уже заразили свои телефоны, а 100%-тного лекарства еще нет!
DISCLAIMER 2
Даже не пытайтесь назвать так Wi-fi точку!
Около 15 часов назад на Reddit появился забавный пост, который рассказывал о перезагрузке айфона после странного сообщения вида:
Мы с коллегами попробовали и убедились, что это реально работает. Причем работает не обязательно от смс — тексту достаточно было появиться в любом пуш-сообщении.
Конечно же, это не перезагрузка, а крэш графической подсистемы, который вызывает перезагрузку всей системы. Т.к. окно с текстом пуш-сообщения напрямую входит в графическую оболочку iOS, а не является отдельным виджетом (как, например, в Android), логично, что любая ошибка на столь высоком уровне выведет систему из строя.
Также на Reddit было описано лекарство — требуется прислать смс любого содержания на атакованный номер, и глюк пропадет. Поясню — после перезагрузки атакованного телефона все работает нормально до тех пор, пока жертва не хочет прочитать смс, т.е. загрузить встроенное приложение Messages.
Messages вылетает по той же причине, что и вся iOS, с единственной разницей — являясь отдельным приложением, она не провоцирует падение mainthread самой iOS. Крэш Messages происходит из-за того, что на главном экране вы видите тексты последних отправленных и полученных сообщений. После получения нового смс от отправителя «вируса», последним сообщением станет новое смс и Messages, логично, перестанет падать.
Мне стало интересно, почему именно все так печально крешится, и я создал тестовый проект в xCode. При попытке добавить злополучный текст прямо в Interface Builder, я получил крэш самого xCode, причем он не открывался до тех пор, пока я не удалил тестовый проект с жесткого диска.
Со второй попытки я добавлял арабский текст кодом из текстового файла и после нескольких попыток, путем проб и ошибок выяснил, что:
Тут уже интересней. Распечатываем полный стэк трейс llvm-командой bt и получаем примерно следующее:
Последней документированной функцией является CTLineCreateWithAttributedString, что нам в принципе ничего не дает. Сам же крэш происходит внутри метода CopyFromStorage(TRunGlue&, long) и, судя по ассемблерному коду, в момент копирования байтов длиной long n из одной части памяти в другую (movq 0x90(%rax), %rdx).
Предполагаю, что происходит это из-за каких-то различий в вычислении длины арабского текста — видимо, длина вычисляется в двух местах программы разными методами. Здесь я могу ошибаться и прошу поправить знающих людей.
Баг, видимо, существует столько же, сколько и iOS, и был замечен, видимо, случайно. Кстати, слово Power вставлено для красного словца и роли не играет. Смысл же текста мне не удалось выявить даже с помощью Google Translate (последний символ — вовсе не арабский, а китайский, и означает Избыточность, что как бы намекает!). Возможно, из-за присутствия китайских и арабских символов одновременно?
За сим откланяюсь, желаю всем кодов 200, билдов без exc_bad_access и stackoverflow и приятного окончания продуктивной рабочей недели!
Не пытайтесь повторить это со своими телефонами и телефонами коллег! Судя по комментариям, много людей уже заразили свои телефоны, а 100%-тного лекарства еще нет!
DISCLAIMER 2
Даже не пытайтесь назвать так Wi-fi точку!
Около 15 часов назад на Reddit появился забавный пост, который рассказывал о перезагрузке айфона после странного сообщения вида:
Не шлите никому на айфон
Power
?????????????????? ? ?h ? ?
?
?????????????????? ? ?h ? ?
?
Мы с коллегами попробовали и убедились, что это реально работает. Причем работает не обязательно от смс — тексту достаточно было появиться в любом пуш-сообщении.
Конечно же, это не перезагрузка, а крэш графической подсистемы, который вызывает перезагрузку всей системы. Т.к. окно с текстом пуш-сообщения напрямую входит в графическую оболочку iOS, а не является отдельным виджетом (как, например, в Android), логично, что любая ошибка на столь высоком уровне выведет систему из строя.
Также на Reddit было описано лекарство — требуется прислать смс любого содержания на атакованный номер, и глюк пропадет. Поясню — после перезагрузки атакованного телефона все работает нормально до тех пор, пока жертва не хочет прочитать смс, т.е. загрузить встроенное приложение Messages.
Messages вылетает по той же причине, что и вся iOS, с единственной разницей — являясь отдельным приложением, она не провоцирует падение mainthread самой iOS. Крэш Messages происходит из-за того, что на главном экране вы видите тексты последних отправленных и полученных сообщений. После получения нового смс от отправителя «вируса», последним сообщением станет новое смс и Messages, логично, перестанет падать.
Мне стало интересно, почему именно все так печально крешится, и я создал тестовый проект в xCode. При попытке добавить злополучный текст прямо в Interface Builder, я получил крэш самого xCode, причем он не открывался до тех пор, пока я не удалил тестовый проект с жесткого диска.
Со второй попытки я добавлял арабский текст кодом из текстового файла и после нескольких попыток, путем проб и ошибок выяснил, что:
- UILabel ни при чем, он не может даже показать текст, останавливаясь на слове Power;
- UITextField аналогично;
- UITextView прекрасно отобразил полный текст;
- UIButton сгенерировал bad access!!
Тут уже интересней. Распечатываем полный стэк трейс llvm-командой bt и получаем примерно следующее:
* thread #1: tid = 0xf611cd, 0x00000001120ce5f3 CoreText`CopyFromStorage(TRunGlue&, long) + 28, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x90)
frame #0: 0x00000001120ce5f3 CoreText`CopyFromStorage(TRunGlue&, long) + 28
frame #1: 0x00000001120ce283 CoreText`TRunGlue::RotateGlyphs(CFRange, long) + 527
frame #2: 0x000000011212b71b CoreText`OpenTypeShapingEngine::ApplyScriptShaping(unsigned int*) + 465
frame #3: 0x00000001120d0201 CoreText`TOpenTypeMorph::ApplyShapingEngine(OTL::GSUB&, OTL::GlyphLookups&, unsigned int*, CFRange, bool&) + 739
frame #4: 0x00000001120d1007 CoreText`TOpenTypeMorph::ShapeGlyphs(bool&) + 331
frame #5: 0x0000000112056c4e CoreText`TShapingEngine::ShapeGlyphs(TLine&, TCharStream const*) + 264
frame #6: 0x000000011205c48b CoreText`TTypesetter::FinishEncoding(std::__1::tuple<TLine const*, TCharStream const*, void const* (*)(__CTRun const*, __CFString const*, void*), void*, std::__1::shared_ptr<TBidiLevelsProvider>*, unsigned int, unsigned char> const&, TLine&, signed char) + 127
frame #7: 0x0000000112070586 CoreText`TTypesetterAttrString::Initialize(__CFAttributedString const*) + 674
frame #8: 0x000000011207029a CoreText`TTypesetterAttrString::TTypesetterAttrString(__CFAttributedString const*) + 158
frame #9: 0x000000011205d79f CoreText`CTLineCreateWithAttributedString + 63
frame #10: 0x0000000110c6d8bd UIFoundation`__NSStringDrawingEngine + 18744
frame #11: 0x0000000110c68f5f UIFoundation`-[NSString(NSExtendedStringDrawing) boundingRectWithSize:options:attributes:context:] + 198
frame #12: 0x000000010e875788 UIKit`-[UIButton _intrinsicSizeWithinSize:] + 946
frame #13: 0x000000010ec2466d UIKit`-[UIView(UIConstraintBasedLayout) intrinsicContentSize] + 37
frame #14: 0x000000010ec24b6c UIKit`-[UIView(UIConstraintBasedLayout) _generateContentSizeConstraints] + 33
frame #15: 0x000000010ec24930 UIKit`-[UIView(UIConstraintBasedLayout) _updateContentSizeConstraints] + 422
frame #16: 0x000000010ec2bd25 UIKit`-[UIView(AdditionalLayoutSupport) updateConstraints] + 162
frame #17: 0x000000010e87521b UIKit`-[UIButton updateConstraints] + 2925
frame #18: 0x000000010ec2b346 UIKit`-[UIView(AdditionalLayoutSupport) _internalUpdateConstraintsIfNeededAccumulatingViewsNeedingSecondPassAndViewsNeedingBaselineUpdate:] + 242
frame #19: 0x000000010ec2b53e UIKit`-[UIView(AdditionalLayoutSupport) _updateConstraintsIfNeededAccumulatingViewsNeedingSecondPassAndViewsNeedingBaselineUpdate:] + 124
frame #20: 0x000000010e0bd354 CoreFoundation`CFArrayApplyFunction + 68
frame #21: 0x000000010ec2b2ed UIKit`-[UIView(AdditionalLayoutSupport) _internalUpdateConstraintsIfNeededAccumulatingViewsNeedingSecondPassAndViewsNeedingBaselineUpdate:] + 153
frame #22: 0x000000010d9ef1be Foundation`-[NSISEngine withBehaviors:performModifications:] + 155
frame #23: 0x000000010ec2b53e UIKit`-[UIView(AdditionalLayoutSupport) _updateConstraintsIfNeededAccumulatingViewsNeedingSecondPassAndViewsNeedingBaselineUpdate:] + 124
frame #24: 0x000000010ec2ba0e UIKit`__60-[UIView(AdditionalLayoutSupport) updateConstraintsIfNeeded]_block_invoke + 96
frame #25: 0x000000010d9ef1be Foundation`-[NSISEngine withBehaviors:performModifications:] + 155
frame #26: 0x000000010ec2b6d6 UIKit`-[UIView(AdditionalLayoutSupport) updateConstraintsIfNeeded] + 231
frame #27: 0x000000010ec2bdde UIKit`-[UIView(AdditionalLayoutSupport) _updateConstraintsAtEngineLevelIfNeeded] + 146
frame #28: 0x000000010e623a3d UIKit`-[UIView(Hierarchy) _updateConstraintsAsNecessaryAndApplyLayoutFromEngine] + 114
frame #29: 0x000000010e62fa2b UIKit`-[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 536
frame #30: 0x0000000111e08ec2 QuartzCore`-[CALayer layoutSublayers] + 146
frame #31: 0x0000000111dfd6d6 QuartzCore`CA::Layer::layout_if_needed(CA::Transaction*) + 380
frame #32: 0x0000000111dfd546 QuartzCore`CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 24
frame #33: 0x0000000111d69886 QuartzCore`CA::Context::commit_transaction(CA::Transaction*) + 242
frame #34: 0x0000000111d6aa3a QuartzCore`CA::Transaction::commit() + 462
frame #35: 0x000000010e5ada2d UIKit`-[UIApplication _reportMainSceneUpdateFinished:] + 44
frame #36: 0x000000010e5ae6f1 UIKit`-[UIApplication _runWithMainScene:transitionContext:completion:] + 2648
frame #37: 0x000000010e5ad0d5 UIKit`-[UIApplication workspaceDidEndTransaction:] + 179
frame #38: 0x0000000110d835e5 FrontBoardServices`__31-[FBSSerialQueue performAsync:]_block_invoke_2 + 21
frame #39: 0x000000010e0ea41c CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
frame #40: 0x000000010e0e0165 CoreFoundation`__CFRunLoopDoBlocks + 341
frame #41: 0x000000010e0dff25 CoreFoundation`__CFRunLoopRun + 2389
frame #42: 0x000000010e0df366 CoreFoundation`CFRunLoopRunSpecific + 470
frame #43: 0x000000010e5acb42 UIKit`-[UIApplication _run] + 413
frame #44: 0x000000010e5af900 UIKit`UIApplicationMain + 1282
* frame #45: 0x000000010d91ed0f Islam`main(argc=1, argv=0x00007fff522e1330) + 111 at main.m:14
frame #46: 0x000000011076e145 libdyld.dylib`start + 1
Последней документированной функцией является CTLineCreateWithAttributedString, что нам в принципе ничего не дает. Сам же крэш происходит внутри метода CopyFromStorage(TRunGlue&, long) и, судя по ассемблерному коду, в момент копирования байтов длиной long n из одной части памяти в другую (movq 0x90(%rax), %rdx).
Предполагаю, что происходит это из-за каких-то различий в вычислении длины арабского текста — видимо, длина вычисляется в двух местах программы разными методами. Здесь я могу ошибаться и прошу поправить знающих людей.
Баг, видимо, существует столько же, сколько и iOS, и был замечен, видимо, случайно. Кстати, слово Power вставлено для красного словца и роли не играет. Смысл же текста мне не удалось выявить даже с помощью Google Translate (последний символ — вовсе не арабский, а китайский, и означает Избыточность, что как бы намекает!). Возможно, из-за присутствия китайских и арабских символов одновременно?
За сим откланяюсь, желаю всем кодов 200, билдов без exc_bad_access и stackoverflow и приятного окончания продуктивной рабочей недели!
Envek
Занудства ради скажу, что там не только арабский (или родственные ему). В конце стоит китайский (точнее CJK) иероглиф, а по центру вообще чёрти-что, наводящее на мысль о хинди или бенгальском. Вы проверяли, всё рушит только сообщение целиком или определённая его часть?
iago Автор
О как интересно, мне почему-то до сих пор это в голову не пришло. Минимально опасный текст таков:
?? ? ?
?
varrt
Отправил себе через сервис мегафона на 5s — пришло следущее
потом отправил себе через pushbullet, и он перестал запускаться) Даже после перегруза...) Помогло только убийство мессаги через ПК
*Поставил пробелы после диеза, так как текст обращался в злополучное сообщение
6a6ypek
Отправил сам себе с виндофона:
первый текст не отправляется, второй не работает, «кастомный» тоже не работает.
iOS 7.1.2
6a6ypek
Кстати телефон вполне дал зайти на Хабр, скопировать злополучный текст SMS, и отправить его обратно.
6a6ypek
Видимо подвержена только 8.3 версия iOS.
Проверил на пачке айфонов и падов, версии от 6.1.3 до 7.1.2 не подвержены. 8.0.2 тоже, вроде не подавала признаков ошибки.
Вайфай точка доступа ничего страшного не делает с айфоном 4S и iPad Air на 8.3, но сообщение отправленное через iMessage «жертве», при попытке «злоумышленником» открыть сообщения, крашит его самого.
В случае двух устройств — планшет и телефон, все не так страшно. Планшет крашился сразу, а телефон секунд через 5-8. За это время можно стереть у себя вредоносное сообщение из отправленных, и дать ему отсинхриться на другое (другие) устройства.
Что происходит у «жертвы» — я х.з. Путь тот коллега сам со своей женой разбирается :)
прим. все отправлялось через iMessage, в случае отправки через SMS результат может быть другим, или не быть другим.
DIHALT
Все же понятно. Там написано:
Жопа, смотри!
П… ц!
WerewolfPrankster
Вам, с вашим ником, в этом топике вообще появляться не стоило.
DIHALT
Шта?
WerewolfPrankster
Блин, ну я думал хоть вы поймете… Какими двумя «словами» повестить Z80?
DIHALT
Да я понял, только тут мимо как бы.
WerewolfPrankster
Про мимо и я уже понял. Извините, если задел.
igordata
Теперь хоть понятно почему ник такой! Хорошо же вы о Хабре думаете, раз ожидали, что это будет очевидно для всех.
timsoid
Автор поста называет это «исламский текст».
А пишем мы тут христианским текстом!
iago Автор
Исправил, спасибо! На автомате написал, имел в виду конечно арабский :)
enleur
? ? — это тайские
dns78
По опыту разработки системы процессинга/рендеринга текста с нуля (поддерживающей сложные скрипты) — всякий bidi процессинг (когда в тексте встречаются сразу символы left-to-right и right-to-left), арабские диалекты, хинди, кхмер и т. п. — поле непаханное для крэшей. Во всех операционных системах. Там, на стыках естественных и искусственных языков — конь не валялся :) Это очень, очень глубокое IMHO.
vsabadazh
А какие языки вы подразумеваете под искусственными в данном случае?
dns78
Я не совсем точно выразился. Не искусственные языки, а эмм… Грубо говоря, обработка [например двухбайтных] символов каждого типа естественного языка — это примерно как виртуальная машина. Символы — как опкоды. В сложных языках эти опкоды могут модифицировать на лету [сегмент кода] прочий текст. Правила этих модификаций не до конца внятны. Например, в Sinhala. Отсюда ошибки. Принадлежность к естественному языку определяется, как правило, по юникодным идентификаторам символов. Некоторые языки предполагают определенное количество символов после некоторого символа. Его может там не быть, а быть совершенно другое. Знаю, описал не слишком внятно, но в абзац это поместить сложно.
portsigar
deleted
kefirfromperm
Ну я понимаю, что все ситуации предусмотреть невозможно, но систему то крашить зачем? Ошибка то чисто программерская. Длина массива не проконтролирована. И уже ведь который раз такие ошибки у Apple вылезают, а воз и ныне там.
iago Автор
К сожалению, у Апплов не декомпозированы некоторые элементы, которые на добрый толк должны быть в отдельных процессах. Так, например, было у Win9x, в которой ошибка UI приложения могла закрешить всю систему. Грубо говоря, много хард-кода. Андроид же изначально разрабатывался модульным, там таких проблем бы не возникло — вы просто не увидели бы пуш-уведомление.
grossws
Обратная сторона, что андроид жрёт больше ресурсов для получения более-менее гладкого ui. Просто apple выбрали скорость против устойчивости.
iago Автор
Да, конечно — для показа виджета андроиду надо запустить VM, запустить песочницу и т.п., а Apple просто выполняет бинарный код отрисовки. Как хорошо, что андроиды сейчас мощные и довольно плавные — помню, во времена 1.5-1.6 разница была чересчур существенной.
chlp
Время от времени меня посещает спам по iMessage. Настало время его боятся?
iago Автор
Параноик будет скорее бояться всех пуш сообщений и отключит их в первую очередь. То же самое может случиться, если пришлет сообщение vk.
Templier
Скидывали на ipad в приложение vk — вылетает при попытке зайти в сообщения, после 3 попытки заходит и не отображает данного сообщения.
k0sh
На iPhone 6 не работает
shadowalone
работает на шестерке, 100% работает, только что проверяли.
Divers
Разве это может зависит от железа? Сотфтаврный баг же
lagutas
на iPhone5 работает
merkushin
У меня лекартсво не сработало :)))
iago Автор
А вы сами слали смс или вам пришло? Точно вам послали лекарственную смс, и ее не перехватил Messages на маке?
merkushin
Мы в офисе решили проверить, как работает. Так что слал мне коллега :)
На маке не перехватил, уведомление прило на айфон. Но в сообщения войти не удается.
Сейчас восстанавливаюсь из бекапа :)
Goodkat
А удалить все сообщения не получилось или не вариант?
merkushin
К сожалению, просто не пускал в Сообщения совсем. Если удалять с Мака, то на телефон это не влияет, они хранят независимо.
Тут кто-то писал, что через менеджер запущенных приложений можно вернуться в него, но у меня не получилось. Возможно, мало попыток сделал.
Volt
Можно было, например, отправить самому себе сообщение через Сири. Или с мака.
Goodkat
Вот рецепт от Эпла:
usefree
Сири грустно сообщает, что у вас нет новых сообщений(
DenimTornado
Если мне память не изменяет складывался даже Safari, если зайти на страницу с таким текстом.
iago Автор
у меня сложился Chrome под мак, приложение Slack. Gmail обрабатывает нормально — там, видимо, кастомные контролы используются.
smartov
у меня ничего не сложилось. Читаю эту статью из Хрома под маком
stavinsky
нет с safari все хорошо )
kahi4
Если вам кто-то отправил смертоносную СМС, но не хочет отправлять «лекарство», мне помогло: попытаться запустить приложение, когда оно вылетело, дважды нажать кнопку домой, чтобы появился список запущенных приложений (оттуда оно не вылетело), открыть его. Дальше сразу же удалить сообщение. Срабатывает не с первого раза, но срабатывает.
dkuzevanov
Лекарство не работает, глюк не пропадает.
Как лечить?
iPhone 5
Jeditobe
Нива это такой внедорожник, который застрянет там, куда другие внедорожники не доедут.
Не злорадствую, просто шутка. Сколько людей себе добровольно вывели телефоны из строя и теперь не знают, как быстро исправить.
dkuzevanov
Спасло это: был открыт другой диалог, и из него переслано сообщение в диалог с кракозябрами.
vanipel
Лекарство:
Заходим в заметки, пишем любое сообщение, выбираем поделиться, сообщения, отсылаем абоненту от которого получено сообщение. После этого messages снова заработают.
Jeditobe
Но ломается у того, который прислал первым? Круговорот зла.
shimapa23
Спасибо, помогло
goodic
Вконтакте удаляет «оригинальное» сообщение из ленты и сообщений. Однако «минимально опасный» оставляет.
AndrewNikolaevich
через Вконтаке iPhone тоже перезагружается?
goodic
Я так понял, что падать будет только приложение в котором открывается лента ВК с данным сообщением. Проверить пока не удалось. Коллега с iPhone уже уехал.
AndrewNikolaevich
это как с окрашенной лавкой: пока не проверят — не поверят
iago Автор
Через любое приложение, которое пришлет вам push-уведомление с данным текстом. Любой мессенджер, например.
artF
Стоит проверить на разных iOS. У меня ничего не крашит, ни смс ни пуш. 7.1.2, 5ый айфон
iago Автор
Завидую вам, у меня крешит на пятерке, 8.3. У меня нет возможности проверить — пусть лучше Apple поскорей выпустит 8.3.1 или 8.4 с фиксом.
artF
Принципиально не обновляюсь, вполне устраивает моя прошивка, а если что-то нужно дополнительно — решаемо с помощью джейла.
Ну тут дело и не только в принципе, еще и в невозможности обновиться из-за отсутствия хорошего интернета)
iago Автор
Как разработчик я бы больше хотел, чтобы вы обновлялись!
iago Автор
Есть еще один способ вылечить телефон — достаточно прислать на зараженный телефон смс с десятка разных номеров, чтобы плохая смска оказалась глубоко внизу
Scrooge2
Айфон 5 на грани смерти, уже не смешно!
encyclopedist
На хабре тут уже был описан похожий баг в 2013 году (тогда падение было вроде в CoreFont тоже от арабской последовательности символов):
DoS эксплоит для движка WebKit
iago Автор
О, так это тот же баг! Видимо, WebKit тоже работает поверх Core Text, отсюда и одни корни проблемы.
JediPhilosopher
Вот, точно, было же. А то я испытал мощное чувство дежавю когда открыл сегодняшний пост и на всякий случай проверил дату — не занесло ли меня на пару лет назад, так как явно на хабре я про это уже когда-то читал…
MyHabrahabr
2 года прошло? Да я ту статью помню, как будто это было вчера!
Impuls
На всякий случай: тут текст той злополучной строчки
cartmenez
«Слишком длинное сообщение», сообщает мне freesms.mts.by.
При том, что длиной оно 35 символов.
Так что анонимно ребутить не выйдет
iago Автор
freesms.mts.by еще добавляет в конец айпишник и еще что-то, если мне не изменяет память
EvilBeaver
Вспомнилась откуда-то фраза «повесьте на забор кнопку, напишите большими буквами: „Кнопка Конца Света, НЕ НАЖИМАТЬ“ краска даже высохнуть не успеет.»
Xitsa
Это, кстати, доказывает масштабный эксперимент на Reddit'е
Alexeyslav
Обоги, он еще не закончился?
Xitsa
Нет ещё. Скоро, наверное, будет уже миллион нажатий.
Jeditobe
www.reddit.com/r/thebutton/comments/37twx8/%D0%BA%D0%B0%D0%BA_%D1%81%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C_%D0%B2%D0%B5%D1%87%D0%BD%D1%8B%D0%B9_%D0%B4%D0%B2%D0%B8%D0%B3%D0%B0%D1%82%D0%B5%D0%BB%D1%8C_%D0%BD%D0%B0_%D0%B8%D0%B4%D0%B8%D0%BE%D1%82%D0%B8%D0%B7%D0%BC%D0%B5
Haoose
Только что видел как счетчик дошел до нуля
pasteboard.co/QCF227f.png
И ничего не произошло. Через пару секунд снова пошел отчет.
Alexeyslav
Это нормально. Счетчик крутится не на страничке ведь, а где-то на сервере а на страничке он отображается с некоторым лагом.
Agent_Smith
А что, если нет, и это все шутка?
Haoose
Все, эксперимент завершен
www.reddit.com/r/thebutton/comments/38q4u3/when_this_post_is_10_minutes_old_this_subreddit
Alexeyslav
Отмучились. интересно сколько народу резко пошли спать в этот момент?
grossws
Разве каждый мог нажать не по 1 разу? Или вы про субреддит?
Alexeyslav
По разу. Но там помнится мне образовывались сообщество по недопущению провалов, вот они наверняка дежурили у кнопки — вот эти люди резко потеряли смысл жизни и пошли наконец спать после дежурства которое теперь не нужно.
iago Автор
А что там за эксперимент был, для тех кто в танке?
Alexeyslav
Краем уха слышал что группа пользователей организовалась и устроили дежурство чтобы не допустить конца отсчета. Не знаю как они там организовывались, но наверняка сидели и дежурили у кнопки.
ShashkovS
В волшебной игре The Neverhood тоже такое есть. Кажется, это один из примерно двух способов закончить игру до её логического окончания.
artF
iOs 7.1.2
Друг прочитал статью и попытался меня крашнуть. Ничего не вышло. Могу сто раз открыть сообщения, и любые пуш с этим текстом приходят. Ничего не вылетает. Чем я обделен?
iago Автор
Эпл каждый релиз меняет что-то в недрах системы. О чем тут говорить, даже в стандартных, проверенных временем контролах типа UITableView порой вылазят новые баги на ровном месте. Может, подлили случайно код из старой ветки — никто не застрахован от ошибок.
qRoC
На 7 не работает.
А вообще интересная штука, побаловались всем офисом, а потом искали другой телефон что бы переставить симки и перебить сообщения, а то у всех мессенджер падал.
9mm
Прямо «Зенитные кодексы Аль-Эфесби» в реальности :)
zaartix
Прочитав все комментарии невольно вспоминается картинка:
Jukobob
Sublime складывается, но если добавлять в новый файл. Если дописывать к уже существующему — все работает.
RussDragon
Проверил в 3-ем Сублиме, ничего не складывается, добавлял в новый файл.
SOLON7
Allah Akbar )))
ZhukV
Что очень странно, что даже при копировании текста в PHPStorm, приложение тупо вырубило. Crash log: gist.github.com/anonymous/4bb78a72a930ad12561a
UPD: аналогично положило и терминал: gist.github.com/anonymous/32bdf8257fa250423d63
encyclopedist
Ничего странного, баг в CoreText.
Что видно и по вашему трейсу:
ZhukV
Вот Unicode коды всех символов:
Line #2: 1604, 1615, 1604, 1615, 1589, 1617, 1576, 1615, 1604, 1615, 1604, 1589, 1617, 1576, 1615, 1585, 1585, 1611, 32, 2403, 32, 2403, 104, 32, 2403, 32, 2403, 10
Line #3: 20887
DIHALT
%english возвращается! :)
IvanAnonym
MacOS X 10.10.4 — полёт нормальный на Chrome 44.0.2403.9. Видимо, фикс уже на подходе.
Yuuri
Safari 7.1.6 на MacOS X 10.9.5 – тоже всё работает.
DjPhoeniX
Проверил в собственном приложении. iOS 6.1/7.1 отнеслись к этому нормально, и даже прекрасно всё нарисовали. А вот 8.3 легла наглухо.
DjPhoeniX
… на iOS8.3 так же не падает, если отрисовка идёт через CATextLayer. В UILabel падает.
Arik
А если телефон с которого шлют это смс тоже айфон, то тоже баг сработает? В message исходящие тоже в списках показывают
DIHALT
Сработает.
iago Автор
Это худший кейс, не надо так делать!
Juster
Решил запостить шутку про это сообщение себе на стену ВК, и пост через несколько секунд «самоудалился». Администрация ВК борется с распространением.
ShashkovS
А вы запостите модификацию, там в верху темы есть минимальный набор и описание, как изготовить новый.
ZhukV
В общем, отправил сам себе, ради «забавы». Полетело все. В сообщение уже зайти не мог, сразу вырубало. Лекарство тоже не помогло.
Помогло следующие: полная очистка сообщений, при помощи PhoneClean. Он требует PRO доступ, но там же на 4PDA и ключик есть для актуальной версии. Минус один, он тупо очищает всю историю сообщений. Если у кого-то там важные данные, но не используйте.
Meklon
А что будет, если на андроиде создать точку доступа с таким именем?
ForhaxeD
Переход от слов к делу в войне телефонов.
NickKolok
Если будут подтверждения — напишите. Реально интересный способ вырубить или подвесить все айфоны в пределах видимости, например, домашнего роутера.
Смущает одно: мы в этом конфликте будем агрессорами.
noxwell
Попробовал создать точку доступа на своем ноутбуке (netsh wlan start hostednetwork), ввел символы побайтово через реестр с переводами строк, все как надо (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WlanSvc\Parameters\HostedNetworkSettings). С андроида символы видны нормально. С айфона в список сетей нормально заходит, в названии сети отображает только первую строчку, при попытке соединиться перезагружает SpringBoard. Кто-нибудь в курсе, на iphone открытые сети показывает в push, как на андроиде? Поэкспериментировать пока не удастся за неимением iPhone на руках.
devlev
Пробовал на своем андроиде создать точку доступа с таким именем. Я правда не стал заморачиватся вводить побайтово а просто скопировал без переносов строку. Ну че, эффект достигнут, открываю настройки, WI-FI и вылетаю на главный экран.
sil1999
Хабранарод! Мне помогло следующее:
1) Запускаем «Заметки»
2) Выбираем любую заметку (или создаем новую), нажимаем пиктограмму «Поделиться»
3) Выбираем «Сообщение», в поле «Кому» указываем того, кто прислал нам вредное сообщение. Если высылали себе или кому-то еще — поочередно всем отсылаем по сообщению.
После этого «Сообщения» будут запускаться нормально.
Проверено на iPhone 5S 8.3 и iPad mini 2 8.3
ZhukV
iPhone 6, iOS 8.3 — не помогло…
sil1999
Специально сломал iPad и запилил видео с восстановлением — ссылку отправил в личку — посмотрите, может быть поможет…
ZhukV
Большое спасибо! Я то решил проблему путем удаления всех смс-ок (сообщений).
При «поделиться заметкой», у меня открывается модальное окно в этом же приложение (Заметки), наверное потому и не помогло.
FSA
А почему нельзя называть так Wi-Fi точку? Что будет в данном случае в теме не раскрыто. Проверить тоже не могу, ибо ни одного iPhone ни у меня, ни у знакомых нет.
Lsh
Наверное при обнаружении открытой точки телефон показывает уведомление. Но у меня тоже нету iphone. Просто догадка.
AnthonyBY
xCode 6.2 вылетил, на телефоне тестить не рискнул
Когда пытался расшарить эту новость в группе CocaoHeads Belarus, Facebook сказал мне следующее:
The content you're trying to share includes a link that might be unsafe
Power
?????????????????? ? ?h ? ?
?
всем!
iago Автор
Антон, можешь написать короткую версию в Facebook, она так же работает.
а
?? ? ?
?
sempol
Последний иероглиф должен быть не ?, а ?, так как, скорее всего, именно это слово и захочет сказать несчастный владелец айфона :)
(http://bkrs.info/slovo.php?ch=%E6%93%8D, пункт IV)
nE0
Билайн заблокировал прием таких сообщений для своих абонентов. Но не в ММS, тач что просто добавьте к сообщению любую картинку.
horses
Не подтверждаю. Только что отправил с билайна на билайн такое сообщение.
Оба дошли. Правда оба андроид телефона (может он это определяет и решает слать или не слать?).
И заметил странность, что отчет о доставке смс приходит буквально на минуту раньше самой смс (оба телефона рядом лежали).
EagleMoor
На iOS 8.3 iMessage подвисает и отвисает, без крашей
Antelle
Баг, скорее всего, из-за особенностей объединения символов в юникоде: тут они и с разным типом joining (когда символы можно объединять с другими слева, справа, сверху,… — вот те, где нарисованы такие пунктирные кружочки), направлением текста (влево, вправо) и на разных строках. Если вставить такую строчку, например, в консоль в хроме, курсор по ней тоже перемещается, как будто бы там есть меньше символов, чем на самом деле.
painjkee
Для обладателей джейлбрейкнутых устройств есть простое решение для «закрытия» данной уязвимости. В репозитории cydia.angelxwind.net необходимо установить твик IneffectivePower. Проверил на своем 5s с прошивкой 8.1
horses
«В контакте» при публикации на стенке такого сообщения удаляет его буквально через минуту. Модификация прошла.
Фэйсбук не пропускает такое сообщение, почему-то ругаясь на «ссылку». Модификация прошла.
Гугл + — все ок.
Одноклассники — все ок.
Твиттер сказал, что я бот и отклонил меня. Причем он даже не хотел модифицированные сообщения отправлять.
MiXaiL27
Наверное, теперь будут приходить спамовые смс с просьбой разблокировать повисший айфончик по такому-то номеру и подписывать на платные контент-сервисы по факту отправки смс.
Надеюсь я ни кому не подал идею.
AlexRex
Каждый год одно и то же.
habrahabr.ru/post/191654
iago Автор
И то, и пост 2013 года было про WebKit, здесь же — нативные контролы. Разница все же ощутимо есть.
bodqhrohro
Пхех, нестабильный нынче софт — от багов в каком-то кортексте операционка перезагружается… Я когда-то Nokia 3310 глючить заставил. Там при вводе номера с домашнего экрана можно по нему не только позвонить, но и выбрать сохранение или конвертацию валют. Проверки на длину при сохранении, в отличие от мастера создания контакта, там нет (видимо, упор на то, что на симку столько не влезет и лишнее обрежется). Вбил over 9k двоек и сохранил. Причём без имени контакта… При попытке отобразить этот номер — ПРОСТО выбрасывало на домашний экран (в итоге, телефонную книжку нельзя было листать через конец).
AlexRex
Заходит однажды тестировщик в бар.
Забегает в бар.
Пролезает в бар.
Танцуя, проникает в бар.
Крадется в бар.
Врывается в бар.
Прыгает в бар
и заказывает:
кружку пива,
2 кружки пива,
0 кружек пива,
999999999 кружек пива,
ящерицу в стакане,
–1 кружку пива,
qwertyuip кружек пива.
asedovski
В далеком 2003ем так вылетали сименсы. Вся 35-ая серия перезагружалась при получении сообщения '%english' или чегото похожего :) Но можно было перепрошиться исправив это слово в прошивке на другое секретное (да, было захардкожено для каких то нужд, типа переключения языка или чего еще) и тогда массовый (но тогда это слово носило другой характер, так как телефоны были только у 30% однокурсников с потока) спам только развлекал. а вот девочкам приходилось помогать :)
reega
Мой товарищ кипешует, что от этой смс на утро у него пропали все контакты. Пожалуйста, дайте ему профессиональный ответ насчёт этого.
iago Автор
Контакты (Contacts) — отдельное приложение, смски (Messages) — отдельное приложение. Если он не называл контакт арабскими символами, у него ничего пропасть не могло.
Если он имеет в виду то, что пропали все смски — пришлите ему штук 10 смс с разных номеров, это 100% лечит от бага. (т.к. превью сообщения с опасными символами уйдет глубоко вниз)
Grawl
Спешу заметить, что при Стиве это, вероятно, было, так как “ошибка существует, вероятно, столько же, сколько и сама iOS, и замечена случайно”.
Scraelos
Один мой коллега послал директору эту смс, и того после этого айфоном было отправлено много смс на сумму 400р на номер +447786205094
Из интернета стало ясно, что номер используется при активации Face Time, однако непонятно, как смс-убийца спровоцировала айфон на отправку этих смс.
У кого-нибудь было такое?
Alexeyslav
Никак. Скорей всего сам начудил и списал это все на действие вредной СМС-ки.
mva
Мне кажется, что просто директору выпал удачный шанс свалить свою оплошность допущенную ранее (или позже, в попытках «исправить») на другого