专栏首页FreeBuf实现低成本接收解码韩国GK-2A气象卫星信号

实现低成本接收解码韩国GK-2A气象卫星信号

0x00 前言

这几年玩了很多种 SDR 开发板,春节封路,在家闲着没事,也在尝试着玩各种天线,分析解码不同协议的无线信号,以此打发时间。

上学的时候,玩过一段时间的电视卫星(中六、亚太五),介于气象卫星和电视卫星存在一些相通性,便在近期开始尝试接收、解码气象卫星信号。

国家级卫星地面站往往占地十几公顷,投入数千万进行建设、安装、调试。作为火腿一枚通信爱好者来说,往往很难拿出这么多钱烧这个爱好。这个时候软件无线电低成本的优势就凸显了出来。我们可以通过现有的SDR 硬件加上DIY 制作特定的天线,便可以花费几百上千块钱实现接收、解码气象卫星的信号。

老挝万象卫星地面站

武汉大学诗琳通地球空间信息科学国际研究中心THEOS遥感卫星地面站

在韩国国家气象卫星官网(NMSC)可以查到很多GEO-KOMPSAT-2A卫星(简称GK-2A)的详细资料,包括射频参数 。

GK-2A部分参数:

传输示意图:

0x01 硬件:

前期相关资料、参数的收集整理基本上都可以通过上面的方法来完成,后面我们则考虑怎么接收、解码卫星的信号。

接收、解码这一步必不可少的是天线、SDR 硬件、SDR 软件。另外,因为气象卫星在很高很远的地方,当信号通过无线传输到地面的时候其信号强度往往已经微乎其微,所以我们需要通过低噪音放大器(low-noise amplifier 简称 LNA) 将信号放大,以便电脑识别、处理。

在这里用到了:

SDR:RTL-SDR v3 、Airspy Mini LNA:Nooelec’s SAMbird+GOES 2.4GHz网格天线 + 买投影or买相机送的三脚支架

天线是从淘宝买的 2.4Ghz放大WiFi 信号的接收设备,虽然频率是 2.4Ghz,但是国内外很多火腿用这款天线接收1.7Ghz 左右的卫星信号。

花了半天时间拆快递、组装天线,装完后:

上面的图是室内,在室外接收的时候需要调整天线,修正垂直、水平极化方式:

SDR+LNA特写:

0x02 Windows

安装 GNURadio

wget http://www.gcndevelopment.com/gnuradio/downloads/installers/v1.6.0/gnuradio_3.7.13.5_win64.msi

安装 Python3.7

wget https://www.python.org/ftp/python/3.7.5/python-3.7.5-amd64.exe

安装依赖库

pip install pycryptodome
pip install jdcal

启动 GNURadio 执行LRIT Demod.grc流图:

运行xritdecoder.exe、运行UDP-bridge.bat、运行xrit-rx.bat:

@usa_satcom 有写一些气象卫星解码用的软件,如 XRIT_Decoder 、XHRPT decoder ,本来打算找作者购买软件授权 License key,结果被告知软件不向中国用户提供购买服务… 这里猜测应该是之前有国内用户试用他的软件,在 30 天试用期内破解了作者的软件然后在网上宣传,最后导致作者拒绝向国内用户提供软件下载和购买使用。后面改用 Linux 进行解码。

0x03 Linux Ubuntu 16.04

安装依赖:

sudo apt-get install -y \  build-essential \
  cmake \
  git-core \
  libopencv-dev \
  zlib1g-dev

安装RTL-SDR驱动:

git clone https://github.com/osmocom/rtl-sdr.gitcd rtl-sdrmkdir buildcd buildcmake ../ -DINSTALL_UDEV_RULES=ONmake -j8sudo make installsudo ldconfigcd ../..

安装AirSpy驱动:

git clone https://github.com/airspy/airspyone_hostcd airspyone_hostmkdir buildcd buildcmake ../ -DINSTALL_UDEV_RULES=ONmake -j8sudo make installsudo ldconfigcd ../..

安装GOES Tool:

git clone --recursive https://github.com/sam210723/goestoolscd goestoolsmkdir buildcd buildcmake ../ -DCMAKE_INSTALL_PREFIX=/usr/localmake -j8sudo make installcd ../..

安装XRIT-RX:

git clone https://github.com/sam210723/xrit-rxcd xrit-rxpip3 install pycryptodome
pip3 install Pillow==5.0.0

启动monitor:

goesrecv -i 1 -c goestools/etc/goesrecv.conf
python3 xrit-rx.py

校准天线:

打开 gqrx,将频点设为卫星中心频率,如天线以对准卫星,瀑布图上可以看到很明显的信号,北京地区将天线对准大概东南方向的位置即可。

信号成功接收

接了LNA和没接LNA的对比

GK-2A在 1692.14MHz每隔十分钟向地面传输一次图像,比如16:00:20 开始第一次传输,到 16:04:00 传输完成,下次将在 16:10:20 至 16:14:00 左右传输第二次。

