def gen_sample_view(sample_id, graph=None, fctaddr=None): """ Generates a sample's view (template). We split the view because of the disassembly view, which is directly included in the sample's view, but not "by default". """ sample = api.samplecontrol.get_by_id(sample_id) if sample is None: abort(404) machex_export_form = ExportMachexForm(sampleid=sample.id) set_sample_abstract_form = SampleAbstractForm() add_family_form = AddSampleToFamilyForm() families_choices = [(f.id, f.name) for f in Family.query.order_by('name')] add_family_form.parentfamily.choices = families_choices change_tlp_level_form = ChangeTLPForm() machoc_compare_form = CompareMachocForm() sample_metadata = [] for i in sample.s_metadata: sample_metadata.append( {"type": SampleMetadataType.tostring(i.type_id), "value": i.value}) if add_family_form.validate_on_submit(): family_id = add_family_form.parentfamily.data family = api.familycontrol.get_by_id(family_id) if family is None: abort(404) api.familycontrol.add_sample(sample, family) if set_sample_abstract_form.validate_on_submit(): abstract = set_sample_abstract_form.abstract.data api.samplecontrol.set_abstract(sample, abstract) elif sample.abstract is not None: set_sample_abstract_form.abstract.default = sample.abstract set_sample_abstract_form.abstract.data = sample.abstract if change_tlp_level_form.validate_on_submit(): level = change_tlp_level_form.level.data api.samplecontrol.set_tlp_level(sample, level) machoc_comparison_results = None if machoc_compare_form.validate_on_submit(): comparison_level = machoc_compare_form.percent.data if comparison_level < 1: comparison_level = 1 elif comparison_level > 100: comparison_level = 100 comparison_level = float(comparison_level) / 100 machoc_comparison_results = api.samplecontrol.machoc_diff_with_all_samples( sample, comparison_level) return render_template("sample.html", sample=sample, abstractform=set_sample_abstract_form, checklists=api.samplecontrol.get_all_checklists(), changetlpform=change_tlp_level_form, compareform=machoc_compare_form, expform=machex_export_form, hresults=machoc_comparison_results, metasample=sample_metadata, addfamilyform=add_family_form, graph=graph, fctaddr=fctaddr)
def gen_sample_view(sample_id, graph=None, fctaddr=None): """ Generates a sample's view (template). We split the view because of the disassembly view, which is directly included in the sample's view, but not "by default". """ sample = api.samplecontrol.get_by_id(sample_id) if sample is None: abort(404) machex_export_form = ExportMachexForm(sampleid=sample.id) set_sample_abstract_form = SampleAbstractForm() add_family_form = AddSampleToFamilyForm() families_choices = [(f.id, f.name) for f in Family.query.order_by('name')] add_family_form.parentfamily.choices = families_choices change_tlp_level_form = ChangeTLPForm() machoc_form = CompareMachocForm() if add_family_form.validate_on_submit(): family_id = add_family_form.parentfamily.data family = api.familycontrol.get_by_id(family_id) if family is None: abort(404) api.familycontrol.add_sample(sample, family) if set_sample_abstract_form.validate_on_submit(): abstract = set_sample_abstract_form.abstract.data api.samplecontrol.set_abstract(sample, abstract) elif sample.abstract is not None: set_sample_abstract_form.abstract.default = sample.abstract set_sample_abstract_form.abstract.data = sample.abstract if change_tlp_level_form.validate_on_submit(): level = change_tlp_level_form.level.data api.samplecontrol.set_tlp_level(sample, level) machoc_comparison_results = None if machoc_form.validate_on_submit(): machoc_comparison_results = parse_machoc_form(sample, machoc_form) return render_template("sample.html", sample=sample, abstractform=set_sample_abstract_form, checklists=api.samplecontrol.get_all_checklists(), changetlpform=change_tlp_level_form, compareform=machoc_form, expform=machex_export_form, hresults=machoc_comparison_results, addfamilyform=add_family_form, graph=graph, fctaddr=fctaddr)
def gen_sample_view(sample_id, graph=None, fctaddr=None): """ Generates a sample's view (template). We split the view because of the disassembly view, which is directly included in the sample's view, but not "by default". """ sample = api.get_elem_by_type("sample", sample_id) machex_export_form = ExportMachexForm(sampleid=sample.id) set_sample_abstract_form = SampleAbstractForm() add_family_form = AddSampleToFamilyForm() families_choices = [(f.id, f.name) for f in Family.query.order_by('name')] add_family_form.parentfamily.choices = families_choices change_tlp_level_form = ChangeTLPForm() machoc_form = CompareMachocForm() if add_family_form.validate_on_submit(): family_id = add_family_form.parentfamily.data family = api.get_elem_by_type("family", family_id) api.familycontrol.add_sample(sample, family) if set_sample_abstract_form.validate_on_submit(): abstract = set_sample_abstract_form.abstract.data api.samplecontrol.set_abstract(sample, abstract) elif sample.abstract is not None: set_sample_abstract_form.abstract.default = sample.abstract set_sample_abstract_form.abstract.data = sample.abstract if change_tlp_level_form.validate_on_submit(): level = change_tlp_level_form.level.data api.samplecontrol.set_tlp_level(sample, level) machoc_comparison_results = None if machoc_form.validate_on_submit(): machoc_comparison_results = parse_machoc_form(sample, machoc_form) return render_template("sample.html", sample=sample, abstractform=set_sample_abstract_form, checklists=api.samplecontrol.get_all_checklists(), changetlpform=change_tlp_level_form, compareform=machoc_form, expform=machex_export_form, hresults=machoc_comparison_results, addfamilyform=add_family_form, graph=graph, fctaddr=fctaddr)