На сказочном Бали выпал снег или как же легко обмануть GPS.

На сказочном Бали выпал снег или как же легко обмануть GPS. Gps-спуфинг, Сказочноебали, Длиннопост, Habr
Для запуска своей системы глобального позиционирования раньше нам потребовалась бы орбитальная группировка спутников, наземные станции и т.д. Теперь всё проще.

Нам необходимо:



1. Компьютер с операционной системой типа Виндуз или Линукс и, желательно, с портом USB 3.0. На порту 2.0 я не тестировал, но должно заработать.

2. Плата USRP b210 (возможны и другие варианты).

3. Сгенерированный файл с сигналом, либо программа для его генерации GPS-SDR-SIM от проф. Эбинумы.

Блог профессора (немного не по-русски)

Исходники симулятора

Порядок установки



Для запуска всего этого добра на компьютер надо неторопясь и аккуратно установить от производителя платы набор софта. Хотя, может, это и не обязательно. Но пусть будет. При установке под виндуз оно иногда жалуется, что не может добавить себя в PATH, но это не мешает, так как из всего этого добра мне понадобилась только утилитка uhd_find_devices.exe, которая позволила понять, увидела ли вообще система эту плату. Найти утилиту можно по адресу:



C:/UHD/bin/uhd_find_devices.exe



Затем втыкаем плату и открываем диспетчер устройств. Где можно обнаружить, что драйверов под устройство автоматом не установилось. Что же – бывает. Вручную с помощью программки zadig указываем системе, что под плату надо использовать драйвера libusb, т.е. winusb.


После того, как система подцепила стандартный драйвер, можно запустить uhd_find_devices из набора софта от производителя платы. Эта утилита должна найти плату и прошить её контроллер (там стоит FX3 от Cypress). Кажется, после этого устройство изменит свой PID и надо будет рассказывать системе (с помощью zadig), что и под это устройство можно использовать стандартные драйвера winusb.


Конечно же оно с первого раза не заработает. И конечно же это можно вылечить путем отсоединения платы и подсоединения обратно. Вот подробная инструкция.


Необходимо установить гнурадио, которое внутри себя содержит пайтон-питон. Я взял отсюда последнюю версию под AVX2 процессоры.


Мне было лень настраивать правильным образом окружение, поэтому я воспользовался скриптом, входящим в комплект: C:/GNURadio-3.7/bin/run_gr.bat


Через него я буду запускать скрипт для посылки сгенерированного файла в плату b210.


Для удобства путь до этого скрипта надо добавить в переменную окружения PATH.

Генерация сигнала



Исходники берем тут. Что приятно удивило, так это легкость и простота сборки. Никаких зависимостей, никаких дополнительных действий. Все бы так.



Сборка под линукс


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

Сборка под виндуз


1 Start Visual Studio. Запустить студию (я использовал 2015)


2 Create an empty project for a console application. Создать пустой консольный проект. Именно пустой!


3 On the Solution Explorer at right, add "gpssim.c" and "getopt.c" to the Souce Files folder. Добавить два сишных файла в проект.


4 Select "Release" in Solution Configurations drop-down list. Изменить тип сборки на релизный, выбрать архитектуру x86 / amd64.


5 Build the solution. Собственно, собрать.


Я под линукс не собирал, т.к. была необходимость запустить всё на конкретной машине, а на ней стояла десятка.


Подробное описание параметров генератора есть в ридми. Для начала можно не разбираться, а сделать очень просто, сгенерировать сигнал таким образом:

gps-sdr-sim.exe -e brdc3540.14n -s 2500000 -l 30.286502,120.032669,100 -b 8 -d 300 -v -o sim.bin


gps-sdr-sim.exe — это файл, который вы собрали студией.

brdc3540.14n — это файл с эфемеридами спутников.

2500000 — это частота дискретизации

30.286502,120.032669 — координаты

100 — высота

8 — это разрядность чисел в выходном файле (один отсчет — это IQ, два числа).

300 — это длительность в секундах.

-v — это чтобы побольше писало в лог

sim.bin — имя выходного файла.

Вы можете взять строчку из ридми, но она сгенерирует сигнал с ЧД=2,6 МГц, тогда и b210 надо будет настраивать на ту же ЧД (частота дискретизации). Если сгенерировать с одной частотой, а на плату выдавать с другой, то, конечно же, ничего не заработает.