接收到的加密文件将存在XRIT-RX/received/LRIT/$年月日/目录中,如:

IMGFD_049_IR105_20200123_082006_01.lrit-IMG_FD_049_IR10520200123_082006_10.lrit:

FD 目录为卫星拍摄的Full Disk全盘图像

10 个FD目录中的 lrit 文件可解出一张 JPG 图片,在 tools 目录中有用于解码的 lrit-img.py脚本:

python3 lrit-img.py Path of FD

通过Python脚本可对图像红外增强成像:

当解码出足够多图像文件,通过合成,可将图片转成GIF动图:

网盘: https://mega.nz/#F!UMEV1IjQ!7DYoheHZCTJuInIiptlNgw YouTube: https://www.youtube.com/watch?v=xdeXO2BGqvM

0x04 参考资料&感谢

https://github.com/opensatelliteproject/OpenSatelliteProject https://pietern.github.io/goestools/guides/minimal_receiver.html https://usa-satcom.com/wp-content/uploads/2018/12/GEOS-16_Receiver_Project-12022018.pdf https://www.teske.net.br/lucas/2016/10/goes-satellite-hunt-part-1-antenna-system/ https://www.teske.net.br/lucas/2016/10/goes-satellite-hunt-part-2-demodulator/ https://www.teske.net.br/lucas/2016/11/goes-satellite-hunt-part-3-frame-decoder/ https://github.com/opensatelliteproject/OpenSatelliteProject https://github.com/sam210723/goestools https://github.com/sam210723/xrit-rx https://www.rtl-sdr.com/rtl-sdr-com-goes-16-17-and-gk-2a-weather-satellite-reception-comprehensive-tutorial/ https://medium.com/@luigifcruz/reverse-engineering-goes-16-cda-telemetry-b0234cdfb0c1 http://monitor-post.blogspot.com/2019/09/ https://luigifreitas.me/2018-02-12/reverse-engineering-goes-cda-telemetry http://www.prutchi.com/2019/07/11/receiving-emwin-and-hrit-services-from-goes-16-with-xrit/ http://www.virtuallab.bom.gov.au/files/7314/9880/1019/201705_current_status_of_GK-2A.pdf https://directory.eoportal.org/web/eoportal/satellite-missions/g/geo-kompsat-2

*本文原创作者:吃葡萄不吐葡萄皮的雪碧,本文属于FreeBuf原创奖励计划,未经许可禁止转载

本文分享自微信公众号 - FreeBuf(freebuf),作者:雪碧

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 安全从业人员常用工具指引

    简介 一直以来嫌麻烦没注册freebuf,总是以游客的身份在看一些东西,今天特此注册了一下,首先要表扬一下freebuf,安全验证比较给力,其次感谢平台收集并整...

    FB客服
  • 适用于渗透测试不同阶段的工具收集整理

    该资源清单列表涵盖了一系列,适用于渗透测试不同阶段的开源/商业工具。如果你想为此列表添加贡献,欢迎你向我发送pull request。

    FB客服
  • 看我如何窃取Messenger.com用户登录认证随机数并获得15000美元漏洞赏金

    www.messenger.com是Facebook旗下即时通讯软件Messenger官网,该网站中添加了基于随机数认证( nonce based login ...

    FB客服
  • Windows日志查看工具合集

    希望可以和大家多多交流。 平时在Linux下查看日志,使用tail、grep、find等命令还比较方便,后来需要在Windows中处理一些问题,发现缺少类似的功...

    用户1221057
  • 对编程非常有用的资源分享(工具+电子书)

    独特且强悍的JavaScript 算法,能极速压缩 80% 的图片大小,而不损害其质量。

    用户2769421
  • 算法工程师常见面试问题及相关资料汇总

    https://github.com/lcylmhlcy/Awesome-algorithm-interview

    小白学视觉
  • “每天AI资讯这么多!该看哪些?”推荐一份优质资料清单

    原作 BAILOOL & meetshah1995 Root 编译自 GitHub 量子位 出品 | 公众号 QbitAI 人工智能最近火到炸裂,不看吧担心和时...

    量子位
  • 如何系统的学习web前端开发?

    因为许多前端新人自学一段时间之后,就迷茫了,不知道学到了什么阶段,也不清楚接下来该往哪个方向学习。要知道前端开发的方向非常的多,相互之间的知识分叉也非常的多。

    web前端教室
  • 收藏丨学习数据科学不可错过的优质资源

    大约两个月前,我开始学习数据科学。我并没有统计学、数学、数据科学、工程学、经济学方面的学位。说实话,在学生时代,数学和统计并不是我的强项,我更擅长语言方面。

    CDA数据分析师
  • 收集数据太困难?这里为你准备了 71 个免费数据集

    日前,KDnuggets 上的一篇文章总结了七十多个免费的数据集,内容涉及到政府、金融、卫生、新闻传媒等各个方面,除了这些数据,文中还提供数据提取地址。 AI ...

    AI研习社

扫码关注云+社区

领取腾讯云代金券