Wi-Fi адаптер через OTG
Идея перевести сетевую карту телефона в режим монитора разрушилась по причине собственной наивности и незнания элементарной информации о том, что подавляющее большинство мобильных сетевых карт этот самый режим монитора и не поддерживают.
Идея реализации задумки с помощью внешнего беспроводного Wi-Fi адаптера или «свистка», поддерживающего желанный режим монитора, рушилась десятки раз из-за новых и новых ошибок и потери веры в то, что это вообще возможно, но переросла в данную статью.
Итак, как подключить внешний Wi-Fi адаптер к устройству на Android или бег с препятствиями на дистанции «вставил — netcfg wlan0 up»:
Должно быть в наличии:
- Телефон на Android
- Поддержка OTG и сам OTG
- Terminal Emulator
- ROOT
- Исходники ядра
FAQ — структура выглядит так:
Мой случай:
- Samsung GT-P5100 Galaxy Tab 2 10.1, Андроид 4.2.2
- OTG «30-pin — USB»
- Terminal Emulator for Android
- ROOT
- Исходники стокового ядра 3.0.31-1919150 с сайта Самсунг
- Адаптер TP-LINK TL-WN722N на чипсете AR9271
- ath9k_htc/htc_9271.fw
- Дистрибутив Ubuntu 15.04 в VMware
- android-tools-adb
Начну. Но попрошу учесть, что далее все рассматривается для вышеперечисленного набора и алгоритм, скорее всего, не является универсальным, но отклонения незначительны.
I. Старт
Первым делом необходимо добыть фирмварь вашего адаптера. Вставляю адаптер в компьютер и выполняю команду dmesg . Нахожу:
Где слово правее слова driver — искомая информация. У меня это — ath9k_htc. Гуглю для него firmware. Качаю. Закидываю .fw-файл на телефон в /system/etc/firmware
Затем устанавливаю ADB:
apt-get install android-tools-adb
Третьим этапом качаю тулчейн (компилятор под ARM) отсюда. Там большой архив, мне нужна лишь папка android-platform_prebuilt-android-sdk-adt_r20-0-ga4062cc.zip\android-platform_prebuilt-a4062cc\linux-x86\toolchain\arm-eabi-4.4.3, которую я распаковываю в произвольное место.
II. Разгон
Для начала пишу терминале:
Затем перехожу в терминале в каталог с исходниками ядра, загруженными ранее, пишу
make help и получаю тучу информации, среди которой нужно найти нечто, заканчивающееся на _defconfig, у меня это:
И в завершении запускаю графическую конфигурацию ядра:
Появляется вот такое окно:
Продвигаюсь по маршрутам:
- Networking support → Wireless
Спускаюсь к Generic IEEE 802.11 Networking stack (mac80211) и нажимаю на пробел, наблюдая появление значка М перед этим пунктом
Device Drivers -> Network device support → Wireless LAN
Ставлю М у своего чипсета, в моем случае — Atheros Wireless Cards
Затем перехожу в сам этот раздел и внутри отмечаю все тем же пробелом и знаком M нужный мне пункт.
Сохраняю. Возвращаюсь в терминал, а если вы его закрыли, то в и каталог с исходниками тоже, и выполняю сначала make modules_prepare , а следом просто make . Результат потребует ожидания. Мой итоговый набор:
Потребуются модули (.ko-файлы), включающие слово ath и mac80211.ko. Переношу их на телефон.
Можно использовать adb, работая через компьютер, а можно не использовать и работать через терминал телефона, печатая команды пальцами по экрану. Я выбрал adb.
Напомню, как он работает. Подключаю телефон через USB (отладка, естественно, включена) и выполняю:
adb start-server
adb shell
su
Я в телефоне и под рутом.
Смотрю, какие модули уже есть командой lsmod и выгружаю их все, если это возможно, командой rmmod имямодуля
Затем перехожу в каталог с вышеперечисленными модулями:
cd /sdcard/ваш путь/
Можно убедиться в их наличии командой ls .
Загружаю их командой insmod имямодуля в такой и только такой последовательности (иначе просто не загрузится, выдавая ошибку):
ath.ko
ath9k_hw.ko
ath9k_common.ko
mac80211.ko
ath9k_htc.ko
III. Препятствия
В этом и вся соль, без которой статья была бы слишком простой.
1. Версии
Естественно, первая ошибка возникает на первом этапе.
Смотрю, что скажет об этом буфер сообщений ядра, выполнив команду dmesg :
Не совпадают версии. 3.0.31 не есть 3.0.31-1919150.
Открываю тот самый Makefile в исходниках ядра и в самом верху файла нахожу:
VERSION = 3
PATCHLEVEL = 0
SUBLEVEL = 31
EXTRAVERSION =
NAME = Sneaky Weasel
VERSION = 3
PATCHLEVEL = 0
SUBLEVEL = 31
EXTRAVERSION = -1919150
NAME = Sneaky Weasel
И сохраняю.
Заключительный этап пройдет в каталоге /include/config, где в файле kernel.release я поменяю 3.0.31 на 3.0.31-1919150
Снова make modules_prepare , make и далее по предыдущему пункту.
2. ewma
Загружая mac80211.ko снова имею ошибку, о которой dmesg скажет следующее:
Чудом прочитав на одном из англоязычных форумов опасное, но единственное в интернете, «решение», я перехожу в /net/mac80211/ и в файлах rx.c и sta_info.c и просто удаляю [либо комментирую (//)] строки ewma_add(&sta->avg_signal, -status->signal); и ewma_init(&sta->avg_signal, 1024, 8); соответственно.
Опять перекомпилирую модули и двигаюсь дальше.
3. Светодиод
При загрузке ath9k_htc.ko и mac80211.ko очередные ошибки, у mac80211.ko это:
А у ath9k_htc.ko это:
Если ieee80211_-ошибки от ath9k_htc.ko это потому что я пытаюсь его загрузить до mac80211.ko, то led_-ошибки от обоих модулей от того, что телефон не понимает, что делать со светодиодом на моем адаптере. Тут два варианта развития событий.
В первом просто убирается в графической конфигурации ядра значок [*] напротив
Networking support → Wireless → Enable LED triggers и Device Drivers → LED Support.
А во втором этот самый значок заморожен и снять его нельзя. Это значит, что при выборе моего адаптера, автоматически выбирается «поддержка» светодиода, убрать которую нельзя. Конечно же, это мой случай:
Кнопка помощи по Device Drivers → LED Support выводит следующую информацию по разделу:
…
config ATH9K_HTC
tristate «Atheros HTC based wireless cards support»
depends on USB && MAC80211
select ATH9K_HW
select MAC80211_LEDS
select LEDS_CLASS
select NEW_LEDS
select ATH9K_COMMON
.
…
config ATH9K_HTC
tristate «Atheros HTC based wireless cards support»
depends on USB && MAC80211
select ATH9K_HW
select ATH9K_COMMON
.
и сохраняю. Теперь можно снимать галочки:
Здесь и вовсе исчез пункт:
Опять и снова перекомпиляция, новые модули и т.п.
Вуаля. Все модули загружены. Выключаю Wi-Fi на телефоне и подключаю адаптер. Но светодиод на нем, как вы уже догадались, работать не будет. Оно и не нужно.
4. Версия firmware
…
[ 7582.477874] C0 [ khubd] ath9k_htc 1-1:1.0: ath9k_htc: Please upgrade to FW version 1.3
.
Просто качаем другой фирмварь, но уже требуемой версии, и кладем его вместо прошлого.
IV. Финиш
Теперь никаких проблем быть не должно. Выключаю родной Wi-Fi, все модули загружены, фирмварь нужной версии. Вставляю адаптер и netcfg впервые приносит счастье. Устанавливаю для появившегося сетевого интерфейса режим монитора и поднимаю его. Успех!
Ну а как и зачем зачастую используется режим монитора, вы и так все знаете. Спасибо за внимание!
Источник
Телефон на Android как Wi-Fi адаптер для компьютера
Сегодня в комментариях мне задали очень интересный вопрос. Можно ли в качестве Wi-Fi адаптера для компьютера использовать телефон на Android. Чтобы телефон, или планшет был подключен к Wi-Fi сети, и в режиме модема по USB кабелю передавал интернет на стационарный компьютер. У которого нет Wi-Fi адаптера и соответственно нет возможности напрямую подключатся к беспроводным сетям. И как оказалось – можно.
У меня почему-то никогда не было такой необходимости, и я не интересовался этим вопросом. Еще вроде со второй версии, на Android появился режим модема. И практически все телефоны и планшеты могут раздавать интернет на другие устройства по Wi-Fi, Bluetooth и по USB кабелю. Но как оказалось, Android устройства могут делится не только мобильным интернетом (EDGE, 3G, 4G) , но и Wi-Fi. А это значит, что с телефона можно сделать полноценный Wi-Fi адаптер для ПК.
Это очень полезная функция. Не редко бывает ситуация, когда после установки роутера, или покупки ПК нет возможности протянуть сетевой кабель к компьютеру. А с помощью этой функции можно подключить его к интернету. Пускай временно, пока вы не купите обычный Wi-Fi адаптер (что это такое я писал здесь, а о том как выбрать адаптер, можете почитать тут).
Я все настроил и проверил на телефоне Samsung Galaxy J5. Нашел только такой. Понимаю, что на других телефонах и планшетах, с другой версией Android и оболочкой, настройки могут немного отличатся. Но, думаю, не критично. Разберетесь. Или спросите в комментариях, если не сможете найти настройки.
Хочу еще добавить, что подключение к Wi-Fi сети через телефон работает очень стабильно и быстро. Интернет на компьютере «летает». В телефонах устанавливают хорошие беспроводные модули (не на всех, конечно) .
Подключаем компьютер к Wi-Fi сети через Android-устройство в роли адаптера
Сначала советую отключить мобильный интернет на своем телефоне. Просто отключите передачу данных через сотовую сеть. Это на всякий случай. Чтобы точно знать, что используется подключение по Wi-Fi.
Конечно же, ваш телефон должен быть подключен к Wi-Fi сети.
С помощью USB кабеля подключаем телефон к компьютеру. Он будет работать не только как адаптер, но еще и будет заражаться.
На телефоне заходим в настройки, в раздел «Подключения», дальше переходим в «Точка доступа и модем» и включаем «USB-модем» (общий доступ к интернет-подключению на этом телефоне) .
На компьютере сразу появится доступ к интернету через телефон.
Появится просто еще один сетевой адаптер. У меня Ethernet 4 (Remote NDIS based Internet Sharing Device) . У вас может быть другой. Это не важно.
Чтобы перестать использовать свой смартфон в качестве Wi-Fi приемника, просто отключите функцию «USB-модем» в настройках, или отключите телефон от компьютера.
Точно так же можно использовать и планшет на Android.
Надеюсь, эта статья вам пригодилась. Обязательно оставляйте в комментариях свои отзывы.
Источник
Вай фай адаптер для смартфона андроид
Приветствую, не знаю, куда написать, вот и решил сюда, думаю, что в этой ветке найдётся много знающих людей.
Как известно, существует способ взлома WiFi сети, использующей WPS авторизацию, через подбор WPS ключа. На компьютере под управлением Linux это весьма тривиальная задача и доходчиво описана в данной статье на хабре: Взломать Wi-Fi за 10 часов
Учитывая тот факт, что многие производители пихают в свои детища один и тот же пинкод, то и взлом однотипных роутеров с WPS становится совсем детской забавой, занимающей несколько секунд: Взломать Wi-Fi за… 3 секунды
Естественно пингвины — птицы ленивые, и уже состряпали для себя гуи с кнопкой «Сделать хорошо»: WPSCrackGUI
Вопрос из всего вышесказанного простой — есть ли реализация reaver, airmon-ng, airodump-ng под андроид?
Если нет, может, есть заинтересовавшиеся? Портировать это всё чудо, конечно же с целью проверки WiFi сетей на безопасность 🙂
Спасибо. С удовольствием почитаю мнения форумчан.
UPD:
Со временем в обсуждении появились ссылки на некоторые решения:
1. Тема с хабра об успешном запуске на телефоне SE Xperia Mini и Sony Xperia GO (возможно работает на всех телефонах Sony — надо проверять)
http://habrahabr.ru/post/190554/
2. Успешное использование aircrack-ng и reaver через установку Linux средствами Linux Deploy. На каком устройстве запущено неизвестно, возможно тот же Sony.
http://svedm.net/?p=426
UPD 2:
Существует утилита в виде готового apk файла, позволяющая переводить wifi модули фирмы Broadcom в режим монитора.
Сайт: http://bcmon.blogspot.ru/
Прямая ссылка на скачивание: https://bcmon.googlecode.com/files/bcmon.apk
Для работы программы требуется root и установленный BusyBox
UPD 3:
Появилась графическая оболочка Reaver-GUI for Android
Упростит задачу тем, у кого на устройстве работает bcmon (bcm4329/4330).
Краткое руководство по использованию от MaD_Mike_Nsk на русском здесь
UPD 4:
Пример использования внешнего usb wifi свистка, подключённого через OTG кабель к телефону. От sadykovildar читать здесь.
Сообщение отредактировал derak1129 — 11.11.20, 20:51
Источник