def generate_python_shellcode(bin_filename, types_filename=None): binary = load_binary(bin_filename) if types_filename is None: rules = [] else: rules = typesfile.load_types_file(types_filename) datas = apply_rules_to_bin(binary, rules) source = sourcegen.generate_source(datas) validate_source(source, binary) return source
def test_generate_source(self): datas = [ ('u', "\x00\x11\x22\x33\x44"), ('d', ("", {"value": "daste", "depends": ["foo","bar"]})), ] test_source = sourcegen.generate_source(datas) source = "import bar\n"\ "import foo\n"\ "\n"\ "shellcode = \"\"\n"\ "shellcode += \"\\x00\\x11\\x22\\x33\\x44\"\n"\ "shellcode += daste\n" self.assertEqual(test_source, source)