Хакер - Как стать спутником. Спуфим GPS в 2023 году

Хакер - Как стать спутником. Спуфим GPS в 2023 году

hacker_frei

https://t.me/hacker_frei

qeewqq

Содержание статьи

  • Теория
  • GNSS
  • Частоты
  • Триангуляция и трилатерация
  • TTFF
  • Практика
  • Оборудование
  • GPS-SDR-SIM
  • iPhone
  • На что обратить внимание
  • Выводы

Каж­дый из нас поль­зует­ся спут­никовой навига­цией, что­бы доб­рать­ся куда угод­но за пре­дела­ми сво­его дво­ра. А что, если в один момент GPS перес­танет быть таким надеж­ным средс­твом опре­деле­ния локации? В этой статье я покажу работа­ющий спо­соб обма­нуть эту сис­тему.

WARNING

Не пов­торяй дей­ствия, опи­сан­ные в статье, вбли­зи аэро­пор­тов и дру­гих объ­ектов, которые силь­но зависят от геопо­зици­они­рова­ния! Работа в эфи­ре тре­бует спе­циаль­ного раз­решения и дол­жна про­водить­ся с соб­людени­ем мер пре­дос­торож­ности. Статья пуб­лику­ется исклю­читель­но в обра­зова­тель­ных целях, и ни автор, ни редак­ция «Хакера» не несут ответс­твен­ности за дей­ствия, совер­шенные с исполь­зовани­ем это­го матери­ала.

ТЕОРИЯ

GNSS

Global Navigation Satellite System (GNSS) поз­воля­ет поль­зовате­лям сис­темы опре­делить их мес­тополо­жение. GNSS пред­став­ляет собой сеть из раз­ных спут­никовых и назем­ных сис­тем. Самые извес­тные из них — аме­рикан­ский GPS и рос­сий­ский ГЛО­НАСС. Еще мож­но вспом­нить Galileo (стра­ны ЕС) и BeiDou (Китай), но они рас­простра­нены куда мень­ше.

Для опре­деле­ния мес­тополо­жения исполь­зуют­ся три основные груп­пы устрой­ств: кос­мичес­кие, поль­зователь­ские и дру­гие назем­ные (сег­мент кон­тро­ля).

Кос­мичес­кие устрой­ства — это, как ты догады­ваешь­ся, спут­ники. У каж­дой сис­темы — свои спут­ники, лета­ющие на раз­ных орби­тах. Спут­ники тран­сли­руют дан­ные на раз­ных час­тотах и в раз­ные про­межут­ки вре­мени, что­бы не мешать друг дру­гу.

На­зем­ные сис­темы отве­чают за син­хро­низа­цию вре­мени, пра­виль­ность информа­ции на спут­никах, кор­ректи­руют орби­ты и про­веря­ют клю­чевые фун­кции спут­ника — вдруг он сло­мает­ся?

Поль­зователь­ский сег­мент — это кли­ент­ские устрой­ства, которые опре­деля­ют свое мес­тополо­жение с исполь­зовани­ем GNSS. Самый прос­той при­мер — обыч­ный при­емник GNSS в тво­ем телефо­не.

Что­бы опре­делить мес­тополо­жение, любое конеч­ное устрой­ство дол­жно получить дан­ные со спут­ника и как‑то их обра­ботать. Про­цесс обра­бот­ки сиг­налов и опре­деле­ния мес­тополо­жения называ­ется три­ангу­ляци­ей (хотя есть и дру­гие методы).

Частоты

В зависи­мос­ти от кон­крет­ной спут­никовой сис­темы GNSS исполь­зует раз­ные час­тоты для переда­чи дан­ных. Про­бежим­ся по трем гиган­там, их час­тотам и наз­начению этих час­тот.

GNSS работа­ет на трех основных полосах: L1, L2 и L5. Все они появ­лялись пос­ледова­тель­но, как улуч­шенные вер­сии навига­цион­ной сис­темы. Называ­ется это все «L-диапа­зон», или диапа­зон децимет­ровых волн. Диапа­зон опи­сыва­ет час­тоты от 1 до 2 ГГц или от 1000 до 2000 МГц. На одной полосе может работать сра­зу нес­коль­ко навига­цион­ных сис­тем: к при­меру, в полосе L1 работа­ют одновре­мен­но GPS, ГЛО­НАСС и Galileo.

