Tinder орнына AirDrop-ті қалай қолданамын

Tinder орнына AirDrop-ті қалай қолданамын

Apple құрылғыларында тамаша Airdrop мүмкіндігі бар - ол құрылғылар арасында деректерді жіберу үшін жасалған. Бұл жағдайда құрылғыларды орнату немесе алдын ала жұптау қажет емес, барлығы екі рет басу арқылы жұмыс істейді. Wi-Fi арқылы қондырма деректерді тасымалдау үшін пайдаланылады, сондықтан деректер үлкен жылдамдықпен тасымалданады. Сонымен қатар, кейбір трюктерді қолдана отырып, сіз файлдарды жіберіп қана қоймай, сонымен бірге сізбен бір метро вагонында болған адамның телефон нөмірін де біле аласыз.

Соңғы бір жыл бойы мен бұл функцияны жұмысқа бара жатқанда, қоғамдық көлікте және қоғамдық тамақтандыру орындарында қызықты танысу үшін пайдаланып жүрмін. Орташа алғанда мен күніне бірнеше жаңа таныстар жасай аламын, кейде мен метродан жаңа адаммен бірге кетемін.

Кесудің астында мен сізге барлық құрма туралы айтып беремін.

AirDrop қалай жұмыс істейді?

Tinder орнына AirDrop-ті қалай қолданамын

AirDrop – бір деңгейлі желі ішінде файлдарды тасымалдауға арналған протокол. Ол кәдімгі жергілікті желі арқылы да, кез келген Apple құрылғылары арасында да жұмыс істей алады. Біз соңғы жағдайды талдаймыз, екі құрылғы жалпы желіге қосылмаған, бірақ жай ғана жақын жерде болса, мысалы, телефондары бар екі адам метро вагонында саяхаттап, жалпы Wi-Fi желісіне қосылмаған.

Tinder орнына AirDrop-ті қалай қолданамын
AirDrop арқылы жіберудің бірінші кезеңі BLE пакетін жіберу болып табылады

AirDrop арқылы деректерді тасымалдауды бастау үшін бастамашының телефоны AWDL (Apple Wireless Direct Link) арқылы қосылым орнату ұсынысымен iCloud тіркелгісі және бастамашы құрылғыларының иесінің телефон нөмірі туралы хэштелген ақпаратты қамтитын BLE таратылым пакетін жібереді. ) протоколы, Wi-Fi сияқты нәрсе. Android әлемінен Fi Direct. Бұл BLE пакетінің құрылымы өте қызықты, біз оны әрі қарай талдаймыз.

Алушы тарапынан AirDrop үш күйде болуы мүмкін:

  • Өшірілген - мүлде анықталмайды
  • Тек контактілер үшін — тек мекенжай кітабындағы контактілерден файлдарды қабылдаңыз. Бұл жағдайда контакт icloud тіркелгісі байланыстырылған телефон нөмірі немесе электрондық пошта болып саналады. Тіркелгілерді байланыстыру логикасы мұнда iMessages мессенджеріндегі сияқты жұмыс істейді.
  • Барлығына - телефон бәріне көрінетін болады

Tinder орнына AirDrop-ті қалай қолданамын
AirDrop құпиялылық параметрлері. Әдепкі күй «Контактілер үшін» күйіне орнатылған.

Құпиялық параметрлеріңізге байланысты телефон AWDL арқылы байланыс орнатуды жалғастырады немесе BLE пакетін елемейді. AirDrop «барлығы үшін» күйіне орнатылса, келесі қадамда құрылғылар бір-бірімен AWDL арқылы қосылып, олардың арасында IPv6 желісін жасайды, оның ішінде AirDrop стандартты IP протоколы арқылы mDNS арқылы кәдімгі қолданба протоколы ретінде жұмыс істейді.

Tinder орнына AirDrop-ті қалай қолданамын

Тәжірибелер үшін AWDL MacBook компьютерінде қалай жұмыс істейтінін көруге болады. Осы протокол бойынша барлық алмасу интерфейс арқылы жүзеге асады awdl0, оны Wireshark немесе tcpdump көмегімен оңай түсіруге болады.

