pwn-ffi-liquid
Drive PWN::FFI::Liquid from pwn_eval.
Files1
View on GitHubSKILL.mdetc/default_skills/pwn/ffi/liquid/SKILL.md
GitHubPWN::FFI::Liquid
Thin liquid-dsp binding. Provides the high-level DSP building blocks that PWN::SDR::Decoder::* needs beyond pure-Ruby primitives: FM / frequency demodulation, multi-stage arbitrary resampling, and Kaiser FIR filters. Opaque liquid handles are held as FFI::Pointer and always freed in an ensure — no compile step, no shells. If libliquid is absent .available? is false and DSP falls back to pure Ruby. Complex samples use the GCC float _Complex ABI: interleaved float[2] (re, im) per sample, which is how liquid_float_complex is laid out under LIQUID_DEFINE_COMPLEX.
When to use
Call PWN::FFI::Liquid from pwn_eval when the task needs this module.
Do not reimplement it in shell.
Methodologies
Generated from pwn/ffi/liquid.rb. Prefer the public class methods below.
Class methods take (opts = {}) and read opts.
How to call
PWN::FFI::Liquid.help
PWN::FFI::Liquid.available(opts)
Public methods
availablefreq_demodresamplefir_kaiserdc_blockresample_iqmix_downgmsk_demodmfsk_demodauthorshelpavailable?firfilt_rrrf_create_dc_blockerfirfilt_rrrf_create_kaiserfirfilt_rrrf_destroyfirfilt_rrrf_execute_blockfirfilt_rrrf_resetfreqdem_createfreqdem_demodulate_blockfreqdem_destroyfreqdem_printfreqdem_resetfskdem_createfskdem_demodulatefskdem_destroygmskdem_creategmskdem_demodulategmskdem_destroygmskdem_resetload_errormsresamp_crcf_createmsresamp_crcf_destroymsresamp_crcf_executemsresamp_rrrf_createmsresamp_rrrf_destroymsresamp_rrrf_executemsresamp_rrrf_get_delaymsresamp_rrrf_get_num_outputmsresamp_rrrf_get_ratemsresamp_rrrf_resetnco_crcf_createnco_crcf_destroynco_crcf_mix_block_downnco_crcf_set_frequency
Source
pwn/ffi/liquid.rb
Verification
PWN::FFI::Liquid.respond_to?(:available) after the
module is loaded. Read the source for parameter names.