L1 — самая ста­рая полоса, которую исполь­зуют поч­ти все спут­никовые навига­цион­ные сис­темы. Пос­коль­ку она древ­няя, ее могут при­нять прак­тичес­ки все при­емни­ки. Единс­твен­ный минус — сиг­нал в этом диапа­зоне час­тот име­ет низ­кую спо­соб­ность оги­бать пре­пятс­твия и про­ходить сквозь них (сте­ны зда­ний, лис­тва деревь­ев или слиш­ком гус­тая облачность).

L2 появи­лась как замена L1. Сиг­нал в этой полосе луч­ше оги­бает пре­пятс­твия, ловить его мож­но даже в труд­нодос­тупных мес­тах. Эта полоса счи­тает­ся новой, так что обыч­но ее исполь­зуют заод­но с L1.

L5 — новей­шая тех­нология, исполь­зует­ся в основном для нужд ави­ации, хотя граж­дан­ские при­емни­ки тоже иног­да могут с ней работать.

Подробнее о полосах и частотах

GPS работа­ет во всех трех диапа­зонах, в то вре­мя как аль­тер­натив­ные навига­цион­ные сис­темы пока не заняли все дос­тупные час­тоты. В L1 про­жива­ют GPS (1575,42 МГц), ГЛО­НАСС (1602 МГц) и Galileo (1575,42 МГц). В L2 GPS работа­ет на час­тоте 1227,6 МГц, а ГЛО­НАСС — на 1246 МГц. В L5 есть Galileo (1207,14 МГц и 1176,45 МГц) и GPS (все­го одна час­тота — 1176,45 МГц).

Час­тоты для граж­дан­ско­го и воен­ного при­мене­ния раз­лича­ются, и в сегод­няшней статье мы будем рас­смат­ривать толь­ко граж­дан­ские вари­анты. Кро­ме того, сиг­нал для воен­ного исполь­зования куда более точ­ный, но он зашиф­рован во избе­жание исполь­зования нед­ружес­твен­ными арми­ями.

Наз­начения полос могут менять­ся в зависи­мос­ти от навига­цион­ной сис­темы.

Час­тоты и полосы, исполь­зуемые GNSS

Час­тоты, отме­чен­ные как ARNS, обыч­но исполь­зуют в ави­ации, тог­да как назем­ные при­емни­ки исполь­зуют час­тоты RNSS.

Триангуляция и трилатерация

Спут­ник не может отпра­вить тебе твое мес­тополо­жение, потому что мес­тополо­жение у каж­дого свое, а твое устрой­ство ничего наружу не переда­ет. То есть коор­динаты нуж­но вычис­лять непос­редс­твен­но на при­емни­ке, а для это­го сиг­нала одно­го спут­ника недос­таточ­но, так что при­ходит­ся ловить сра­зу нес­коль­ко (обыч­но хотя бы три‑четыре). Все они отправ­ляют тебе свои собс­твен­ные коор­динаты и вре­мя. Уже из этих дан­ных по прос­тым фор­мулам мож­но опре­делить мес­тополо­жение. Для поис­ка коор­динат исполь­зуют­ся два основных спо­соба: три­ангу­ляция и три­лате­рация.

Три­ангу­ляция — это опре­деле­ние мес­тополо­жения точ­ки по трем ори­енти­рам. Ори­енти­рами в этом слу­чае выс­тупа­ют спут­ники, но, так как кос­мичес­кие аппа­раты лета­ют на высоте око­ло 20 тысяч километ­ров, исполь­зовать такой метод весь­ма слож­но из‑за необ­ходимос­ти очень точ­но знать рас­сто­яние до каж­дого из спут­ников. Что­бы облегчить про­цесс, исполь­зует­ся три­лате­рация.

Три­лате­рация — это метод опре­деле­ния коор­динат точ­ки, который исполь­зует сис­тему сфер.

Три­лате­рация

Рас­сто­яние до спут­ников мож­но опре­делить по вре­мени про­хож­дения сиг­нала от спут­ника до при­емни­ка, умно­жен­ному на ско­рость све­та, но для это­го нуж­но знать точ­ное вре­мя, в которое сиг­нал был отправ­лен.

Простой способ определить координаты

