你的跑步打卡真的是真实的吗?
字数 1292 2025-08-09 22:00:37

GPS轨迹伪造与跑步打卡欺骗技术详解

1. 技术背景与原理

1.1 技术背景

本技术最初源于无人机GPS欺骗(Drone Spoofing)项目的研究,通过软件无线电(SDR)发送虚假GPS信号实现位置欺骗。该技术可应用于跑步打卡软件的欺骗,解决iOS设备上传统位置伪造软件(fake location)效果不佳的问题。

1.2 跑步软件记录原理

跑步软件通常记录以下参数:

  • 位置和海拔:通过手机GPS模块获取
  • 步频:通过手机加速度传感器获取
  • 时间:使用系统时间或服务器时间

2. 所需硬件设备

  1. 计算机:用于运行相关软件
  2. HackRF One:软件无线电设备,需包含:
    • TCXO时钟模块
    • 天线
    • USB数据线
  3. Arduino Uno:控制舵机
  4. 智能手机:目标设备(如iPhone)
  5. 亚克力手机架:自制或购买,用于固定手机和舵机

3. 所需软件工具

  1. hackrf_tools:HackRF设备控制工具
  2. Google Earth:用于规划跑步路线
  3. SatGen Trajectory Generation:轨迹生成工具
  4. gps-sdr-sim:GPS信号模拟软件

4. 实施步骤详解

4.1 获取RINEX导航电文

  1. 访问NASA FTP服务器:ftp://cddis.gsfc.nasa.gov/pub/gps/data/daily
  2. 找到对应年份的文件夹
  3. 进入brdc子目录
  4. 下载对应年积日的导航电文文件(如brdc3660.16n.z)
  5. 解压得到.n格式的导航电文文件

4.2 生成跑步轨迹

  1. 使用Google Earth绘制跑步路线,导出为KML文件
  2. 使用SatGen Trajectory Generation软件:
    • 加载KML文件
    • 调整参数模拟真实跑步:
      • 速度变化
      • 总距离
      • 海拔变化
  3. 生成NMEA格式的轨迹文件

4.3 编译和配置gps-sdr-sim

  1. 克隆仓库:
    git clone https://github.com/osqzss/gps-sdr-sim.git
    cd gps-sdr-sim
    
  2. 修改gpssim.h中的USER_MOTION_SIZE值,增加40-70秒缓冲时间
  3. 编译:
    gcc gpssim.c -lm -O3 -o gps-sdr-sim
    

4.4 生成并发送GPS信号

  1. 生成二进制信号文件:
    ./gps-sdr-sim -e <导航电文文件> -g <轨迹文件> -b 8 -o gpssim.bin
    
  2. 使用HackRF发送信号:
    hackrf_transfer -t gpssim.bin -f 1575420000 -s 2600000 -a 1 -x 19 -R
    
    参数说明:
    • -f 1575420000:GPS L1频段频率(1575.42MHz)
    • -s 2600000:采样率
    • -a 1:启用增益
    • -x 19:增益值(0-25)

4.5 模拟步频传感器

  1. 搭建Arduino控制系统:
    #include <Servo.h>
    Servo myservo_1; // 下
    Servo myservo_2; // right 
    Servo myservo_3; // left
    int pos = 0;
    int potPin = A0;
    long val = 0;
    int angle_right = 68;
    int angle_left = 180;
    
    void setup() {
      Serial.begin(9600);
      pinMode(potPin,INPUT);
      myservo_1.attach(8);
      myservo_2.attach(9);
      myservo_3.attach(10);
      myservo_1.write(0);
      delay(600);
    }
    
    void loop() {
      val = analogRead(potPin);
      Serial.print(val);
      if (val>550){
        myservo_3.write(angle_left);
        delay(10);
        for (pos = 0; pos <= 180; pos++) {
          myservo_1.write(pos);
          delay(8);
          myservo_2.write(angle_right);
          delay(10);
          if(angle_right<85) angle_right++;
        }
        for (pos = 180; pos >= 0; pos--) {
          myservo_1.write(pos);
          delay(8);
          myservo_2.write(angle_right);
          delay(10);
          if(angle_right>75) angle_right--;
        }
      }
    }
    
  2. 将手机固定在舵机控制的摇摆架上