Бұл кезеңде біз үш нысанды білеміз:

Bluetooth LowEnergy (BLE) пакеті - бұл пакетте телефон бастамашының контактілер тізімінде бар-жоғын шешетін деректер бар.
Apple Wireless Direct Link (AWDL) — Apple компаниясынан Wi-Fi Direct үшін меншікті ауыстыру, егер BLE арқылы байланыс сәтті болса іске қосылады.
AirDrop - mDNS, HTTP және т.б. көмегімен кәдімгі IP желісі ішінде жұмыс істейтін қолданбалы протокол. Кез келген Ethernet желісінде жұмыс істей алады.

BLE пакетінің құрылымы

Бұл BLE пакеті бастамашыдан алушыға бір рет қана ұшатын сияқты көрінуі мүмкін, содан кейін алмасу тек AWDL арқылы жүзеге асады. Шындығында, AWDL қосылымының қызмет ету мерзімі өте қысқа, небәрі бірнеше минут немесе одан аз. Сонымен, егер файлды алушы сізге жауап бергісі келсе, ол бастамашы ретінде де әрекет етеді және BLE пакетін жібереді.

Қабылдаушы жақтағы телефон бастамашының нөмірі/электрондық поштасы оның контактілер тізімінде бар-жоғын қалай түсінеді? Мен жауапты білгенде қатты таң қалдым: бастамашы өз нөмірін және электрондық поштасын sha256 хэш ретінде жібереді, бірақ толығымен емес, тек алғашқы 3 байт.

Tinder орнына AirDrop-ті қалай қолданамын
AirDrop бастамашысының BLE пакетінің құрылымы. Телефон нөмірі мен электрондық поштаның хэштерін пайдалана отырып, жауап беруші бастамашының оның контактілер тізімінде бар-жоғын түсінеді.

Мысалы, Apple есептік жазбаңыз (iCloud, aka iMessages) +79251234567 нөміріне байланысты болса, ондағы хэш келесідей есептеледі:

echo -n "+79251234567" | shasum -a 256
07de58621e5d274f5844b6663a918a94cfd0502222ec2adee0ae1aed148def36

Нәтижесінде BLE пакетіндегі мән ұшып кетеді 07де58 телефон нөмірі үшін. Бұл жеткіліксіз сияқты, бірақ көбінесе бұл үш байт нақты телефон нөмірін білу үшін жеткілікті.

Сондай-ақ, AirDrop құпиялылық параметрі BLE пакетіндегі деректерге әсер етпейтінін есте ұстаған жөн. «Барлығына» параметрі орнатылған болса да, телефон нөмірінің хэші оның ішінде болады. Сондай-ақ, ортақ пайдалану терезесі ашылғанда және Wi-Fi желісінің құпия сөзі енгізілгенде телефон нөмірі хэші бар BLE пакеті жіберіледі.

BLE пакеттерінің құрылымын және оған ықтимал шабуылдарды егжей-тегжейлі талдау үшін зерттеуді оқыңыз Apple Bleee және орыс Хабреге аударма.

Apple Bleee зерттеуі BLE пакеттеріндегі деректерді талдауды автоматтандыруға арналған дайын питон сценарийлерін жариялады. Мен зерттеулерді тексеріп, бағдарламаларды сынап көруді ұсынамын, мұнда көптеген қызықты нәрселер бар.

AWDL (Apple Wireless Direct Link)

AWDL — Wi-Fi Direct сияқты нәрсені жүзеге асыратын кәдімгі Wi-Fi-ға меншікті Apple қосымшасы. Мен оның қалай жұмыс істейтінін толық білмеймін, арналарды хабарлау мен үйлестірудің арнайы әдісі бар және ол тек Apple компаниясының жеке драйверлерінде жұмыс істейді. Яғни, тек MacBook/iPhone құрылғылары AWDL арқылы қосыла алады.

Қайғылы Android телефонының иелері әлі де дұрыс жұмыс істейтін Wi-Fi Direct функциясын армандайды.