На прак­тике, если у тебя есть, нап­ример, мик­рокон­трол­лер, не нуж­но самос­тоятель­но решать эту гор­ку линей­ной алгебры, что­бы прос­то получить свои коор­динаты. Все это с успе­хом дела­ют де­шевые GNSS-при­емни­ки, которые вып­люнут тебе коор­динаты и источник их получе­ния (из какой имен­но спут­никовой сис­темы) в фор­мате NMEA.

GPS-при­емник

NMEA — это стан­дарти­зиро­ван­ный фор­мат для переда­чи дан­ных GNSS. То есть если ты захочешь сде­лать устрой­ство, которое будет работать с GNSS, то нуж­но будет работать с фор­матом NMEA, а не искать докумен­тацию к фор­мату каж­дой спут­никовой сис­темы.

Что­бы получить эти дан­ные, мож­но под­клю­чить­ся к при­емни­ку по USB или UART. У меня рас­паян толь­ко UART, так что я соору­дил мост из Auduino и вышел на ули­цу, что­бы соб­рать дан­ные.

Ес­ли исполь­зовать готовый при­емник GNSS, то на его выходе мож­но уви­деть при­мер­но сле­дующую кар­тину:

$GPRMC,102668.00,A,2565.63860,N,05723.41802,E,44.621,122.82,301122,,,A*54

$GPVTG,122.82,T,,M,44.621,N,82.638,K,A*34

$GPGGA,102669.00,2995.64530,N,05723.40668,E,1,04,2.16,19.7,M,-26.4,M,,*48

$GPGSA,A,3,07,09,04,14,,,,,,,,,6.09,2.16,5.70*05

$GPGSV,2,1,05,04,43,108,34,07,53,338,35,09,73,051,37,14,33,217,28*7B

$GPGSV,2,2,05,16,04,038,*44

$GPGLL,2585.64930,N,05123.40668,E,102608.00,A,A*6E

$GPRMC,107129.00,A,2565.63860,N,05723.41802,E,47.084,123.07,301122,,,A*5C

Это сооб­щения в фор­мате NMEA, то есть уже обра­ботан­ные GNSS-при­емни­ком дан­ные со спут­ника. Выг­лядит не сов­сем понят­но, но на самом деле получить из это­го наши коор­динаты доволь­но прос­то.

Раз­берем для при­мера пер­вое сооб­щение:

$GPRMC,102668.00,A,2565.63860,N,05723.41802,E,44.621,122.82,301122,,,A*54

Как ты уже заметил, каж­дое сооб­щение начина­ется со зна­ка дол­лара, за которым сле­дуют пять букв и запятая. Этот заголо­вок ука­зыва­ет тип дан­ных в сооб­щении. Пер­вые две бук­вы (в нашем слу­чае GP) ука­зыва­ют на сис­тему GNSS, из которой получе­на информа­ция. Наше GP озна­чает GPS. Ты можешь встре­тить и дру­гие спут­никовые сис­темы — вот спи­сок воз­можных отве­тов:

  • GP — толь­ко GPS;
  • GL — толь­ко ГЛО­НАСС;
  • BD — толь­ко BeiDou;
  • GA — толь­ко Galileo;
  • GN — исполь­зовано одновре­мен­но нес­коль­ко сис­тем.

Сле­дующие три бук­вы озна­чают тип дан­ных, нап­ример RMC (Recommended Minimum Specific GNSS Data) — минималь­ные рекомен­дуемые дан­ные о мес­тополо­жении и вре­мени. Коор­динаты содер­жатся в сооб­щени­ях RMC, GLL и GGA.

Опус­тим все поля, кро­ме коор­динат (опи­сание про­пущен­ных полей мож­но почитать в до­кумен­тации NMEA). 2565.63860,N — это широта в фор­мате DDMM.MMMMM, где N озна­чает север­ное полуша­рие, а 05723.41802,E — это дол­гота в фор­мате DDDMM.MMMMM, где E озна­чает вос­точное полуша­рие. То есть коор­динаты нашей тес­товой точ­ки — 25 гра­дусов 65,63860 минуты север­ной широты и 57 гра­дусов 23,41802 минуты вос­точной дол­готы.

Что­бы пос­мотреть эту точ­ку на кар­тах в интерне­те, нуж­но пре­обра­зовать GPS-коор­динаты в десятич­ные гра­дусы. Для это­го мож­но вос­поль­зовать­ся он­лай­новым каль­кулято­ром.

TTFF

