metasploitable3/resources/flags/linux_flags/10_of_clubs/get_flag.rb

38 lines
694 B
Ruby
Raw Normal View History

# -*- coding: binary -*-
#!/usr/bin/env ruby
require 'zlib'
def load_wav(fname)
File.read(fname)
end
def find_data_chunk_offset(wav)
wav.index('data') + 1
end
def get_data_chunk_size(wav)
data_chunk_offset = find_data_chunk_offset(wav)
wav[data_chunk_offset, 4].unpack('N').first
end
def extract_data_chunk(wav)
chunk_offset = find_data_chunk_offset(wav)
chunk_size = get_data_chunk_size(wav)
wav[chunk_offset + 4 + 3, chunk_size]
end
wav_fname = ARGV.shift
output = ARGV.shift
wav = load_wav(wav_fname)
data_chunk = extract_data_chunk(wav)
data_chunk = Zlib::Inflate.inflate(data_chunk)
File.open(output, 'wb') do |f|
f.write(data_chunk)
end
puts "#{output} written"