Posts

Monitor with Python and RTL-SDR

Python, RTL-SDR, numpy This is modified version based on rtl-sdr-close-call-monitor  https://github.com/nootedandrooted/rtl-sdr-close-call-monitor It scans tetra uplink european frequencies. import sys import time import numpy as np from rtlsdr import RtlSdr sdr = RtlSdr() sr = 2.4e6 shift = 1.2e6 start_freq = 380.0125e6 end_freq = 0 freq = 381.2125e6 sdr.sample_rate = sr  # Hz sdr.freq_correction = 1  # PPM sdr.gain = 30  # dB num_samples = 2**16 squelch_level = -30 n = 0 while True:     gain_question = str(input("Do you want to use the default gain? (30dB) (y/n): "))     if gain_question == 'y':         print("Using the default gain (30 dB)")         break     elif gain_question == 'n':         gain_custom = int(input("Please enter the gain (in dB): "))         sdr.gain = gain_custom         break     else:      ...

Inspecting a discontinued portable amateur radio memory control program

Image
Detect It Easy   De4dot   dotPeek export to VS project. VS 2026 converted successfully to .NET 4.8 level. Weird and obfuscated source files but also a dir in project that contains clean code files. Changed configuration to x86.   Build failed with many C# 7.3 nullable disable errors. added to .csproj     <Nullable>Enable</Nullable>     <LangVersion>preview</LangVersion> still one CSC nullable disable error c# 7.3 changed to wrong configuration x86 -> x64 and back to x86 then clean and successful build.   

Inspecting firmware updater of a old discontinued handheld mobile HAM transceiver

Image
Firmware updater exe : DetectItEasy  De4dot: VS Code ILSpy decompiled cleaned code  dotPeek created VS solution   Firmware ROM binary file inside VS solution, DetectItEasy: CPU is probably R8C. Some Ghidra R8 processor modules exists: https://github.com/silverchris/m16c  

Inspecting firmwares of some receivers and transceivers

Image
Some radio scanner firmwares contains lots of debugging strings and code, e.g. debug19 debug20 debug21 . C . sjis MOT TST test_control_ch  and some are based on NORTi RTOS. Some receiver model firmwares are probably encrypted but e.g. binwalk can show something        Some devs have multiple firmwares, e.g. one for the DSP and one for the display. Ghidra TMS320c28x   Ghidra Fujitsu MB91F    

Quick and super simple RDS log mod for the SDRAngel

rdsparser.cpp Append group data to log file in hex format. void RDSParser::parseGroup(unsigned int *group) {     unsigned int group_type = (unsigned int)((group[1] >> 12) & 0xf);     bool ab = (group[1] >> 11 ) & 0x1;      // add this     {         std::ofstream ofs("rdslog.txt", std::ios::app);         if (ofs)         {             ofs << std::hex << std::uppercase;             // print each 16-bit word as zero-padded 4-digit hex when possible             ofs << std::setw(4) << std::setfill('0') << (group[0] & 0xFFFF);             ofs << std::setw(4) << std::setfill('0') << (group[1] & 0xFFFF);             ofs << std::setw(4) << std::setfill('0') ...

Inspecting Alinco DX-R8 firmware updater

Image
DX-SR8 Flash Writer Ver01.12.zip Unzip  extract DX-SR8 Flash Writer Ver01.12.msi extract Instal01.cab CPU: R8C R8C/Lx/3AA Microcontroller IC 16-Bit 20MHz 128KB (128K x 8) FLASH 100-LFQFP (14x14) Flash code is embedded as Motorola S-record format in _B... file (many _xxx files without extension in package). It can be extracted and cleaned (rem non-printing chars etc.) e.g. with Python. srec_info:      

Inspecting Uniden BC346XT firmware

Image
I am interested in finding unknown remote commands and test modes. Ghidra and a bit of Python code.