Tinder орнына AirDrop-ті қалай қолданамын

Бірақ жақында жігіттер лабораториялық AWDL толық ашық бастапқы іске асыруды жазды және оны атады Сымсыз сілтемені ашыңыз (ЖАПАЛАҚ). OWL іске қосу үшін Wi-Fi адаптері монитор режимін және пакеттік инъекцияны қолдауы керек, сондықтан ол барлық жабдықта жұмыс істемейді. Сайтта Raspberry pi конфигурациясының мысалдары бар. Бұл бастапқы AWDL қарағанда айтарлықтай нашар жұмыс істейді, мысалы, қосылымды орнату уақыты түпнұсқа үшін бірнеше секундтың орнына ~10 секундқа ұзартылады, бірақ ол жұмыс істейді.

Tinder орнына AirDrop-ті қалай қолданамын

Сондай-ақ, бұл жігіттер Python-да AirDrop протоколының іске асырылуын нөлден жазды OpenDrop. Оны Linux жүйесінде AirDrop іске қосу үшін OWL және macOS жүйесінде түпнұсқа AWDL бірге пайдалануға болады.

AirDrop арқылы қалай айналдыруға болады

Tinder орнына AirDrop-ті қалай қолданамын
AirDrop арқылы айналдырудың әдеттегі жағдайы

Жалықтыратын теория жеткілікті, тәжірибені бастау уақыты келді. Осылайша сіз барлық қажетті құрал-жабдықтармен қаруланғансыз және жоғары технологияны қолдана отырып, алға жылжуға және шарларды айналдыруға дайынсыз.

Алдымен сіз негізгі ойларды есте сақтауыңыз керек:

  • AirDrop телефон құлпы ашылған жағдайда ғана жұмыс істейді – егер мақсат телефонға үнемі қарап тұрса жақсы. Көбінесе бұл қызықсыз жерлерде, мысалы, метрода болады.
  • Уақыт керек — әдетте, оң түрлендіру жіберілген 3-5-ші суретте орын алады, сондықтан бір жерде кемінде 5 минут тыныш уақыт қажет. Мен AirDrop арқылы хабар алмасуды жалғастыруға келіскен сәтіңізді оң конверсия деп санаймын. Мұны тез арада жүзеге асыру қиын, өйткені сіздің пайдалы жүктемеңізді кім қабылдағаны бірден белгісіз және сіз бірдеңемен келісе алмас бұрын қызып кетуіңіз мүмкін.
  • Жеке шығармашылық жақсырақ жұмыс істейді — Мен сіз AirDrop арқылы жіберетін мультимедиа мазмұнын пайдалы жүктеме деп атаймын. Жай ғана мем бар сурет ешқайда әкелмейді; мазмұн жағдайға сәйкес болуы және әрекетке нақты шақыруы болуы керек.

Классикалық әдіс - жай телефон

Айфоны бар барлық адамдар үшін қолайлы, әлеуметтік дағдылардан басқа арнайы дағдыларды қажет етпейді. Біз AirDrop-ты Барлығы режиміне ауыстырып, метроға түсеміз. Кәдімгі күні (өзін-өзі оқшаулау алдында) Мәскеу метросының вагонында мен мынаны байқадым:

Tinder орнына AirDrop-ті қалай қолданамын
Мақсаттар тізімі

Көріп отырғаныңыздай, барлық дерлік телефондар иесінің аты-жөнін таратады, ол арқылы біз оның жынысын оңай анықтай аламыз және тиісті пайдалы жүктемені дайындай аламыз.

Пайдалы жүк

Жоғарыда жазғанымдай, бірегей пайдалы жүктеме жақсырақ жұмыс істейді. Ең дұрысы, сурет иесіне аты-жөні бойынша хабарласуы керек. Бұрын мен жазбалар қосымшасындағы графикалық редакторды және мобильді Photoshop түтіктерін пайдаланып шығармашылықты мүсіндеуге тура келді. Нәтижесінде, қажетті сурет салынған кезде, көліктен түсу керек болды.

