├── Readme.md ├── capture.grc └── replay.grc /Readme.md: -------------------------------------------------------------------------------- 1 | # Exploiting the Key Authentication Systems of Modern Vehicles 2 | Final project for CSE569 Spring 2021 - Washington University in St. Louis 3 | This repository contains GNU Radio files for the Record and Replay attacks. 4 | 5 | # Collaborators 6 | 1. Rohan Rai 7 | 2. Tiezheng Shao 8 | 3. Jeong Min Lim 9 | 10 | # Instructions for Replay Attacks 11 | 0. Connect HackRF One device to the system. 12 | 1. Run `hackrf_info` to confirm that the HackRF One is correctly loaded. 13 | 2. Run `gnuradio-companion` to launch GNU Radio Companion application. 14 | 3. Open `capture.grc`and change the `File Sink` node to the desired directory. 15 | 4. After running `capture.grc`, point the key fob towards the HackRF One antenna and press the button's signals that you wish to record. Then stop running `capture.grc`. 16 | 5. After capturing the data, open `replay.grc` and change `File Source` node to point to the captured data. After running `replay.grc`, your HackRF One will start broadcasting the captured key fob signal. 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /capture.grc: -------------------------------------------------------------------------------- 1 | options: 2 | parameters: 3 | author: '' 4 | category: '[GRC Hier Blocks]' 5 | cmake_opt: '' 6 | comment: '' 7 | copyright: '' 8 | description: '' 9 | gen_cmake: 'On' 10 | gen_linking: dynamic 11 | generate_options: qt_gui 12 | hier_block_src_path: '.:' 13 | id: top_block 14 | max_nouts: '0' 15 | output_language: python 16 | placement: (0,0) 17 | qt_qss_theme: '' 18 | realtime_scheduling: '' 19 | run: 'True' 20 | run_command: '{python} -u {filename}' 21 | run_options: prompt 22 | sizing_mode: fixed 23 | thread_safe_setters: '' 24 | title: '' 25 | window_size: '' 26 | states: 27 | bus_sink: false 28 | bus_source: false 29 | bus_structure: null 30 | coordinate: [-23, 71] 31 | rotation: 0 32 | state: enabled 33 | 34 | blocks: 35 | - name: samp_rate 36 | id: variable 37 | parameters: 38 | comment: '' 39 | value: 2e6 40 | states: 41 | bus_sink: false 42 | bus_source: false 43 | bus_structure: null 44 | coordinate: [10, 160] 45 | rotation: 0 46 | state: enabled 47 | - name: blocks_file_sink_0 48 | id: blocks_file_sink 49 | parameters: 50 | affinity: '' 51 | alias: '' 52 | append: 'False' 53 | comment: '' 54 | file: /home/jm/Downloads/cap_1 55 | type: complex 56 | unbuffered: 'False' 57 | vlen: '1' 58 | states: 59 | bus_sink: false 60 | bus_source: false 61 | bus_structure: null 62 | coordinate: [537, 223] 63 | rotation: 0 64 | state: enabled 65 | - name: osmosdr_source_0 66 | id: osmosdr_source 67 | parameters: 68 | affinity: '' 69 | alias: '' 70 | ant0: '' 71 | ant1: '' 72 | ant10: '' 73 | ant11: '' 74 | ant12: '' 75 | ant13: '' 76 | ant14: '' 77 | ant15: '' 78 | ant16: '' 79 | ant17: '' 80 | ant18: '' 81 | ant19: '' 82 | ant2: '' 83 | ant20: '' 84 | ant21: '' 85 | ant22: '' 86 | ant23: '' 87 | ant24: '' 88 | ant25: '' 89 | ant26: '' 90 | ant27: '' 91 | ant28: '' 92 | ant29: '' 93 | ant3: '' 94 | ant30: '' 95 | ant31: '' 96 | ant4: '' 97 | ant5: '' 98 | ant6: '' 99 | ant7: '' 100 | ant8: '' 101 | ant9: '' 102 | args: '' 103 | bb_gain0: '20' 104 | bb_gain1: '20' 105 | bb_gain10: '20' 106 | bb_gain11: '20' 107 | bb_gain12: '20' 108 | bb_gain13: '20' 109 | bb_gain14: '20' 110 | bb_gain15: '20' 111 | bb_gain16: '20' 112 | bb_gain17: '20' 113 | bb_gain18: '20' 114 | bb_gain19: '20' 115 | bb_gain2: '20' 116 | bb_gain20: '20' 117 | bb_gain21: '20' 118 | bb_gain22: '20' 119 | bb_gain23: '20' 120 | bb_gain24: '20' 121 | bb_gain25: '20' 122 | bb_gain26: '20' 123 | bb_gain27: '20' 124 | bb_gain28: '20' 125 | bb_gain29: '20' 126 | bb_gain3: '20' 127 | bb_gain30: '20' 128 | bb_gain31: '20' 129 | bb_gain4: '20' 130 | bb_gain5: '20' 131 | bb_gain6: '20' 132 | bb_gain7: '20' 133 | bb_gain8: '20' 134 | bb_gain9: '20' 135 | bw0: '0' 136 | bw1: '0' 137 | bw10: '0' 138 | bw11: '0' 139 | bw12: '0' 140 | bw13: '0' 141 | bw14: '0' 142 | bw15: '0' 143 | bw16: '0' 144 | bw17: '0' 145 | bw18: '0' 146 | bw19: '0' 147 | bw2: '0' 148 | bw20: '0' 149 | bw21: '0' 150 | bw22: '0' 151 | bw23: '0' 152 | bw24: '0' 153 | bw25: '0' 154 | bw26: '0' 155 | bw27: '0' 156 | bw28: '0' 157 | bw29: '0' 158 | bw3: '0' 159 | bw30: '0' 160 | bw31: '0' 161 | bw4: '0' 162 | bw5: '0' 163 | bw6: '0' 164 | bw7: '0' 165 | bw8: '0' 166 | bw9: '0' 167 | clock_source0: '' 168 | clock_source1: '' 169 | clock_source2: '' 170 | clock_source3: '' 171 | clock_source4: '' 172 | clock_source5: '' 173 | clock_source6: '' 174 | clock_source7: '' 175 | comment: '' 176 | corr0: '0' 177 | corr1: '0' 178 | corr10: '0' 179 | corr11: '0' 180 | corr12: '0' 181 | corr13: '0' 182 | corr14: '0' 183 | corr15: '0' 184 | corr16: '0' 185 | corr17: '0' 186 | corr18: '0' 187 | corr19: '0' 188 | corr2: '0' 189 | corr20: '0' 190 | corr21: '0' 191 | corr22: '0' 192 | corr23: '0' 193 | corr24: '0' 194 | corr25: '0' 195 | corr26: '0' 196 | corr27: '0' 197 | corr28: '0' 198 | corr29: '0' 199 | corr3: '0' 200 | corr30: '0' 201 | corr31: '0' 202 | corr4: '0' 203 | corr5: '0' 204 | corr6: '0' 205 | corr7: '0' 206 | corr8: '0' 207 | corr9: '0' 208 | dc_offset_mode0: '0' 209 | dc_offset_mode1: '0' 210 | dc_offset_mode10: '0' 211 | dc_offset_mode11: '0' 212 | dc_offset_mode12: '0' 213 | dc_offset_mode13: '0' 214 | dc_offset_mode14: '0' 215 | dc_offset_mode15: '0' 216 | dc_offset_mode16: '0' 217 | dc_offset_mode17: '0' 218 | dc_offset_mode18: '0' 219 | dc_offset_mode19: '0' 220 | dc_offset_mode2: '0' 221 | dc_offset_mode20: '0' 222 | dc_offset_mode21: '0' 223 | dc_offset_mode22: '0' 224 | dc_offset_mode23: '0' 225 | dc_offset_mode24: '0' 226 | dc_offset_mode25: '0' 227 | dc_offset_mode26: '0' 228 | dc_offset_mode27: '0' 229 | dc_offset_mode28: '0' 230 | dc_offset_mode29: '0' 231 | dc_offset_mode3: '0' 232 | dc_offset_mode30: '0' 233 | dc_offset_mode31: '0' 234 | dc_offset_mode4: '0' 235 | dc_offset_mode5: '0' 236 | dc_offset_mode6: '0' 237 | dc_offset_mode7: '0' 238 | dc_offset_mode8: '0' 239 | dc_offset_mode9: '0' 240 | freq0: 314.5e6 241 | freq1: 100e6 242 | freq10: 100e6 243 | freq11: 100e6 244 | freq12: 100e6 245 | freq13: 100e6 246 | freq14: 100e6 247 | freq15: 100e6 248 | freq16: 100e6 249 | freq17: 100e6 250 | freq18: 100e6 251 | freq19: 100e6 252 | freq2: 100e6 253 | freq20: 100e6 254 | freq21: 100e6 255 | freq22: 100e6 256 | freq23: 100e6 257 | freq24: 100e6 258 | freq25: 100e6 259 | freq26: 100e6 260 | freq27: 100e6 261 | freq28: 100e6 262 | freq29: 100e6 263 | freq3: 100e6 264 | freq30: 100e6 265 | freq31: 100e6 266 | freq4: 100e6 267 | freq5: 100e6 268 | freq6: 100e6 269 | freq7: 100e6 270 | freq8: 100e6 271 | freq9: 100e6 272 | gain0: '30' 273 | gain1: '10' 274 | gain10: '10' 275 | gain11: '10' 276 | gain12: '10' 277 | gain13: '10' 278 | gain14: '10' 279 | gain15: '10' 280 | gain16: '10' 281 | gain17: '10' 282 | gain18: '10' 283 | gain19: '10' 284 | gain2: '10' 285 | gain20: '10' 286 | gain21: '10' 287 | gain22: '10' 288 | gain23: '10' 289 | gain24: '10' 290 | gain25: '10' 291 | gain26: '10' 292 | gain27: '10' 293 | gain28: '10' 294 | gain29: '10' 295 | gain3: '10' 296 | gain30: '10' 297 | gain31: '10' 298 | gain4: '10' 299 | gain5: '10' 300 | gain6: '10' 301 | gain7: '10' 302 | gain8: '10' 303 | gain9: '10' 304 | gain_mode0: 'False' 305 | gain_mode1: 'False' 306 | gain_mode10: 'False' 307 | gain_mode11: 'False' 308 | gain_mode12: 'False' 309 | gain_mode13: 'False' 310 | gain_mode14: 'False' 311 | gain_mode15: 'False' 312 | gain_mode16: 'False' 313 | gain_mode17: 'False' 314 | gain_mode18: 'False' 315 | gain_mode19: 'False' 316 | gain_mode2: 'False' 317 | gain_mode20: 'False' 318 | gain_mode21: 'False' 319 | gain_mode22: 'False' 320 | gain_mode23: 'False' 321 | gain_mode24: 'False' 322 | gain_mode25: 'False' 323 | gain_mode26: 'False' 324 | gain_mode27: 'False' 325 | gain_mode28: 'False' 326 | gain_mode29: 'False' 327 | gain_mode3: 'False' 328 | gain_mode30: 'False' 329 | gain_mode31: 'False' 330 | gain_mode4: 'False' 331 | gain_mode5: 'False' 332 | gain_mode6: 'False' 333 | gain_mode7: 'False' 334 | gain_mode8: 'False' 335 | gain_mode9: 'False' 336 | if_gain0: '30' 337 | if_gain1: '20' 338 | if_gain10: '20' 339 | if_gain11: '20' 340 | if_gain12: '20' 341 | if_gain13: '20' 342 | if_gain14: '20' 343 | if_gain15: '20' 344 | if_gain16: '20' 345 | if_gain17: '20' 346 | if_gain18: '20' 347 | if_gain19: '20' 348 | if_gain2: '20' 349 | if_gain20: '20' 350 | if_gain21: '20' 351 | if_gain22: '20' 352 | if_gain23: '20' 353 | if_gain24: '20' 354 | if_gain25: '20' 355 | if_gain26: '20' 356 | if_gain27: '20' 357 | if_gain28: '20' 358 | if_gain29: '20' 359 | if_gain3: '20' 360 | if_gain30: '20' 361 | if_gain31: '20' 362 | if_gain4: '20' 363 | if_gain5: '20' 364 | if_gain6: '20' 365 | if_gain7: '20' 366 | if_gain8: '20' 367 | if_gain9: '20' 368 | iq_balance_mode0: '0' 369 | iq_balance_mode1: '0' 370 | iq_balance_mode10: '0' 371 | iq_balance_mode11: '0' 372 | iq_balance_mode12: '0' 373 | iq_balance_mode13: '0' 374 | iq_balance_mode14: '0' 375 | iq_balance_mode15: '0' 376 | iq_balance_mode16: '0' 377 | iq_balance_mode17: '0' 378 | iq_balance_mode18: '0' 379 | iq_balance_mode19: '0' 380 | iq_balance_mode2: '0' 381 | iq_balance_mode20: '0' 382 | iq_balance_mode21: '0' 383 | iq_balance_mode22: '0' 384 | iq_balance_mode23: '0' 385 | iq_balance_mode24: '0' 386 | iq_balance_mode25: '0' 387 | iq_balance_mode26: '0' 388 | iq_balance_mode27: '0' 389 | iq_balance_mode28: '0' 390 | iq_balance_mode29: '0' 391 | iq_balance_mode3: '0' 392 | iq_balance_mode30: '0' 393 | iq_balance_mode31: '0' 394 | iq_balance_mode4: '0' 395 | iq_balance_mode5: '0' 396 | iq_balance_mode6: '0' 397 | iq_balance_mode7: '0' 398 | iq_balance_mode8: '0' 399 | iq_balance_mode9: '0' 400 | maxoutbuf: '0' 401 | minoutbuf: '0' 402 | nchan: '1' 403 | num_mboards: '1' 404 | sample_rate: samp_rate 405 | sync: sync 406 | time_source0: '' 407 | time_source1: '' 408 | time_source2: '' 409 | time_source3: '' 410 | time_source4: '' 411 | time_source5: '' 412 | time_source6: '' 413 | time_source7: '' 414 | type: fc32 415 | states: 416 | bus_sink: false 417 | bus_source: false 418 | bus_structure: null 419 | coordinate: [196, 58] 420 | rotation: 0 421 | state: enabled 422 | - name: qtgui_sink_x_0 423 | id: qtgui_sink_x 424 | parameters: 425 | affinity: '' 426 | alias: '' 427 | bw: samp_rate 428 | comment: '' 429 | fc: '0' 430 | fftsize: '1024' 431 | gui_hint: '' 432 | maxoutbuf: '0' 433 | minoutbuf: '0' 434 | name: '"input"' 435 | plotconst: 'True' 436 | plotfreq: 'True' 437 | plottime: 'True' 438 | plotwaterfall: 'True' 439 | rate: '10' 440 | showports: 'False' 441 | showrf: 'False' 442 | type: complex 443 | wintype: firdes.WIN_BLACKMAN_hARRIS 444 | states: 445 | bus_sink: false 446 | bus_source: false 447 | bus_structure: null 448 | coordinate: [533, 73] 449 | rotation: 0 450 | state: true 451 | 452 | connections: 453 | - [osmosdr_source_0, '0', blocks_file_sink_0, '0'] 454 | - [osmosdr_source_0, '0', qtgui_sink_x_0, '0'] 455 | 456 | metadata: 457 | file_format: 1 458 | -------------------------------------------------------------------------------- /replay.grc: -------------------------------------------------------------------------------- 1 | options: 2 | parameters: 3 | author: '' 4 | category: '[GRC Hier Blocks]' 5 | cmake_opt: '' 6 | comment: '' 7 | copyright: '' 8 | description: '' 9 | gen_cmake: 'On' 10 | gen_linking: dynamic 11 | generate_options: qt_gui 12 | hier_block_src_path: '.:' 13 | id: top_block 14 | max_nouts: '0' 15 | output_language: python 16 | placement: (0,0) 17 | qt_qss_theme: '' 18 | realtime_scheduling: '' 19 | run: 'True' 20 | run_command: '{python} -u {filename}' 21 | run_options: prompt 22 | sizing_mode: fixed 23 | thread_safe_setters: '' 24 | title: '' 25 | window_size: '' 26 | states: 27 | bus_sink: false 28 | bus_source: false 29 | bus_structure: null 30 | coordinate: [19, 53] 31 | rotation: 0 32 | state: enabled 33 | 34 | blocks: 35 | - name: samp_rate 36 | id: variable 37 | parameters: 38 | comment: '' 39 | value: 2e6 40 | states: 41 | bus_sink: false 42 | bus_source: false 43 | bus_structure: null 44 | coordinate: [8, 160] 45 | rotation: 0 46 | state: enabled 47 | - name: blocks_file_source_0 48 | id: blocks_file_source 49 | parameters: 50 | affinity: '' 51 | alias: '' 52 | begin_tag: pmt.PMT_NIL 53 | comment: '' 54 | file: /home/jm/Downloads/cap_1 55 | length: '0' 56 | maxoutbuf: '0' 57 | minoutbuf: '0' 58 | offset: '0' 59 | repeat: 'True' 60 | type: complex 61 | vlen: '1' 62 | states: 63 | bus_sink: false 64 | bus_source: false 65 | bus_structure: null 66 | coordinate: [137, 229] 67 | rotation: 0 68 | state: true 69 | - name: blocks_multiply_const_vxx_0 70 | id: blocks_multiply_const_vxx 71 | parameters: 72 | affinity: '' 73 | alias: '' 74 | comment: '' 75 | const: '1' 76 | maxoutbuf: '0' 77 | minoutbuf: '0' 78 | type: complex 79 | vlen: '1' 80 | states: 81 | bus_sink: false 82 | bus_source: false 83 | bus_structure: null 84 | coordinate: [360, 71] 85 | rotation: 0 86 | state: true 87 | - name: blocks_throttle_0 88 | id: blocks_throttle 89 | parameters: 90 | affinity: '' 91 | alias: '' 92 | comment: '' 93 | ignoretag: 'True' 94 | maxoutbuf: '0' 95 | minoutbuf: '0' 96 | samples_per_second: samp_rate 97 | type: complex 98 | vlen: '1' 99 | states: 100 | bus_sink: false 101 | bus_source: false 102 | bus_structure: null 103 | coordinate: [200, 124] 104 | rotation: 0 105 | state: true 106 | - name: osmosdr_sink_0 107 | id: osmosdr_sink 108 | parameters: 109 | affinity: '' 110 | alias: '' 111 | ant0: '' 112 | ant1: '' 113 | ant10: '' 114 | ant11: '' 115 | ant12: '' 116 | ant13: '' 117 | ant14: '' 118 | ant15: '' 119 | ant16: '' 120 | ant17: '' 121 | ant18: '' 122 | ant19: '' 123 | ant2: '' 124 | ant20: '' 125 | ant21: '' 126 | ant22: '' 127 | ant23: '' 128 | ant24: '' 129 | ant25: '' 130 | ant26: '' 131 | ant27: '' 132 | ant28: '' 133 | ant29: '' 134 | ant3: '' 135 | ant30: '' 136 | ant31: '' 137 | ant4: '' 138 | ant5: '' 139 | ant6: '' 140 | ant7: '' 141 | ant8: '' 142 | ant9: '' 143 | args: '' 144 | bb_gain0: '20' 145 | bb_gain1: '20' 146 | bb_gain10: '20' 147 | bb_gain11: '20' 148 | bb_gain12: '20' 149 | bb_gain13: '20' 150 | bb_gain14: '20' 151 | bb_gain15: '20' 152 | bb_gain16: '20' 153 | bb_gain17: '20' 154 | bb_gain18: '20' 155 | bb_gain19: '20' 156 | bb_gain2: '20' 157 | bb_gain20: '20' 158 | bb_gain21: '20' 159 | bb_gain22: '20' 160 | bb_gain23: '20' 161 | bb_gain24: '20' 162 | bb_gain25: '20' 163 | bb_gain26: '20' 164 | bb_gain27: '20' 165 | bb_gain28: '20' 166 | bb_gain29: '20' 167 | bb_gain3: '20' 168 | bb_gain30: '20' 169 | bb_gain31: '20' 170 | bb_gain4: '20' 171 | bb_gain5: '20' 172 | bb_gain6: '20' 173 | bb_gain7: '20' 174 | bb_gain8: '20' 175 | bb_gain9: '20' 176 | bw0: 10e6 177 | bw1: '0' 178 | bw10: '0' 179 | bw11: '0' 180 | bw12: '0' 181 | bw13: '0' 182 | bw14: '0' 183 | bw15: '0' 184 | bw16: '0' 185 | bw17: '0' 186 | bw18: '0' 187 | bw19: '0' 188 | bw2: '0' 189 | bw20: '0' 190 | bw21: '0' 191 | bw22: '0' 192 | bw23: '0' 193 | bw24: '0' 194 | bw25: '0' 195 | bw26: '0' 196 | bw27: '0' 197 | bw28: '0' 198 | bw29: '0' 199 | bw3: '0' 200 | bw30: '0' 201 | bw31: '0' 202 | bw4: '0' 203 | bw5: '0' 204 | bw6: '0' 205 | bw7: '0' 206 | bw8: '0' 207 | bw9: '0' 208 | clock_source0: gpsdo 209 | clock_source1: '' 210 | clock_source2: '' 211 | clock_source3: '' 212 | clock_source4: '' 213 | clock_source5: '' 214 | clock_source6: '' 215 | clock_source7: '' 216 | comment: '' 217 | corr0: '0' 218 | corr1: '0' 219 | corr10: '0' 220 | corr11: '0' 221 | corr12: '0' 222 | corr13: '0' 223 | corr14: '0' 224 | corr15: '0' 225 | corr16: '0' 226 | corr17: '0' 227 | corr18: '0' 228 | corr19: '0' 229 | corr2: '0' 230 | corr20: '0' 231 | corr21: '0' 232 | corr22: '0' 233 | corr23: '0' 234 | corr24: '0' 235 | corr25: '0' 236 | corr26: '0' 237 | corr27: '0' 238 | corr28: '0' 239 | corr29: '0' 240 | corr3: '0' 241 | corr30: '0' 242 | corr31: '0' 243 | corr4: '0' 244 | corr5: '0' 245 | corr6: '0' 246 | corr7: '0' 247 | corr8: '0' 248 | corr9: '0' 249 | freq0: 313.8e6 250 | freq1: 100e6 251 | freq10: 100e6 252 | freq11: 100e6 253 | freq12: 100e6 254 | freq13: 100e6 255 | freq14: 100e6 256 | freq15: 100e6 257 | freq16: 100e6 258 | freq17: 100e6 259 | freq18: 100e6 260 | freq19: 100e6 261 | freq2: 100e6 262 | freq20: 100e6 263 | freq21: 100e6 264 | freq22: 100e6 265 | freq23: 100e6 266 | freq24: 100e6 267 | freq25: 100e6 268 | freq26: 100e6 269 | freq27: 100e6 270 | freq28: 100e6 271 | freq29: 100e6 272 | freq3: 100e6 273 | freq30: 100e6 274 | freq31: 100e6 275 | freq4: 100e6 276 | freq5: 100e6 277 | freq6: 100e6 278 | freq7: 100e6 279 | freq8: 100e6 280 | freq9: 100e6 281 | gain0: '30' 282 | gain1: '10' 283 | gain10: '10' 284 | gain11: '10' 285 | gain12: '10' 286 | gain13: '10' 287 | gain14: '10' 288 | gain15: '10' 289 | gain16: '10' 290 | gain17: '10' 291 | gain18: '10' 292 | gain19: '10' 293 | gain2: '10' 294 | gain20: '10' 295 | gain21: '10' 296 | gain22: '10' 297 | gain23: '10' 298 | gain24: '10' 299 | gain25: '10' 300 | gain26: '10' 301 | gain27: '10' 302 | gain28: '10' 303 | gain29: '10' 304 | gain3: '10' 305 | gain30: '10' 306 | gain31: '10' 307 | gain4: '10' 308 | gain5: '10' 309 | gain6: '10' 310 | gain7: '10' 311 | gain8: '10' 312 | gain9: '10' 313 | if_gain0: '30' 314 | if_gain1: '20' 315 | if_gain10: '20' 316 | if_gain11: '20' 317 | if_gain12: '20' 318 | if_gain13: '20' 319 | if_gain14: '20' 320 | if_gain15: '20' 321 | if_gain16: '20' 322 | if_gain17: '20' 323 | if_gain18: '20' 324 | if_gain19: '20' 325 | if_gain2: '20' 326 | if_gain20: '20' 327 | if_gain21: '20' 328 | if_gain22: '20' 329 | if_gain23: '20' 330 | if_gain24: '20' 331 | if_gain25: '20' 332 | if_gain26: '20' 333 | if_gain27: '20' 334 | if_gain28: '20' 335 | if_gain29: '20' 336 | if_gain3: '20' 337 | if_gain30: '20' 338 | if_gain31: '20' 339 | if_gain4: '20' 340 | if_gain5: '20' 341 | if_gain6: '20' 342 | if_gain7: '20' 343 | if_gain8: '20' 344 | if_gain9: '20' 345 | maxoutbuf: '0' 346 | minoutbuf: '0' 347 | nchan: '1' 348 | num_mboards: '1' 349 | sample_rate: samp_rate 350 | sync: sync 351 | time_source0: '' 352 | time_source1: '' 353 | time_source2: '' 354 | time_source3: '' 355 | time_source4: '' 356 | time_source5: '' 357 | time_source6: '' 358 | time_source7: '' 359 | type: fc32 360 | states: 361 | bus_sink: false 362 | bus_source: false 363 | bus_structure: null 364 | coordinate: [559, 236] 365 | rotation: 0 366 | state: enabled 367 | - name: qtgui_sink_x_0 368 | id: qtgui_sink_x 369 | parameters: 370 | affinity: '' 371 | alias: '' 372 | bw: samp_rate 373 | comment: '' 374 | fc: '0' 375 | fftsize: '1024' 376 | gui_hint: '' 377 | maxoutbuf: '0' 378 | minoutbuf: '0' 379 | name: '""' 380 | plotconst: 'True' 381 | plotfreq: 'True' 382 | plottime: 'True' 383 | plotwaterfall: 'True' 384 | rate: '10' 385 | showports: 'False' 386 | showrf: 'False' 387 | type: complex 388 | wintype: firdes.WIN_BLACKMAN_hARRIS 389 | states: 390 | bus_sink: false 391 | bus_source: false 392 | bus_structure: null 393 | coordinate: [601, -4] 394 | rotation: 0 395 | state: true 396 | - name: qtgui_time_sink_x_0 397 | id: qtgui_time_sink_x 398 | parameters: 399 | affinity: '' 400 | alias: '' 401 | alpha1: '1.0' 402 | alpha10: '1.0' 403 | alpha2: '1.0' 404 | alpha3: '1.0' 405 | alpha4: '1.0' 406 | alpha5: '1.0' 407 | alpha6: '1.0' 408 | alpha7: '1.0' 409 | alpha8: '1.0' 410 | alpha9: '1.0' 411 | autoscale: 'False' 412 | axislabels: 'True' 413 | color1: blue 414 | color10: dark blue 415 | color2: red 416 | color3: green 417 | color4: black 418 | color5: cyan 419 | color6: magenta 420 | color7: yellow 421 | color8: dark red 422 | color9: dark green 423 | comment: '' 424 | ctrlpanel: 'False' 425 | entags: 'True' 426 | grid: 'False' 427 | gui_hint: '' 428 | label1: '' 429 | label10: '' 430 | label2: '' 431 | label3: '' 432 | label4: '' 433 | label5: '' 434 | label6: '' 435 | label7: '' 436 | label8: '' 437 | label9: '' 438 | legend: 'True' 439 | marker1: '-1' 440 | marker10: '-1' 441 | marker2: '-1' 442 | marker3: '-1' 443 | marker4: '-1' 444 | marker5: '-1' 445 | marker6: '-1' 446 | marker7: '-1' 447 | marker8: '-1' 448 | marker9: '-1' 449 | name: '""' 450 | nconnections: '1' 451 | size: '1024' 452 | srate: samp_rate 453 | stemplot: 'False' 454 | style1: '1' 455 | style10: '1' 456 | style2: '1' 457 | style3: '1' 458 | style4: '1' 459 | style5: '1' 460 | style6: '1' 461 | style7: '1' 462 | style8: '1' 463 | style9: '1' 464 | tr_chan: '0' 465 | tr_delay: '0' 466 | tr_level: '0.0' 467 | tr_mode: qtgui.TRIG_MODE_FREE 468 | tr_slope: qtgui.TRIG_SLOPE_POS 469 | tr_tag: '""' 470 | type: complex 471 | update_time: '0.10' 472 | width1: '1' 473 | width10: '1' 474 | width2: '1' 475 | width3: '1' 476 | width4: '1' 477 | width5: '1' 478 | width6: '1' 479 | width7: '1' 480 | width8: '1' 481 | width9: '1' 482 | ylabel: Amplitude 483 | ymax: '1' 484 | ymin: '-1' 485 | yunit: '""' 486 | states: 487 | bus_sink: false 488 | bus_source: false 489 | bus_structure: null 490 | coordinate: [601, 109] 491 | rotation: 0 492 | state: enabled 493 | 494 | connections: 495 | - [blocks_file_source_0, '0', blocks_throttle_0, '0'] 496 | - [blocks_multiply_const_vxx_0, '0', osmosdr_sink_0, '0'] 497 | - [blocks_multiply_const_vxx_0, '0', qtgui_sink_x_0, '0'] 498 | - [blocks_multiply_const_vxx_0, '0', qtgui_time_sink_x_0, '0'] 499 | - [blocks_throttle_0, '0', blocks_multiply_const_vxx_0, '0'] 500 | 501 | metadata: 502 | file_format: 1 503 | --------------------------------------------------------------------------------