Поддельное расположение для устройства (кастом) - PullRequest
0 голосов
/ 22 мая 2010

Я знаю, что есть несколько приложений для фальсификации местоположения устройств, но в особенности я хочу использовать местоположение, извлеченное из URL.

В каком направлении следует искать настройки местоположения на устройстве.

У меня есть сценарий с джейлбрейкнутым Wi-Fi iPad, привязанным к нексусу.Nexus one будет размещать фоновую службу, которая при получении запроса будет отвечать данными gps своего текущего местоположения.У взломанного ipad будет фоновая служба, которая либо обновляет местоположение по временному интервалу, либо по каждому запросу (в зависимости от того, как я должен его реализовать), отправляя запрос в привязанную службу nexus one.Затем эти данные будут установлены на ipad, и приложение, запрашивающее местоположение, получит служебные данные.

Цель состоит в том, чтобы воссоздать функциональность приложения определения местоположения фейкера, за исключением подменного расположения, полученного из GPS-соединения Nexusуслуга, но я еще не узнал, как установить данные о местоположении для устройства.Я, конечно, могу реализовать это отдельно для каждого приложения, но было бы замечательно, чтобы любое приложение могло его использовать.

Ответы [ 3 ]

2 голосов
/ 01 июля 2010

Core Location представляет значительные проблемы конфиденциальности и личной безопасности. По этой причине будет очень трудно взломать или подделать даже взломанное устройство. Насколько мне известно, местоположение вычисляется каждый раз, когда делается запрос на местоположение (вот почему он разряжает батарею.) Нет файла или настройки, которые можно легко установить.

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

Лучшая ставка - увидеть, есть ли запущенный пользовательский процесс, который управляет местоположениями, а затем заменить весь этот процесс одним собственным, который не возвращает ничего, кроме поддельного местоположения.

Независимо от того, что вам в основном придется воссоздать весь интерфейс, который вызывает базовое расположение, чтобы гарантировать, что каждый вызов основного местоположения в каждом приложении работает. Вы смотрите на большое количество низкоуровневого C-кода в API без документации. Шансы сделать это правильно довольно низки.

1 голос
/ 22 мая 2010

Ну, способ получить местоположение на iPhone через CLLocationManager. Если вы хотите получить пользовательское расположение, просто создайте его подкласс и переопределите метод startUpdatingLocation на , а не , вызовите super, а затем просто вызовите метод делегата самостоятельно. Что-то вроде:

@interface CustomLocationManager : CLLocationManager {

}
@end

@implementation CustomLocationManager

- (void) startUpdatingLocation {
  [[self delegate] locationManager:self didUpdateToLocation:customLocation fromLocation:nil];
}

@end

Тогда вы можете сделать:

CLLocationManager * manager = [[CustomLocationManager alloc] init];
[manager setDelegate:self];
[manager startUpdatingToLocation];
0 голосов
/ 16 июля 2011
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * «Захватить ядро» или использовать локализованные кеши - лучший способ сделать это хотя я еще ничего не реализовал. это путь, по которому нужно идти.
...