Менің досым Аня koteeq, дәлірек айтқанда, менің өтінішім бойынша, тез арада жазуы бар қажетті суреттерді жасайтын Telegram боты жазды: @AirTrollBot. Мен доптарды бұрынғыдан әлдеқайда технологиялық түрде домалата алатыным үшін оған үлкен алғыс айтамын.

Ботқа мәтін жолын жіберу жеткілікті және ол оны AirDrop терезесіндегі алдын ала қарау үшін арақатынасына дәл сәйкес келетін кескін түрінде жасайды. Түймелерді басу арқылы суреттегі таңбаны таңдауға болады. Сондай-ақ бұрыштағы суретке Telegram логинін қосу мүмкіндігін қосуға болады.

Tinder орнына AirDrop-ті қалай қолданамын
Пайдалы жүктеме генераторы

Ең сорақысы, сурет жәбірленушінің экранында ешқандай әрекетсіз бірден көрсетілді. Тіпті «қабылдау» түймесін басудың қажеті жоқ еді. Пайдалы жүкті жүктеген кезде сіз бетіңіздегі лезде реакцияны көре аласыз. Өкінішке орай, iOS 13 нұсқасынан бастап бейтаныс контактілердің суреттері енді экранда көрсетілмейді. Бұрынғыдай көрінді:

Tinder орнына AirDrop-ті қалай қолданамын
Пайдалы жүк iOS ≤12 жүйесінде жеткізілді

Енді алдын ала қараудың орнына жіберушінің құрылғысының аты ғана көрсетіледі. Сондықтан iOS ≥13 нұсқасы бар жәбірленушімен аты-жөні бойынша байланысудың жалғыз жолы - оны құрылғыңыздың параметрлерінде орнату, мысалы, телефонға «Юлия, сәлем» деп қоңырау шалу. Кеңес: эмодзилерді құрылғы атауында пайдалануға болады. Әрине, бұл әдіс суреттегідей жарқын емес, бірақ ол «қабылдау» түймесін басу мүмкіндігін айтарлықтай арттырады.

Әрекеттердің әрі қарай сипаттамасы техникалық мақаланың шеңберінен тыс және тек сіздің қиялыңызға, импровизацияңызға және юморыңызға байланысты. Бұл ойынға қосылып, сізге суретпен немесе жазбалар арқылы жауап бере бастағандар әдетте өте көңілді, ашық және қызықты адамдар екенін айта аламын. Суретке қарап, жай жауап бермей, немесе одан да жаманы, хабарламадан бас тартатындар, әдетте, жалықтырғыштар мен пысықайлар. Қорқыныш факторы да жиі рөл атқарады: нәзік, ұялшақ адамдар мұндай тәкаппар белгісіз бейтаныс адаммен араласудан қорқады.

Автоматты таңдау машинасы

Егер сіз пайдалы жүктемелерді қолмен жасауға және жіберуге тым жалқау болсаңыз және процесті автоматтандыруды қаласаңыз, фондық режимде AirDrop арқылы ауқымдағы барлық адамдарға суреттерді жіберетін автоматты дауыс таңдау машинасын жасауға болады. Аппараттық платформа ретінде raspberry pi нөлді қолданамыз, бірақ Linux жүйесі бар кез келген компьютер мұны істейді, ең бастысы, Wi-Fi картасы монитор режимін және пакеттік инъекцияны қолдайды.

Tinder орнына AirDrop-ті қалай қолданамын
Таңқурай pi нөлге негізделген Airdrop арқылы динамик жіберуші + UPS Lite батарея экраны

Jailbreak iPhone құрылғыларына арналған AirDrop суды жою бағдарламалары бар, олар raspberry pi жүйесіндегі ашық нұсқаларға қарағанда тұрақты жұмыс істейді.

Таңқурай pi-де OWL орнату мына жерде егжей-тегжейлі сипатталған жобаның сайты, бірақ мен Raspberry Pi Zero үшін Kali Linux құрастыруын пайдаланғым келеді, себебі онда rpi0 құрылғысында Wi-Fi монитор режимін қосу үшін орнатылған nexmon патчтары бар.