Сигнал на плату я подавал с помощью такой команды:


run_gr.bat gps-sdr-sim-uhd.py -t sim.bin -s 2500000 -x 40

40 — это уровень. 2500000 — это ЧД. Подробное описание настроек можно увидеть в файле gps-sdr-sim-uhd.py, он очень прост для понимания.


Для b210 значение ЧД должно нацело делить частоту внутреннего генератора, а он там, кажется 40 МГц.

Запуск
На сказочном Бали выпал снег или как же легко обмануть GPS. Gps-спуфинг, Сказочноебали, Длиннопост, Habr

А теперь самое интересное.



Отключаем плату.


Подключаем плату.


Запускаем uhd_find_devices


Если не определилось, то goto 1.


Запускаем transmit.bat, следим за логом.


В определенный момент на плате загорится второй диод, что будет означать, что всё уже начало излучаться.

Если в логах постоянно выводится буква U, значит, ваша система не успевает подсовывать данные в плату. Вам стоит проверить, не работает ли что-то на фоне и не указали ли вы очень высокую ЧД.



Через некоторое время (до 3 минут) все устройства начнут определять местоположение как заданное вами. Но перед этим они внезапно потеряют текущее положение.

На сказочном Бали выпал снег или как же легко обмануть GPS. Gps-спуфинг, Сказочноебали, Длиннопост, Habr
Внимательно прочитав инструкцию к программе проф. Эбинумы можно понять, как сгенерировать файл с изменяющимся местоположением, как использовать другие даты и прочее.

З.Ы. Не все приемники подвержены влиянию имитационной помехи. Некоторые имеют защиту. Данный прием можно использовать как для развлечения так и во вред. К примеру координаты шавермы подменить на свои и всё, все девушки ваши.

Информационная безопасность IT

1.4K постов25.5K подписчиков

Добавить пост

Правила сообщества

Обязательно к прочтению для авторов:

1. Если вы добавляете пост, утверждающий об утечке данных или наличии дыр в системе, предоставьте ссылку на источники или технически подкованное расследование. Посты из разряда "Какой-то банк слил данные, потому что мне звонили мошенники" будут выноситься в общую ленту.
2. Все вопросы "Как обезопасить сервер\приложение\устройство" - в лигу "Компьютер это просто".

Обязательно к прочтению для всех:

Добавление ссылки разрешено если она не содержит описание коммерческих (платных) продуктов и/или идентификаторов для отслеживания перехода и для доступа не нужен пароль или оплата в т.ч. интернет-ресурсы, каналы (от 3-х тематических видео), блоги, группы, сообщества, СМИ и т.д.


Запрещены политические holy wars.

По решению модератора или администратора сообщества пользователь будет забанен за:

1. Флуд и оскорбление пользователя, в т.ч. провокация спора, флуда, холивара (высказывание без аргументации о конкретной применимости конкретного решения в конкретной ситуации), требование уже данного ответа, распространение сведений порочащих честь и репутацию, принижающих квалификацию оппонента, переходы на личности.

2. Публикацию поста/комментария не соответствующего тематике сообщества, в том числе обсуждение администраторов и модераторов сообщества, для этого есть специальное сообщество.

3. За обвинение в киберпреступной деятельности.

4. За нарушение прочих Правил Пикабу.

8
Автор поста оценил этот комментарий

Честно не представляю зачем это может понадобиться ) Но если очень надо, под андроидом GPS положение меняется через системные настройки и включение режима дебага )

раскрыть ветку
4
Автор поста оценил этот комментарий

Как то очень сложно. Я ложные GPS данные в мобильное приложение через Nox передавал, выглядит как обычная виртуалка на компе, чем она по сути и есть.
Хотя, если вы под домашним арестом, а погулять очень хочется, то наверное для обмана браслета метод в самый раз

1
Автор поста оценил этот комментарий

ТС, если ты еще живой, ответь, за год платок дешевле хакрф не появилось ?

Автор поста оценил этот комментарий

@moderator, в теги добавить "habrahabr"

DELETED
Автор поста оценил этот комментарий
Вы почитайте как работает GPS, там "одна палка, два гвоздя".