0

I'm developing a python script for Angr that has to find all the basic blocks present in each function in a binary. I have noticed that Angr splits the basic blocks when he finds a REP instruction, I'm wondering if I can tell Angr to not split basic blocks when encounters REP instructions with the API or if I have to do it manually.

This is a snippet of my code:

p = angr.Project(sys.argv[1], auto_load_libs=False, main_opts={'base_addr': 0} )
cfg = p.analyses.CFGFast()
cfg.normalize()

for func_node in cfg.functions.values():
    for block in func_node.blocks:
        c = block.capstone
        for i in c.insns:
            * operations *

This is an example of a basic block that ends with a REP instruction:

enter image description here

Thank you in advance.

Luca
  • 95
  • 1
  • 2
  • 11

0 Answers0