Airdrop (дәлірек айтқанда AWDL) пациенттер үшін BLE пакетін алғаннан кейін ғана іске қосылатынын есте ұстаған жөн. Сондықтан біз оны бірнеше секунд аралықпен жіберуіміз керек. Мұны қызметтік бағдарлама арқылы жасауға болады py-bluetooth-уtils. start_le_advertising() функциясын пайдаланып, мен деректер жолын apple bleee мысалдарынан жіберемін: 000000000000000001123412341234123400.

Сізде жұмыс істейтін OWL демоны болғаннан кейін, сіз менің шанышқыны іске қоса аласыз opendrop. Репозиторийде сценарий бар flooder.py, ол барлығына суретті жібереді kak_dela.jpeg.

Менің байқауларым бойынша, таңқурай pi нөл w монитор режимінде тұрақсыз. Шамамен 20 минут белсенді су тасқыны жұмысынан кейін Wi-Fi ішкі жүйесі істен шығады. Мәселені автор сипаттайды пвнаготчи, және шамадан тыс қызып кетуден туындаған болуы мүмкін. Күзетшімен қамтамасыз ету немесе тұрақтырақ жабдықты пайдалану қажет

Маниачелло режимі - мен сіздің нөміріңізді білемін

Егер сіз өзіңізді адекватты емес маньяк ретінде көрсеткіңіз келсе және сізбен қарым-қатынасты жалғастыру ниетінен мәңгілікке бас тартқыңыз келсе, жақын жерде орналасқан адамның телефон нөмірін білуге ​​тырысуға болады.

Бұрын білгеніміздей, бастамашы жіберген BLE пакеттерінде sha256 телефон нөмірінің алғашқы үш байты бар. Бұл хэш жәбірленуші «бөлісу» түймесін басқанда және airdrop құрылғыларын сканерлей бастағанда немесе енгізу өрісінде жаңа желі үшін Wi-Fi құпия сөзін түрткен кезде ұсталуы мүмкін (осылайша Apple сіз сұрауға болатын достарды ауқымнан іздейді. желі құпия сөзі).

Сізге жәбірленушіден хэш-хабарламаны іске қосып, оны ұстау керек. Мен репозиторийден утилиталарды пайдаланамын Apple Bleee. Құрылғылардың Bluetooth MAC мекенжайлары кездейсоқ және үнемі өзгеріп отыратындықтан, осы тізімде қажетті құрылғыны анықтаудың басқа жолын табуға тура келеді. Тапсырма iOS жүйесі телефонның ағымдағы күйін тарататындығымен жеңілдетілген: экран өшірулі, экран қосулы, экранды құлыптау, құлпын ашу және т.б. Сондықтан жәбірленушінің әрекетін бақылай отырып, құрылғының ағымдағы күйін кестедегі құрылғымен салыстыруға болады. Ең оңай жолы – пайдаланушы қалтасынан телефонды алып, экранды қосып, телефонды саусағымен немесе бетімен құлпын ашқан сәтін түсіру. Мұның бәрі иісшілде көрінетін болады.

Tinder орнына AirDrop-ті қалай қолданамын
белгішесі Х телефон хэштері бар пакет ұсталды дегенді білдіреді.

Олардың талдаушысы кейде бұзылады, бірақ көбінесе ол жұмыс істейді. Мен осалдықтың мәнін толығымен қайталамаймын, өйткені оны Apple Blee авторлары егжей-тегжейлі талдаған, мен тек өз тәжірибемді сипаттаймын. Мен CSR 8510 чипінде USB Bluetooth адаптерін қолданатынымды айтайын, өйткені ол мен үшін MacBook ішіне орнатылған және виртуалды машинаға енгізілген Bluetooth адаптеріне қарағанда әлдеқайда тұрақты жұмыс істейді.

Сонымен, біз жәбірленушінің телефонынан хэшті алдық және телефон нөмірі хэшінен үш байтты алдық.

