コード例 #1
0
 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")
コード例 #2
0
 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
コード例 #3
0
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)