Блог Викторовича
Windows 10: Глючный модем МТС. Перепрошивка и решения
Без вступлений. Раз вы тут — значит знаете для чего пришли.)) Компания МТС упорно не желает обновлять своё программное обеспечение для модемов 827F, они же E3372h, E3372s. Далее версии Windows 1803 девайсы категорически отказываются работать. Тогда пошёл МТС лесом, а мы читаем дальше и учимся технологиям.
Внимание! Статья обновлена 25.07.2020. Дополнена в конце новым архивом.
Убедительная просьба! Перед прошивкой прочтите внимательно все три статьи: эту, которую читаете, вот ЭТУ и ЭТУ
Я уже затрагивал эту проблему в статье Windows 10: Подключение разорвано! Ну, мы же не можем ждать пока у них там раки на горе свистнут. В этой статье я постараюсь рассказать подробно о перепрошивке модема реально рабочими методами.
На сайте 4PDA есть тема про эти модемы, но из-за отсутствия модератора там всё так разбросано по углам, что очень трудно выбрать определенный порядок установки. Перепрошивал свой модем уже где-то может раз 20, в поисках приемлемого варианта, с чем с вами и поделюсь.
Сначала дочитайте весь текст статьи внимательно. Потом уже принимайте решение.
Поехали.
Значит имеете модем E3372h или s с заводской прошивкой Коннект Менеджер ( если уже убили, то читаем дальше ).
Во-первых, процессу не должен мешать ваш антивирус. Отключайте на время. И не забывайте, что после перезагрузки он опять включается.
Для особо нервных советую прежде проверить своим любимым антивирусом скачанные файлы, хотя они уже 100500+ раз проверены на Virustotal. ))
Во вторых, необходимо отключить в системе проверку цифровых подписей. Делается это так.
Запускаете командную строку от имени Администратора и последовательно вводите команды:
Закрываете командную строку и перезагружаетесь. Когда система запустится, в правом нижнем углу может появиться надпись, что система находится в тестовом режиме. Не обращайте внимания. Когда все закончите также в командную строку введете
Перегрузите и надпись пропадет.
Я подробнейшим образом описываю действия, чтобы у вас всё получилось с первого раза.
Конкретные ответы на ваши комментарии найдете в конце статьи, а также, по мере необходимости, я буду их вставлять в тексте.
Далее устанавливаете необходимые драйвера из архива в прошлой статьи, т.е HUAWEI_DataCard_Driver_6.00.08.00_Setup, FC_Serial_Driver_Setup и переключалку MobileBrServ_Setup. Рег-файл BOS_solution_2 — не нужен.
Комментарий: Анатолий 2019-07-11 at 12:02 Прошивка прошла, инет работает. Соединение определяется как сетевое, но мне это не мешает. Была загвоздка из-за того что модем шил без sim-карты. ПРОШИВАЙТЕ МОДЕМ КОГДА В НЕМ ЕСТЬ SIM-карта и все пойдет точно как в описании по прошивке. Прошил 827F.
Подключаете модем С SIM-КАРТОЙ и, если еще не установили, то по полной программе ставите Коннект Менеджер.
Многие пишут на сайтах, что мол удалите весь софт с компа. Ну, незнаю. Я описываю свой метод.
Вот теперь запускаем от Имени Администратора Автопрошивальщик. Я выбираю полный автоматический режим. На вопрос, стоит ли у вас модифицированная прошивка, пишем»N». Ждем окончания работы автопрошивальщика. Он шьёт версию вполне адекватную и к новым, и к старым системам. Это ответ на вопрос
Комментарий: Анатолий 2019-07-11 at 07:52 После прошивки модема он будет работать на версии винды 1903, а будет ли он работать на версии 1803, которая установлена на другом ноутбуке (он не мой, работодателя, и обновить его до 1903 не могу)
Нужно отметить, что программа прошивает модем не в клиентский вариант, а в , так называемый, веб-интерфейс HiLink, что даже гораздо удобней, информированней и юзабельней.
Единственное, что меня не устроило — нет привычной иконки в трее. Как и вот Игоря. ))
Комментарий: Игорь 2019-07-08 at 07:37 . так как интернет теперь стартует раньше самой системы) И лишняя программа не нужна. Но все равно хотелось бы возможность запускать коннект менеджер ( вдруг когда нибудь будет нужно)
Это легко решается маленькой, простой программкой Internet Off, которую можете скачать с моего Яндекс диска:
Она малюсенькая, в полтора мБ, а как здорово выручает. К тому же абсолютно бесплатная. Устанавливаете от имени Администратора и она автоматически появляется в трее. Пользоваться, ну прям, до безобразия просто: щелкнули по ней — появляется окошко с отключением интернета. Еще раз — окошко побольше: на сколько времени включить. Тут уж сами разберетесь. Не мне вас учить. =:)
Комментарий: Сергей 2019-07-10 at 12:55 Напишите, пожалуйста, или дайте ссылку как перепрошить модем через восстановление модемного флеша методом «иголки». Модем умер.
Ничего не «умер» )). Готовлю фотки. Без них не объясню нормально. Сейчас выложу и опишу.
Комментарий: Laaa 2019-07-10 at 17:42 прога при перепрошивке зависает. просит ввести код для прошивки модема, ввожу, и дальше никаких действий программа не предпринимает . помогите
( Такая катастрофа со временем. Продолжу чуть позже. И с фото и коротким видео про метод «иголки».
Дополнено 26.08.2019.
Ниже привожу инструкцию (спасибо сайту 4PDA + мои дополнения), для тех у кого программы не видят модем, зависает прошивка и как открыть СОМ-порты.
Отвечать каждый день на один и тот же вопрос — «Как открыть порты в хайлинке» уже порядком надоело.
Итак. «специалистам» варианты открытия «ручками», да бы не «париться» с ошибкой 10.
Она может вылезти при перепрошивке с мода на мод, со стока на мод,обновлении прошивки,или вэб-интерфейса)
Для особых тугодумов или «плохо шарящих» приступить сразу к п.4, но перед этим убедитесь что у вас установлены все драйвера! Datacard. Mobiserv. FC драйвер.
Проверьте перед «открытием» портов вручную, что установлены эти драйвера, именно в папках системы!
Первый.
Huawei E3372 (МТС 827F/829F, МегаФон M150-2, Билайн E3372/E3370, TELE2 E3372h-153) — Обсуждение (Пост rust3028 #43234052) — ЭТО Драйвер для портов модема в HiLink: FC_Serial_Driver_Setup.rar ( 525,99 КБ )
————————————
Второй.
Huawei E3372 (МТС 827F/829F, МегаФон M150-2, Билайн E3372/E3370, TELE2 E3372h-153) — Обсуждение (Пост rust3028 #49086905) — ЭТО HUAWEI DataCard Driver («стиковые» драйверы) HUAWEI_DataCard_Driver_6.00.08.00_Setup.rar ( 1,42 МБ ).
Теперь по вариантам от простого к сложному.
Вариант1.
Скриптом. Huawei E3372 (МТС 827F/829F, МегаФон M150-2, Билайн E3372/E3370, TELE2 E3372h-153) — Обсуждение (Пост rust3028 #35133017)
(распаковать полностью,запустить исполняемый файл (не EXE) — Предлагаю своё решение для ситуации, когда нужно перевести HiLink-модем в режим с портами, но http://192.168.8.1/html/switchProjectMode.html (switchDebugMode.html) не работает.
Прикрепленный файл sw_mode_E3372_new
Для этих портов необходим драйвер FcSerial.
ФАЙЛ — sw_mode_E3372_new.rar ( 240,13 КБ )
Новый, более удобный скрипт — Переключение устройства в Project/Debug mode.
Переключение устройства в Project/Debug mode (открывалка портов)
———————————————————————————
Программой https://www.dc-unlocker.com/downloads Запустив, нажмите лупу, до определения модема, в Диспетчере Устройств, появятся порты. — ЭТО dc-unlocker2client_1.00.1413.zip
Если она не видит модем,удаляем драйвер. ( просто Revo Uninstaller-oм )
Huawei E3372 (МТС 827F/829F, МегаФон M150-2, Билайн E3372/E3370, TELE2 E3372h-153) — Обсуждение
— ЭТО Переключалка MobileBrServ
Предназначена для модемов с HiLink-прошивкой и новых роутеров.
Собрал в установщик.
Прикрепленный файл MobileBrServ_Setup.rar ( 2,55 МБ )
Этот драйвер нужно удалять,если вы хотите чтобы модем корректно определился в DC-unlocker,при перепрошивке с хайлинка на хайлинк,при ручном открытии порта программой, или при применении скрипта №3
————————————————-
Скриптом Huawei E3372 (МТС 827F/829F, МегаФон M150-2, Билайн E3372/E3370, TELE2 E3372h-153) — Обсуждение (Пост ilya-fedin #51716190)
Распаковать полностью balong_sw_gateway.zip, запустить исполяемый файл (balong_sw_gateway)
Далее в окне вводим букву диска CD, появившийся при вставке модема в комп.
Идем в Установка и удаление программ и удаляем программу MobileBrServ.
Дальше качаете скрипт: Это прикрепленный файл balong_sw_gateway.zip ( 36,22 КБ )
И делаете то, что он просит
Появятся порты, можете начинать шить нужную вам прошивку (калькулятор Flash кода).
Если шьете HiLink, после прошивки первой прошивки ставим MobileBrServ!
————————————————
Отключить все локальные сети кроме модема! Т.е,оставить модем один. Шнуры,вафлю (не в рот брать, а Wi-Fi) и т.д отлючить! Тогда прошивка запросто найдёт порт переключившись в режим портов.(заранее проверить что стоят все драйвера).
Или требуется просто перезагрузить компьютер.
Перед любыми операциями, старайтесь отключать любые антивирусы или фаерволлы! А лучше и надежнее вообще без них. На свежей системе. Антивирусы — тонкая тема и обязательно будет статья на сайте. Разберем, наконец-то, все плюсы и минусы.
———————————————————————————
Бывало и такое,что рядом с модемом в соседние USB порты воткнуто что то ещё. отключить «это»
Важное дополнение!
Всем, кто поставил автоматическое переключение средствами ОС, при перепрошивке, может возникнуть ошибка 10.
Из этого поста Huawei E3372 (МТС 827F/829F, МегаФон M150-2, Билайн E3372/E3370, TELE2 E3372h-153) — Обсуждение (Пост rust3028 #69552514) — ЭТО Управление переключением во вторичную, рабочую USB-композицию в Windows
Для HiLink-модемов и роутеров с USB (альтернатива MobileBrServ).
Прикрепленный файл set_hilink_switch_01.exe ( 193,81 КБ ). Просто запустите архив от имени Администратора.
Требуется, отключить переключение композиции и действовать по вышеизложенным пунктам.
Скачать архив
P.S. Хотелось сделать как попроще, да видимо не получится просто. Придется один раз потрудиться, чтобы обеспечить себе достойный интернет. Продолжение следует.
У кого, как в комментарии:
«. А после перетыкания модема лампочка начинает бешено моргать зеленым, и никакие веб-морды не доступны. Попытка снова прошить последнюю прошивку (уже с прошитым WebUI) из п. 5 приводит уже конкретно к кирпичу — и даже зеленая лампочка не моргает.
В итоге я сделал пункт «если ничего не помогает» и залил МТС-прошивку. И дашбоард. Причем сначала залил дашбоард, а потом прошивку — так строго-настрого было предписано в «ЧИТАТЬ. » файле архива. И вроде как модем снова в режиме стик, но дашбоарда просто НЕТ. Т.е. диск не появляется в системе с файлами.
В итоге я получил странную фигню — модем прошивается, все хорошо, но любые заливки дашбоарда (со стик-прошивкой) или WEBUI (с HiLink прошивкой) мгновенно окирпичивают модем.
Может быть, поможете советом? Был бы крайне признателен. »
То скачайте дополнительно архив ниже.
Скачать
Размер: 91.6мБ
Можете попутно, раз уж зашли, нажать на кнопочки — Вам 2 секунды, а мне очень приятно и полезно для сайта.
Спасибо!
Драйвер модем мтс 829f для windows 10
Поддерживаемые диапазоны:
GSM/EDGE/EVDO/LTE/FDD/TDD/UMTS
Скорость приёма данных модемом до 150 Мбит/с,
Скорость передачи данных — до 50 Мбит/с
Поддерживаемые частоты
GSM / GPRS / EDGE 850 / 900 / 1800 / 1900
UMTS / DC-HSPA+ /WCDMA 900 / 2100
LTE 800/900/1800/2100/2600 MHz
Дополнительно
Поддержка карт MicroSD до 32 ГБ
Внешняя антенна
Тип разъема внешней антенны — CRC9, он же, по терминологии huawei — TS-5.
Модем имеет 2 антенных разъема (под MIMO-антенны), одиночная антенна подключается к разъему, ближайшему к USB
Операционные системы:
Поддержка OC Windows XP SP3, Windows Vista SP1/SP2, Windows 7, Windows 8, Mac OS X 10.5, 10.6, 10.7, 10.8, Linux
- Huawei DataCard Driver — самый основной драйвер
- Драйвер для Windows XP.
- Драйвер для портов HiLink
- Переключалка для HiLink (MobileBrServ)
- Альтернативная переключалка для HiLink — не рекомендуется к использованию
- Управление переключением во вторичную, рабочую USB-композицию в Windows
- Драйверы для ADB
- Драйверы + программа для управления под macOS
- Автоматический прошивальщик — Не рекомендуется к применению, убивает гаджеты с новыми прошивками.
- Программа-прошивальщик модемов HUAWEI под линукс
- Комплект для прошивания
- Комплект для прошивания через balong_flash
- balong_flash и balong_usbdload под macOS
- Веб-интерфейс 17.100.11.03.161 (Билайн)
- Веб-интерфейс 17.100.13.01.161 (Билайн) (в посте прошивка + морда, проша только для E3372h, морда ставится и на E3372s, и на E3372h)
- Веб-интерфейс 17.100.17.00.143 (МТС) для 829F (в посте прошивка + морда, проша только для E3372h, морда ставится и на E3372s, и на E3372h)
- Веб-интерфейс 17.100.05.06.965 (в посте прошивка + морда, проша только для E3372s, морда ставится и на E3372s, и на E3372h)
- Веб-интерфейс 17.100.14.02.577 (Beeline KZ)
- Веб-интерфейс 17.100.14.02.778 (Russia Open Market)
- Набор дашбордов
- Дашборд Mobile Partner
- Дашборд 23.015.05.11.143 (МТС) для 827F/829F (WIN10+MAC10.11) (в посте прошивка + дашборд, проша только для E3372h, дашборд ставится и на E3372s, и на E3372h)
- Аварийное восстановление прошивки модемов 3372S и E3372H
- Как замкнуть бутовую точку пина с корпусом модема без разборки модемаД
- О проблеме вечного Fastboot и борьбе с ней. Часть 1, Часть 2
- Восстановление модема методом стирания разделов флеши через fastboot
- Решение проблемы с портом аварийной загрузки модема в Windows 8.1
- Восстановление модемов E3272/E3276, E3372s и E3372h с HiLink-прошивкой
- Вывод модема из режима загрузки, не срабатывает на новых прошивках, в таком случае помогает «Прошивка» для вывода из режима загрузки.
- «Прошивка» для вывода из режима загрузки
- Скрипты для устранения проблемы с профилем для E3372s и E3372h
- Скрипты для открытия портов в HiLink
- Закрепление IMEI в устройствах на платформе V7R11 и V7R2
- Проверка фиксации TTL
- Проверка фиксации с проверкой текущего значения TTL ( одним скриптом — без применения командной строки )
- Автоматическая генерация IMEI при запуске модема
- Скрипты, помогающие обойти Yota от kolyanok, адаптированные под наш модем
Модем не программируют для совместимости с роутерами, наоборот, это делают производители роутеров. Поэтому ищите список совместимых моделей с вашим роутером. Если вы ищите роутер для работы с этим модемом, то создайте тему в Выбор и сравнение. Здесь все просьбы о помощи с выбором удаляются.
Далее, если вам нужна помощь для того, чтобы подружить модем с роутером, то вам нужно спрашивать помощи в теме роутера. Почему? Потому что роутеры очень разные, люди в этой теме понятия не имеют, что нужно сделать, чтобы модем с ним заработал. Модемы же, напротив, определяются все лишь несколькими разными способами, что-то нестандартное бывает редко. У этого модема есть несколько разных способа для определения: RAS, NDIS в Stick-прошивке и RNDIS, CDC в HiLink-прошивке (RNDIS для винды, CDC для линукса, включая роутеры. И NDIS — не RNDIS, это разные вещи). Иными словами, вам необходимо дружить роутер с модемом, а не модем с роутером, поскольку драйвера должны быть заложены в нем. А что можно сделать с модем? А ничего, нужно ковырять роутер, в него производитель не заложил драйвер.
В случае, если вас гонят из темы роутера сюда, не нужно писать об этом, исключений нет и пост все равно будет удален. Лучше скиньте ссылку на этот текст в тему роутера, чтобы они поняли, что они неправы. А если не помогло — ну что, значит не судьба.
PS: самая беспроблемная схема с роутером: прошивка HiLink на модеме с автопереключением в CDC + Zyxel Keenetic 4G III rev.A с прошивкой Padavan
Сообщение отредактировал Abbat1985 — 07.04.21, 12:49
Сообщение отредактировал Abbat1985 — 05.03.21, 18:33
после чего шеллом станет busybox и появится нормальный редактор командной строки.
VxWorks также имеет в своем составе 2 шелла — C-shell (установленный по умолчанию) и CMD (устанавливаемый командой cmd). Какой из них удобнее — дело вкуса. В обоих шеллах имеется команда help, а более подробную информацию о работе с командной строкой VxWorks можно получить вот из этого документа — http://read.pudn.com/d…ls_users_guide_6.2.pdf
Доступ к консолям ОС модема открывает широчайшие перспективы по глубокому исследованию кода модема и скрытых его возможностях. Для любителей ковыряться в коде это просто золотое дно. Всех других хочу предупредить — бездумный ввод команд в консолях может привести к негативным последствиям — от зависания модема до разрушения важных структур данных на флеше и полной потери работоспособности. Будьте осторожны!
Сообщение отредактировал Abbat1985 — 09.07.20, 20:51
Сообщение отредактировал ctich21 — 03.09.14, 11:13
Модифицированный веб-интерфейс для E3372 s на основе WebUI 16.100.05.00.03
Ориентирован на работу с прошивкой 22.286.03.00.00.
Работает также и с модифицированными прошивками 22.286.53.01.161_S_*.
Несовместим с оригинальной билайновской прошивкой 22.286.53.01.161 в части SMS.
После прошивки веб-интерфейса следует делать сброс настроек (Настройки->Система->Настр. по умолч.).
Сообщение отредактировал Abbat1985 — 09.07.20, 20:52
Предлагаю своё решение для ситуации, когда нужно перевести HiLink-модем в режим с портами, но http://192.168.8.1/html/switchProjectMode.html (switchDebugMode.html) не работает.
Для этих портов необходим драйвер FcSerial.
sw_mode_E3372_new.rar ( 240,13 КБ )
Сообщение отредактировал Abbat1985 — 09.07.20, 20:53
После некоторого периода тестирования выпускаю новый релиз калькулятора nlock-кодов для модемов Huawei. В прошлом
калькуляторе, calc201, обнаружилась ошибка в расчетной ветке 7, что иногда могло привести к неправильной генерации кодов.
Теперь калькулятор умеет вычилсять 4 варианта кода — flash-код, код алгоритмов версии 1 (old algo), 2 (new_algo) и 201 (201_algo).
Также, учитывая, что многие здешние обитатели вообще не понимают, что такое командная строка, я приделал графическую морду к калькулятору. Морда написана на кроссплатформенном Qt, и имеется и в linux, и в windows-версиях калькулятора. морда выглядит так:
Надеюсь, что тут все понятно. Единственное необходимое пояснение: кнопка reverse переворачивает IMEI задом наперед. Это нужно для вычисления кодов в команде at^spword модема 3372.
Linux-вресия калькулятора, кроме графической морды, имеет также режим командной строки. Если ее запустить без параметров — открывается графическая морда. Если указать парамтром IMEI — в консоль будут выданы все 4 кода. Можно также указывать ключи:
-r — перевернуть IMEI
-f — вычислить только flash-код
-1 — вычислить только код v1 (old algo)
-2 — вычислить только код v2 (new algo)
-3 вычислить только код v201 (201 algo)
Это может быть полезно при написании скриптов. Windows-версия калькулятора не имеет в себе такой функциональности — программировать под windows я не умею, да и не нужно это виндузятникам.
Во вложении 4 файла — раздельно версии под windows, linux 32 bit, linux 64 bit, и исходные тексты. Linux-версии требуют установленной в системе библиотеки Qt, windows-версия собрана статически и не требует никаких библиотек (зато имеет размер почти 4М).
В принципе, данный калькулятор процентов на 90 заменяет ветку под названием » Здесь можно получить коды разблокировки устройств БЕСПЛАТНО». И правильнее было бы повесить его в шапку этой темы. Но вряд ли барыги это допустят.
В заключении, хочу выразить благодарность пользователям rust3028 и Chujoi13 за неоценимую помощь в подготовке и тестировании этого релиза.
Сообщение отредактировал Abbat1985 — 09.07.20, 20:53
нет, нельзя. Мы же с тобой уже недавно обсуждали. Единственный способ попасть в debug снаружи — через запрос POST.
rust3028 написал скрипты для этого — Huawei E3372 (МТС 827F, Мегафон М150-2) — Обсуждение (Пост #35133017) , а ты их, насколько я помню, адаптировал под лиункс.
Еще можно сделать переключение внутри самого модема. Для этого надо написать простенькую программку:
#include
#include
#include
#include
void main() <
int nfd=open(«/dev/ndisapp»,2);
ioctl(nfd,1,0);
>
Собрать ее с помощью android ndk и запускать внутри модема. Именно таким способом производит переключение сам вебсервер.
Но тут есть подводный камень. В момент переключения SD-карта исчезает из USB-композиции и потом появляется заново. Если openwrt уже успел ее примонтировать — получишь ошибку. Поэтому использовать эту карту как extroot в openwrt сходу не получается.
Сейчас я как раз разбираю, как работает с картой AT-процессор — команду at^sd. Возможно, она поможет в этой ситуации.
Сообщение отредактировал forth32 — 30.11.14, 05:30
Кстати, у rust3028 уже имеется готовая программа переключения с произвольной задержкой, готовая для включения в autostart.
rust3028, может быть выложишь ее сюда, чтобы людям не мучаться с освоением ndk?
Автоматическое переключение модема в Debug Mode и Project Mode
Подходит для обоих модемов, на любой прошивке HiLink.
sw-mode.zip ( 306,85 КБ )
Сообщение отредактировал Abbat1985 — 09.07.20, 20:54
В качестве новогоднего подарка, пока есть свободное время, хочу опубликовать небольшой цикл из 2 статей, посвященный методам исследования одной из операционных систем модема — VxWorks. Меня давно об этом здесь просили, но как-то времени не было собраться. Информация предназначена для любителей поковыряться в потрохах модема, разобрать скрытые его возможности, понять, как он работает. Для тех кому модем нужен «воткнуть и забыть», эта информация бесполезна — просто проходите мимо, все равно ничего не поймете.
Итак, часть 1 — загрузка и разбор образа VxWorks в дизассемблере IDA.
VxWorks, как и все другие компоненты модема, хранится в одном из разделов флеш-памяти модема — разделе mtd11. Для начала нам надо получить образ этого раздела. Его можно получить обычной командой dd. Заходим в консоль линукса (телнетом, через adb, или через a-shell — все это описано в шапке). И вводим такую команду:
затем зайти по ftp на адрес 192.168.8.1 и забрать файл.
Полученный файл mtd11.bin содержит в себе упакованный образ vxworks, к которому добавлен заголовок раздела. Следующим этапом нам надо распаковать этот образ, отрезав предварительно заголовок. Это можно сделать так:
— Долго жмем ентер, пока таблица не закончится
— Закрываем лог в терминальной программе.
Полученный лог-файл содержит в себе таблицу символов. Каждая строка этой таблицы состоит из 3 полей: имени символа, его адреса, и типа (text — программный код, data — данные). Таблица имеет достаточно неприятный вид, кроме того, регулярно загажена строками «Type to continue, Q to stop: «. Наша цель — cделать из этой таблицы IDC-скрипт для импорта всех символов в базу IDA, Для этого я написал простенькую программу на С, прилагаемую к этому посту — vxsym.c. Вначале лог-файл следует открыть в текстовом редакторе, и отрезать от него в начале и в конце все строки, не относящиеся к таблице символов. Промежуточные строки «Type to continue. » уберет сама программа. Затем запускаем программу:
terminal.log в данном примере — это имя лог-файла, сохраненного из терминальной программы. В результате будет создан IDA-скрипт vxsym.idc, а на stdout будет выведена та же самая таблица символов, но приведенная к человеческому виду.
Теперь нам осталось загрузить в IDA полученный скрипт (нажать alt-f7 и выбрать файл vxsym.idc). При этом в IDA-базу будут внесены все имена из таблицы символов, а участки кода, отмеченные в таблице как TEXT, будут автоматически дизассемблированы.
На этом первый этап закончен — у нас есть готовая IDA-база, которую можно начинать разбирать и исследовать. Для тех, кто плохо знаком с ситемой команд ARM, прилагаю pdf-файл c описанием архитектуры и системы команд ARMv7.
Во второй части я расскажу о встроенном в VxWorks отладчике, жизненно необходимом для исследования кода. В качестве пример мы заставим сам модем посчитать nlock-код по алгоритму v201.
vxsym.c.gz ( 470 байт )
Сообщение отредактировал Abbat1985 — 09.07.20, 20:54
Часть 2 — пример исследования кода в отладчике VxWorks. Первая часть статьи здесь.
Исследовать код чисто умозрительно, разбирая последовательность инструкций в дизассемблере — конечно, можно, но достаточно тяжело. Регулярно возникает вопрос — а что в данный момент лежит в этом регистре? Перейдет ли управление по этой условной инструкции или нет? И так далее. Всегда хочется посмотреть регистры и память на живом модеме в интересующих нас точках. Фирма huawei сделала нам необычайно щедрый подарок — встроенный в VxWorks шелл с отладчиком. В качестве примера разберем такую задачу. Одной из подсистем VxWorks является процедура расчета кода разблокировки (знаменитый алгоритм v201). Когда пользователь вводит команду at^cardlock, модем рассчитывает nlock-код от своего IMEI, и сравнивает с введенным в команде. Если совпали — модем разблокируется. Не совпали — выводится сообщение ERROR. Анализом и обработкой AT-команд занимается Linux-часть модема. После приема команды через специальную подсистему обмена сообщениями (ICC) в VxWorks передается специальный запрос. По этому запросу VxWorks вычисляет и проверяет nlock-код, и возвращает в Linux через ICC ответ — совпало/не совпало. Мы попробуем заставить модем вычислить и показать нам 201-код от своего IMEI.
Команда ^cardlock — одноразовая. После того, как модем разблокировался, команда работать перестает. Но, к счастью, nlock-код требуется еще одной команде — at^datalock. Она используется для снятия блокировки с ряда служебных команд (типа ^nvrd/nvwr), и ее можно вводить сколько угодно раз. Вот с этой командой мы и будем работать.
Итак, у нас уже есть готовая IDA-база с образом VxWorks. Быстрый поиск по таблице символов дает нам процедуру с именем DRVAGENT_RcvDrvAgentDeviceDatalockSet. Именно эта процедура вызывается после приема сообщения от команды at^datalock. Но так ли это? Давайте проверим. Заходим в шелл VxWorks (C-shell) и вводим такую команду:
Break at 0x50d818c0: VerifySL Task: 0x53e964b8 (I0_TAF_FID)
NAME ENTRY TID PRI STATUS PC SP ERRNO DELAY
———- ———— ——— — ———- ——— ——— ——- ——
I0_TAF_FID vos_FidTask 53e964b8 144 STOP 50d818c0 5414ef38 0 0
task stack: base 0x5414f000 end 0x54147000 size 32768 high 896 margin 31872
exc. stack: base 0x54151ffc end 0x54151000 start 0x54152000
exc. stack: size 4092 high 624 margin 3468
proc id: 0x5245028c ((null))
options: 0x9005
VX_SUPERVISOR_MODE VX_DEALLOC_STACK VX_DEALLOC_TCB VX_DEALLOC_EXC_STACK
VxWorks Events
—————
Events Pended on : Not Pended
Received Events : 0x0
Options : N/A
r0 = 0x5372759c r1 = 0x5414ef3c r2 = 0x00000000
r3 = 0x00000000 r4 = 0x5414ef3c r5 = 0x5372759c
r6 = 0x53727580 r7 = 0x00000000 r8 = 0x5369fb60
r9 = 0x00000010 r10 = 0x0000000f r11/fp = 0x5414ef60
r12/ip = 0x32303634 r13/sp = 0x5414ef38 r14/lr = 0x51463690
pc = 0x50d818c0 cpsr = 0x600c0113 ttbase = 0x53f74000
value = 0 = 0x0
[C]->b 0x50D819C0
value = 0 = 0x0
[C]->c
Break at 0x50d819c0: VerifySL +0x100 Task: 0x53e964b8 (I0_TAF_FID)
NAME ENTRY TID PRI STATUS PC SP ERRNO DELAY
———- ———— ——— — ———- ——— ——— ——- ——
I0_TAF_FID vos_FidTask 53e964b8 144 STOP 50d819c0 5414ef0c 0 0
task stack: base 0x5414f000 end 0x54147000 size 32768 high 896 margin 31872
exc. stack: base 0x54151ffc end 0x54151000 start 0x54152000
exc. stack: size 4092 high 624 margin 3468
proc id: 0x5245028c ((null))
options: 0x9005
VX_SUPERVISOR_MODE VX_DEALLOC_STACK VX_DEALLOC_TCB VX_DEALLOC_EXC_STACK
VxWorks Events
—————
Events Pended on : Not Pended
Received Events : 0x0
Options : N/A
r0 = 0x537273ec r1 = 0x5414ef0c r2 = 0x00000006
r3 = 0x51bfe9c8 r4 = 0x5414ef0c r5 = 0x5414ef3c
r6 = 0x0000000f r7 = 0x537273ec r8 = 0x5369fb60
r9 = 0x00000010 r10 = 0x0000000f r11/fp = 0x5414ef34
r12/ip = 0x00000006 r13/sp = 0x5414ef0c r14/lr = 0x5414ef14
pc = 0x50d819c0 cpsr = 0x200c0113 ttbase = 0x53f74000
value = 0 = 0x0
[C]->d 0x5414ef0c,8,1
NOTE: memory values are displayed in hexadecimal.
0x5414ef00: 36 34 33 31 * 6341*
0x5414ef10: 35 30 38 39 *5084. *
value = 0 = 0x0
Вот так мы вычислили nlock-код c помощью модема. Этот код является абсолютно точным, образцовым. Можно при входе в процедуру VerifySL c помощью команды m вписать в память другой IMEI, и вычислить nlock-код от него. Я использовал эту возможность для отладки своего калькулятора кодов.
Возможности отладчика VxWorks очень обширны. Вот крайткий список полезных команд:
Предусмотрена там и справочная система — команда help и ее производные. Прилагаю к этому посту pdf с фирменным описанием шеллов VxWorks. Есть и другие доки от WindRiver, легко находящиеся на просторах интернета.
Надеюсь, моя статья подвигднет кого-нибдуь на изучение кода модема. Поверьте, это крайне увлекательное и полезное занятие!
vxworks_cli_tools_users_guide_6.2.pdf ( 642,59 КБ )
Сообщение отредактировал Abbat1985 — 09.07.20, 20:55