Tinder орнына AirDrop-ті қалай қолданамын
Утилитаны пайдаланып телефон нөмірі хэші бар BLE пакеті ұсталды read_ble_state.py

Біз Ресейде барлық ұялы телефон нөмірлері +79 ​​кодынан басталатынын білеміз және, мүмкін, біздің жәбірленушінің телефонында бірдей код бар. Бізде +79000000000-нан +79999999999-ға дейінгі сандар диапазоны бар екен, миллиардқа жуық сандар.

Ауқымды тарылту үшін біз кез келген операторда нақты тіркелген кодтарды ғана алып, қалғанын алып тастаймыз. Нәтижесінде диапазон жарты есе үлкен, шамамен жарты миллиард санға айналады.

Әрі қарай, біз барлық сандардан sha256 жасаймыз және әрбір хэштен тек алғашқы 3 байтты сақтаймыз. Біз бұл тізімді Sqlite дерекқорына енгіземіз және іздеуді жылдамдату үшін индексті жасаймыз.

Мәліметтер қорындағы деректер осылай көрінеді:

Tinder орнына AirDrop-ті қалай қолданамын
Барлық ресейлік телефон нөмірлері және хэштің алғашқы үш байты

Әрі қарай, жәбірленушінің хэшіне ие бола отырып, біз дерекқордағы барлық сәйкестіктерді іздей аламыз. Әдетте әр хэште 15-30 сәйкестік бар.

Tinder орнына AirDrop-ті қалай қолданамын
Жәбірленушінің хэшіне сәйкес келетін барлық сандар

Бұл сандардың барлығы іс жүзінде қолданылмағаны анық. Біз HLR сұрауы немесе көрінбейтін SMS арқылы қажетсіздерді кесіп тастай аламыз. 30 нөмірдің 5-і желіден табылды.

Tinder орнына AirDrop-ті қалай қолданамын
HLR сұрауының нәтижесі. Желі нөмірлері жасыл түспен бөлектелген.

Мен сандарды қарап шығуды жалғастыра аламын, мысалы, олардың барлығын Telegram/Whatsapp-қа қосып, аватарларды қарап, Getcontact сияқты дерекқорларды тексере аламын және т.б. Бірақ барлық бес нөмірге бір-бірден қоңырау шалып, жәбірленушінің телефоны шырылдаған кезде қарау оңайырақ болды.

Tinder орнына AirDrop-ті қалай қолданамын
Мақсат орналасқан

Жоспар

  • Таңқурай pi-дегі су тасқыны өте тұрақсыз, басқа жалғыз тақталарды сынап көру керек.
  • iOS жүйесіне арналған жергілікті флодер әлдеқайда жақсырақ болар еді, бірақ мен iOS 12-13 жүйесінде тіпті джейлбрейкпен жұмыс істейтінін таба алмадым.
  • flooder.py сценарийі өте ақымақ. Ол алушының құрылғысының атынан атауды алып, iPhone сөзін қиып алу арқылы жеке суретті жасауы мүмкін.
  • Телефон нөмірін анықтау әдісін тек нөмірдің iMessage-ке қосылғанын тексеру арқылы оңтайландыруға болады. Бұл сізге 100% соққы көрсеткішін береді.

қорытынды

Бұл метро үшін тамаша ойын-сауық. Вау эффектісі бар, қызық адамдар бұған қызығушылық танытады. Импровизация көп болды, өте күлкілі жағдайлар болды. Көптеген адамдар сіздің метро станцияңыздан түсіп, кофе ішу үшін бірге ойнауға, тіпті жоспарларынан бас тартуға дайын екендігі белгілі болды. Жыл бойы көптеген адамдармен таныстым, кейбірімен араласуды жалғастырдым.

Кейде Telegram логинін өшіріп, көңіл көтеремін осылай.

Tinder орнына AirDrop-ті қалай қолданамын

Tinder орнына AirDrop-ті қалай қолданамын

Ақпарат көзі: www.habr.com

пікір қалдыру