TTFF — time to first fix, или вре­мя для опре­деле­ния мес­тополо­жения. Это вре­мя, которое нуж­но устрой­ству, что­бы соб­рать дан­ные и опре­делить мес­тополо­жение. Для спу­фин­га этот параметр очень важен.

Ес­ли устрой­ство не име­ет никаких дан­ных о спут­никах, про­цесс может занимать до две­над­цати минут, но обыч­но тре­бует все­го две‑три минуты.

ПРАКТИКА

Гай­дов по спу­фин­гу GPS в сети хва­тает, но у них есть одна общая чер­та: в 2023 году они не работа­ют (у меня так точ­но). Мно­гие телефо­ны сей­час уме­ют опре­делять мес­тополо­жение не толь­ко по спут­никам — для это­го исполь­зуют­ся Wi-Fi и Bluetooth. Сотовые выш­ки тоже могут учас­тво­вать в про­цес­се. Для начала мы поп­робу­ем под­менить GPS на смар­тфо­не с Android и пос­мотрим, какие труд­ности могут воз­никнуть при под­мене. 

Оборудование

В сво­ем экспе­римен­те я исполь­зую:

  • bladeRF 2.0 Micro Xa4 в качес­тве передат­чика;
  • HackRF One в качес­тве при­емни­ка и передат­чика;
  • ан­тенну RFSPACE;
  • Mi A2.
BladeRF
HackRF one
RFSPACE
Mi A2

GPS-SDR-SIM

GPS-SDR-SIM поз­воля­ет сге­нери­ровать дан­ные для любой локации или тра­екто­рии. Для это­го нуж­но ска­чать таб­лицу эфе­мерид (коор­динат спут­ников для опре­делен­ного вре­мени) и ука­зать локацию.

WWW

GPS-SDR-SIM — один из самых популяр­ных и уж точ­но самый извес­тный инс­тру­мент для под­мены GPS-дан­ных. На момент пуб­ликации репози­торий нас­читыва­ет уже боль­ше 2000 звезд и регуляр­но обновля­ется.

Итак, сна­чала ска­чаем исходни­ки и соберем прог­рамму:

git clone https://github.com/Nuand/gps-sdr-sim

cd gps-sdr-sim

gcc gpssim.c -lm -O3 -o gps-sdr-sim

Под­клю­чим bladeRF и сге­нери­руем файл:

./gps-sdr-sim -e hour3060.22n -l 21.296965,-157.815687,100 -b 16 -o gpssim.bin -t $(date -u +%Y/%m/%d,+%X)

WWW

Дан­ные о спут­никах мож­но ска­чать с сай­та NASA. Тут пре­дос­тавле­ны дан­ные за каж­дый час, что поз­волит избе­жать ошиб­ки со вре­менем — она есть поч­ти во всех гай­дах, которые я смог най­ти.

Па­раметр -t отве­чает за вре­мя, которое будут переда­вать «спут­ники». Этот параметр очень важен, так как новые телефо­ны не работа­ют с дан­ными, которые отста­ют по вре­мени все­го на два‑три часа.

Using static location mode.

Start time = 2022/11/02,07:21:33 (2234:285693)

Duration = 300.0 [sec]

02 180.0 25.6 22759545.5 6.5

06 54.7 20.9 23631267.8 5.3

11 90.0 38.3 22154769.5 4.3

12 355.4 46.2 21368898.6 4.0

13 163.0 4.3 25471171.1 10.3

15 186.1 19.4 24115672.2 7.7

19 38.7 3.5 25179568.2 5.6

20 119.8 1.4 25729982.2 7.7

24 102.8 78.9 20375053.9 3.1

25 312.8 32.9 22268020.3 5.5

29 231.8 37.9 22208289.9 5.3

32 306.8 14.9 24242464.5 8.5

Time into run = 300.0

Done!

Process time = 46.2 [sec]

Не сто­ит боять­ся ошиб­ки Invalid Start Time: она зна­чит, что NASA еще не обно­вило дан­ные на сай­те. Нуж­но нем­ного подож­дать, ска­чать новый файл и пов­торить генера­цию.

Ког­да файл будет готов, ска­чива­ем на наше тес­товое устрой­ство при­ложе­ние для монито­рин­га GPS под наз­вани­ем GPS Test, запус­каем его и вклю­чаем переда­чу на компь­юте­ре:

lll@lll ~/s/gps-sdr-sim (master)> bladeRF-cli -i

bladeRF> set frequency 1575.42M

For best results, it is not recommended to set both RX and TX to the

same frequency. Instead, consider offsetting them by at least 1 MHz

and mixing digitally.

For the above reason, 'set frequency ' is deprecated and

scheduled for removal in future bladeRF-cli versions.

Please use 'set frequency rx' and 'set frequency tx' to configure

channels individually.

RX1 Frequency: 1575419998 Hz (Range: [70000000, 6000000000])

RX2 Frequency: 1575419998 Hz (Range: [70000000, 6000000000])

TX1 Frequency: 1575419998 Hz (Range: [47000000, 6000000000])

TX2 Frequency: 1575419998 Hz (Range: [47000000, 6000000000])

bladeRF> set samplerate 2.6M

Setting RX1 sample rate - req: 2600000 0/1Hz, actual: 2600000 0/1Hz

Setting RX2 sample rate - req: 2600000 0/1Hz, actual: 2600000 0/1Hz

Setting TX1 sample rate - req: 2600000 0/1Hz, actual: 2600000 0/1Hz

Setting TX2 sample rate - req: 2600000 0/1Hz, actual: 2600000 0/1Hz

bladeRF> set bandwidth 2.5M

RX1 Bandwidth: 2500000 Hz (Range: [200000, 56000000])

RX2 Bandwidth: 2500000 Hz (Range: [200000, 56000000])

TX1 Bandwidth: 2500000 Hz (Range: [200000, 56000000])

TX2 Bandwidth: 2500000 Hz (Range: [200000, 56000000])

bladeRF> set gain tx 56

Setting TX1 overall gain to 56 dB

Gain TX1 overall: 56 dB (Range: [-23.75, 66])

dsa: -90 dB (Range: [-89.75, 0])

bladeRF> tx config file=/home/lll/soft/gps-sdr-sim/gpssim.bin format=bin

bladeRF> tx start

bladeRF> tx wait

На экра­не смар­тфо­на отоб­разят­ся спут­ники с хорошим уров­нем сиг­нала.

Тем не менее мы получи­ли No Fix — ста­тус сис­темы, при котором она не может опре­делить свое мес­тополо­жение. Зеленые линии — это «спут­ники» (которые в нашем слу­чае под­деланы bladeRF). Вид­но, что сис­тема работа­ет и спут­ники видит, но опре­делять мес­тополо­жение телефон отка­зыва­ется. Иног­да устрой­ству нуж­но вре­мя, что­бы при­нять дан­ные и исполь­зовать их (TTFF), так что для чис­тоты экспе­римен­та я перезаг­рузил телефон и вклю­чил переда­чу на пять минут. Резуль­тата не пос­ледова­ло — телефон все так же игно­риро­вал наши «липовые» спут­ники.

Так как мой файл с коор­дината­ми был тоже прос­рочен, я нем­ного отмо­тал вре­мя на телефо­не назад и сдви­нул локацию на один километр от моей реаль­ной локации. Почему все­го на километр? Судя по моим тес­там, если рез­ко сме­нить коор­динаты на боль­шое рас­сто­яние, телефон может отбра­сывать такие дан­ные как неп­равдо­подоб­ные, так что нуж­но менять под­дель­ную локацию пос­тепен­но:

lll@lll ~/s/gps-sdr-sim (master)> ./gps-sdr-sim -e brdc2022_3060.22n -d 1000 -l 51.296965,124.815687,100 -b 16 -o gpssim.bin -t 2022/11/02,08:00:00

Using static location mode.

Start time = 2022/11/02,08:00:00 (2234:288000)

Duration = 1000.0 [sec]

02 174.0 43.6 21497540.2 3.6

05 140.4 4.3 25351515.3 6.8

06 41.5 11.5 24590008.1 4.2

11 66.9 36.4 22296887.8 3.3

12 20.6 45.8 21422074.0 3.1

15 176.8 7.9 25304780.7 8.2

18 198.6 4.3 25335825.2 10.3

20 104.6 6.7 25172344.8 4.8

22 314.6 4.6 25557500.2 8.9

24 146.6 63.7 20898055.3 2.7

25 332.2 40.0 21745559.7 3.7

29 253.1 49.9 21398805.8 3.4

32 290.3 19.4 23734754.8 6.5

Time into run = 1000.0

