Пишу мессенджер для людей: модем капризничает1
Решил проверить как работает система авторизации. Собрал простенький клиент на андроиде, все окошки сделал, вкюлчил все сервисы, запустил БД, поднял закрылки, штурвал на себя иии...
И в консоли радующие глаз логи с эмодзи должны были выглядеть вот так:
Но вместо этого пошли злобные восклицания: капитан, все пропало, Must Run завалился.
Так, постойте, сервис авторизаци, ты же работал и я тебя точно не трогал! Что опять не так 😂🤣?!
Попробовал перезапустить все. Снова подготавливаю машину, пробегаюсь по конфигам, поднимаю тумблеры вверх... И неуспех. Вообще, Скала говорит, что перезагрузка решает 95% проблем, но моя вошла в те самые 5%.
Начинаю ковыряться с тем что падает и быстро выявляю что мой модем-телефончик, который я использую как систему рассылки SMS стал падать. Обновления на него не приходили, он лежал выключенным все это время. Да и вообще, это устройство уровня Nokia-кирпич :)
Ковыряюсь далее и вижу что команда запроса номера сим-карты не отрабатывает как надо. Все остальные команды работают (уровень сигнала, наличие симки, проверка памяти симки и все остальное). В общем, какие-то происки врагов. Вечер потрачен на выяснения причины того почему симка перестала предоставлять мне информацию о ее номере. Ковыряясь в сети нашел ответ, попутно еще много чего нашел. Делюсь.
Во-первых симки не такие уж и простые, работают по-разному. Раньше я использовал симку от МТС и она возращала номер. И мне этого хватало, был доволен. И весь код модма собрал с учетом логики: если спросить номер у симки, то она его вернет. Теперь использую симку от ГазпромМобайл. Вместо номера она возвращает "извините, с этим вопросом обращайтесь к ГазпромМобайлу".
Ссылку на страницу провайдера с информацией о том как узнать свой номер сейчас найти не получается, но вот что есть и это правильная информация:
Ну вы всё поняли. Шлем USSD запрос, получаем ответ и номер в кармане. Собрал запрос, отправил, приходит что-то, но явно не номер. Информация о балансе, реклама какая-то. Где обещанный номер?!
В общем, у меня был план, основанный на инструкции и я его придерживался 2 часа. Но номера за это время получить не удалось. Ладно, все же вынудили меня вынуть симкарту из телефона, вставить в нормальный телефон и с него отправить USSD запрос:
Ну и где номер? 4-й час ночи, отклавдываю телефон как приходит SMS в которой:
Ваш номер: "+7 999 999 99 99". Баланс 0 руб. Ожидайте SMS с остатками по пакетам услуг.
Ну и куча SMS с рекламой потом прилетело. Теперь мы знаем, не все что в инструкции написано - правда.
Модифицировал код, научил его принимать SMS в процеесе получения номера. Но возникла другая горячая проблема. Теперь вместо номера отправителя приходило что-то типа "Поешь лохматое чудище", или ближе к оригиналу "吃毛茸茸的". А данные отправителя мне нужны для идентификации отправителя.
На самом деле это не китайский и даже не эльфийский. И что-то даже ИИ не мог помочь мне понять что это неверно раскодированный заголовок.
В общем, заголовки SMS приходят в определенной кодирвке, не будем на этом останавливаться. Алгоритм раскодировал заголовок и получил ерунду на китайском. Через какое-то время я понял, что заголовок в общем-то теперь не кодируется. Ну в смысле не кодируется терпкм кунг-фу с тримя приседаниями с подвыподвертом, а просто в виде ASCII шлется.
Допиливаю код, декодирую ASCII и вуаля: GPBMobile, а не мусор какой-то. В общем, собрал код, протестил, модем снова заработал.
Пока гуглил тему, узнал что вот эти вот заголовки - это особая привилегия для альфачей. Собственно заголовки так и называются "Альфа-заголовки". В альфах в виде ASCII можно передавать не номер телефона, а, допустим, название фирмы или ФИО (хотя насчет ФИО не уверен).
В общем, суть в том, что провайдер сотовой связи следит чтобы мошенники не выдавали себя за других людей и блокирует если номер содержит недопустимый заголовок. И да, подмена заголовка наказуема. Вот что говорит ИИ:
Краткий ответ: Да, наказуема. Если вы технически сможете подменить альфа-имя (буквенный отправитель) и отправить SMS, то это квалифицируется как нарушение закона, даже если вы отправили письмо самому себе.С учетом вашего предыдущего вопроса про модем и AT-команды, давайте разберем, что именно считается нарушением и какое наказание грозит.
1.то считается подменой?Подмена происходит в тот момент, когда вы, используя технические средства (модем, софт, нелегальный шлюз), отправляете сообщение, где в поле "Отправитель" указано нечто иное, чем ваш реальный номер телефона, выделенный SIM-картой.
Даже если вы укажете там свое собственное имя ("Петя"), технически вы совершаете подмену идентификатора, потому что:
-У вас нет договора с оператором на использование этого имени.
...
Вдаваться в детали не стал т.к. подменять ничего не собираюсь. Интересно, а если бы подменил и сам себе бы прислал SMS, то считалось бы это "подменой" и наказуемо ли это. Насколько тонкий лед под ногами 😂
Кому интересно, можете подписаться куда-нибудь на меня, попробуете мессенджер в числе первых, если этот проект кому-то вообще интересен.
Постепенно буду дальше делиться успехами :)



Лига Геймеров
57.8K поста92.1K подписчиков
Правила сообщества
Ничто не истинно, все дозволено, кроме политоты, за нее пермач, идите на ютуб
Помни!
- Новостные/информационные публикации постим в pikabu GAMES
- Развлекательный контент в Лигу Геймеров
Нельзя:
Попрошайничать;
Рекламировать;
Оскорблять участников сообщества;
Нельзя оценивать Toki Tori ниже чем на 10 баллов из 10;
Выкладывать ваши кулвидосы с только что зареганных акков - пермач
За неэтичное использование сообщества - тоже бан. Если ты выкладываешь пост в наше сообщество и получаешь стартовые плюсы от наших подписчиков, не думай, что вытаскивать потом пост в своё личное сообщество будет умным поступком.