Method: AppInfo::PE#binary_file
- Defined in:
- lib/app_info/pe.rb
#binary_file ⇒ String
Returns binary_file path.
189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 |
# File 'lib/app_info/pe.rb', line 189 def binary_file @binary_file ||= lambda { file_io = ::File.open(@file, 'rb') return @file unless file_io.read(100) =~ Helper::FileTypeDetection::ZIP_RETGEX zip_file = Zip::File.open(@file) zip_entry = zip_file.glob('*.exe').first raise NotFoundError, 'Not found .exe file in archive file' if zip_entry.nil? exe_file = tempdir(zip_entry.name, prefix: 'pe-exe', system: true) zip_entry.extract(exe_file) zip_file.close exe_file }.call end |