def test_get_safe_name(self): a = "/()=Hello%&World!? Foo" self.assertEqual(get_safe_name(a), "HelloWorld_Foo", "result not correct") b = 250 * 'a' self.assertEqual(len(get_safe_name(b)), 200, "lenght not cutted correctly")
def _extract_binaries(self, analysis_dict, key, uid): tmp_dict = {} for analysis_key in analysis_dict[key].keys(): if analysis_key != 'summary': file_name = '{}_{}_{}'.format(get_safe_name(key), get_safe_name(analysis_key), uid) self.sanitize_fs.put(pickle.dumps(analysis_dict[key][analysis_key]), filename=file_name) tmp_dict[analysis_key] = file_name else: tmp_dict[analysis_key] = analysis_dict[key][analysis_key] return tmp_dict
def _extract_file_from_upgrade(binary_data, upgrade_command, extraction_dir): file_name = _get_name_of_upgrade(binary_data, upgrade_command) file_binary = _get_binary_of_upgrade(binary_data, upgrade_command, file_name) if file_name: file_name = '{}.bin'.format(get_safe_name(file_name, max_size=80)) else: file_name = '{}.bin'.format(upgrade_command['begin_offset']) file_path = Path(extraction_dir, file_name) write_binary_to_file(file_binary, str(file_path), overwrite=False, file_copy=True)