5. 技术限制与改进方向

5.1 现有技术限制

  1. 信号稳定性:无线传播存在不确定性,可能导致位置跳变
  2. 设备兼容性:对iPhone 11及以上版本可能不适用
  3. 环境要求:需要在GPS信号弱的室内环境操作

5.2 改进方向

  1. 开发GUI界面,提高易用性
  2. 优化信号生成算法,提高稳定性
  3. 研究新型手机GPS接收特性
  4. 开发更精确的步频模拟装置

6. 伦理声明

本技术文档仅用于教育和技术研究目的,旨在提高对位置欺骗技术的认识。实际使用此类技术伪造跑步记录可能违反相关平台的使用条款,并可能对个人健康产生负面影响。建议用户通过真实的运动来保持健康。

GPS轨迹伪造与跑步打卡欺骗技术详解 1. 技术背景与原理 1.1 技术背景 本技术最初源于无人机GPS欺骗(Drone Spoofing)项目的研究,通过软件无线电(SDR)发送虚假GPS信号实现位置欺骗。该技术可应用于跑步打卡软件的欺骗,解决iOS设备上传统位置伪造软件(fake location)效果不佳的问题。 1.2 跑步软件记录原理 跑步软件通常记录以下参数: 位置和海拔 :通过手机GPS模块获取 步频 :通过手机加速度传感器获取 时间 :使用系统时间或服务器时间 2. 所需硬件设备 计算机 :用于运行相关软件 HackRF One :软件无线电设备,需包含: TCXO时钟模块 天线 USB数据线 Arduino Uno :控制舵机 智能手机 :目标设备(如iPhone) 亚克力手机架 :自制或购买,用于固定手机和舵机 3. 所需软件工具 hackrf_ tools :HackRF设备控制工具 Google Earth :用于规划跑步路线 SatGen Trajectory Generation :轨迹生成工具 gps-sdr-sim :GPS信号模拟软件 4. 实施步骤详解 4.1 获取RINEX导航电文 访问NASA FTP服务器: ftp://cddis.gsfc.nasa.gov/pub/gps/data/daily 找到对应年份的文件夹 进入brdc子目录 下载对应年积日的导航电文文件(如 brdc3660.16n.z ) 解压得到 .n 格式的导航电文文件 4.2 生成跑步轨迹 使用Google Earth绘制跑步路线,导出为KML文件 使用SatGen Trajectory Generation软件: 加载KML文件 调整参数模拟真实跑步: 速度变化 总距离 海拔变化 生成NMEA格式的轨迹文件 4.3 编译和配置gps-sdr-sim 克隆仓库: 修改 gpssim.h 中的 USER_MOTION_SIZE 值,增加40-70秒缓冲时间 编译: 4.4 生成并发送GPS信号 生成二进制信号文件: 使用HackRF发送信号: 参数说明: -f 1575420000 :GPS L1频段频率(1575.42MHz) -s 2600000 :采样率 -a 1 :启用增益 -x 19 :增益值(0-25) 4.5 模拟步频传感器 搭建Arduino控制系统: 将手机固定在舵机控制的摇摆架上 5. 技术限制与改进方向 5.1 现有技术限制 信号稳定性 :无线传播存在不确定性,可能导致位置跳变 设备兼容性 :对iPhone 11及以上版本可能不适用 环境要求 :需要在GPS信号弱的室内环境操作 5.2 改进方向 开发GUI界面,提高易用性 优化信号生成算法,提高稳定性 研究新型手机GPS接收特性 开发更精确的步频模拟装置 6. 伦理声明 本技术文档仅用于教育和技术研究目的,旨在提高对位置欺骗技术的认识。实际使用此类技术伪造跑步记录可能违反相关平台的使用条款,并可能对个人健康产生负面影响。建议用户通过真实的运动来保持健康。