MCPcopy Create free account
hub / github.com/CheckPointSW/Karta / createDisassemblerHandler

Function createDisassemblerHandler

src/disassembler/factory.py:35–61  ·  view source on GitHub ↗

Create the disassembler handler according to the host program. Args: logger (logger): logger instance (Must NOT be None) Return Value: disassembler handler that implements the declared API

(logger)

Source from the content-addressed store, hash-verified

33 disassembler_cmd_factory.append((identifier_fn, init_fn))
34
35def createDisassemblerHandler(logger):
36 """Create the disassembler handler according to the host program.
37
38 Args:
39 logger (logger): logger instance (Must NOT be None)
40
41 Return Value:
42 disassembler handler that implements the declared API
43 """
44 for disas_name in disassembler_factory:
45 verifier = disassembler_factory[disas_name]
46 try:
47 if not verifier.identify():
48 continue
49 except Exception as err:
50 logger.error(f"Failed to identify disassembler \"{disas_name}\": {err}")
51 logger.error(traceback.format_exc())
52 continue
53 logger.info(f"Chose the {disas_name} handler")
54 try:
55 return verifier.disas()
56 except Exception as err:
57 logger.error(f"Failed to create disassembler handler \"{disas_name}\": {err}")
58 logger.error(traceback.format_exc())
59 return None
60 logger.error("Failed to find a matching disassembler handler!")
61 return None
62
63def identifyDisassemblerHandler(program_path, logger):
64 """Create the disassembler handler according to the given program path.

Callers 3

pluginMainFunction · 0.90
pluginMainFunction · 0.90

Calls 2

identifyMethod · 0.45
disasMethod · 0.45

Tested by

no test coverage detected