Done!

Process time = 142.4 [sec]

Сно­ва запус­каем переда­чу и смот­рим резуль­тат.

Ста­тус отоб­ража­ется как 3D Fix — локация опре­деле­на! Вре­мя со «спут­ников» 12:00, что нем­ного отста­ет от часов телефо­на, но в пре­делах нор­мы. Вре­мя жиз­ни дан­ных со спут­ников может сос­тавлять от трид­цати минут до четырех часов, в зависи­мос­ти от устрой­ства. Реаль­ное вре­мя смар­тфо­на (в вер­хнем левом углу) 12:34, а пог­решность в трид­цать четыре минуты счи­тает­ся нор­мой, в слу­чаях, если недос­тупны дру­гие спут­ники. 

IPHONE

Та же ситу­ация и на iPhone, локация под­меня­ется без осо­бых проб­лем. Давай высадим­ся в Пер­сид­ском заливе!

Го­тово! Это новый телефон, который никог­да рань­ше не видел сиг­нала GPS, так что он доволь­но быс­тро под­хва­тил фей­ковую локацию. Wi-Fi и под­клю­чение к сети сотовой свя­зи не помог­ли телефо­ну понять, что коор­динаты — под­делка. 

НА ЧТО ОБРАТИТЬ ВНИМАНИЕ

Вот нес­коль­ко прос­тых пра­вил, которых сто­ит при­дер­живать­ся при спу­фин­ге GPS:

  1. Сле­ди за дан­ными, которые берешь с сай­та NASA, — они час­то обновля­ются.
  2. Сле­ди за вре­менем, которое «спут­ники» отправ­ляют на устрой­ство: некото­рые девай­сы не работа­ют со слиш­ком уста­рев­шими дан­ными.
  3. Дай устрой­ству вре­мя для «сох­ранения» фей­ковых спут­ников.
  4. Не меняй локацию сра­зу на далекую — такие неп­равдо­подоб­ные зна­чения будут про­игно­риро­ваны, а потом пот­ребу­ется нам­ного боль­ше вре­мени на обра­бот­ку нор­маль­ных сиг­налов.
  5. Об­рати вни­мание на Wi-Fi и сотовую связь: иног­да они могут исполь­зовать­ся для опре­деле­ния локации, но на «чис­тых» устрой­ствах даже они не помогут.
  6. Ис­поль­зуй пра­виль­ную антенну.
  7. Ес­ли исполь­зуешь HackRF, про­верь, есть ли у тебя внеш­ний квар­цевый резона­тор, ина­че вре­мя будет пла­вать.

При­веду еще нес­коль­ко моих наб­людений и пред­положе­ний:

  • В раз­ных час­тях Зем­ли работа­ют раз­ные спут­ники, так что, если под­менить толь­ко спут­ники, которые чаще все­го встре­чают­ся в текущей локации, шанс на успех будет боль­ше.
  • Не­кото­рые кар­ты исполь­зуют сто­рон­ние источни­ки для опре­деле­ния локации. Дан­ные с Apple Maps и Google Maps иног­да отли­чают­ся. У Google локация была точ­нее.
  • Очис­тка ста­рых дан­ных GPS поможет обма­нуть прак­тичес­ки любое устрой­ство.
  • Шан­сы повыша­ет уста­нов­ка мак­сималь­но близ­кого к реаль­нос­ти вре­мени (в дан­ных с сай­та NASA), и, если это не помога­ет, мож­но дать устрой­ству нес­коль­ко минут (до десяти‑пят­надца­ти), что­бы обра­ботать новые дан­ные. На новом устрой­стве это ожи­дание пот­ребу­ется поч­ти навер­няка. 

ВЫВОДЫ

Нес­мотря на то что про­изво­дите­ли устрой­ств пред­при­нима­ют раз­ные шаги для того, что­бы пре­дот­вра­тить спу­финг, он при опре­делен­ных усло­виях все же воз­можен. И чем боль­ше на све­те авто­ном­ных устрой­ств, тем боль­шей проб­лемой это может стать. Одно дело — разыг­рать при­яте­ля, «отпра­вив» его телефон в Сенегал, дру­гое — ког­да кто‑то зас­тавит «Тес­лу» с авто­пило­том свер­нуть не туда.

Читайте ещё больше платных статей бесплатно: https://t.me/hacker_frei



Report Page