angr / ailment

AIL: The angr Intermediate Language.
BSD 2-Clause "Simplified" License
27 stars 16 forks source link

Make VEXExprConverter more resilient #181

Closed bluesadi closed 9 months ago

bluesadi commented 9 months ago
Traceback (most recent call last):
  File "C:\Research\amp2023\amp-hackathon-nov-23\test_angr.py", line 39, in test_one
    project.analyses.Decompiler(function, flavor="psuedocode")
  File "C:\Dev\angr\angr\analyses\analysis.py", line 216, in __call__
    r = w(*args, **kwargs)
        ^^^^^^^^^^^^^^^^^^
  File "C:\Dev\angr\angr\analyses\analysis.py", line 201, in wrapper
    oself.__init__(*args, **kwargs)
  File "C:\Dev\angr\angr\analyses\decompiler\decompiler.py", line 96, in __init__
    self._decompile()
  File "C:\Dev\angr\angr\analyses\decompiler\decompiler.py", line 157, in _decompile
    clinic = self.project.analyses.Clinic(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Dev\angr\angr\analyses\analysis.py", line 216, in __call__
    r = w(*args, **kwargs)
        ^^^^^^^^^^^^^^^^^^
  File "C:\Dev\angr\angr\analyses\analysis.py", line 201, in wrapper
    oself.__init__(*args, **kwargs)
  File "C:\Dev\angr\angr\analyses\decompiler\clinic.py", line 111, in __init__
    self._analyze()
  File "C:\Dev\angr\angr\analyses\decompiler\clinic.py", line 178, in _analyze
    self._convert_all()
  File "C:\Dev\angr\angr\utils\timing.py", line 43, in timed_func
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Dev\angr\angr\analyses\decompiler\clinic.py", line 512, in _convert_all
    ail_block = self._convert(block_node)
                ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Dev\angr\angr\analyses\decompiler\clinic.py", line 531, in _convert
    ail_block = ailment.IRSBConverter.convert(block.vex, self._ail_manager)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\yibol\Envs\angr-dev\Lib\site-packages\ailment\__init__.py", line 53, in convert
    return VEXIRSBConverter.convert(irsb, manager)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\yibol\Envs\angr-dev\Lib\site-packages\ailment\converter_vex.py", line 662, in convert
    converted = VEXStmtConverter.convert(idx, stmt, manager)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\yibol\Envs\angr-dev\Lib\site-packages\ailment\converter_vex.py", line 407, in convert
    return func(idx, stmt, manager)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\yibol\Envs\angr-dev\Lib\site-packages\ailment\converter_vex.py", line 412, in WrTmp
    reg = VEXExprConverter.convert(stmt.data, manager)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\yibol\Envs\angr-dev\Lib\site-packages\ailment\converter_vex.py", line 47, in convert
    return func(expr, manager)
           ^^^^^^^^^^^^^^^^^^^
  File "C:\Users\yibol\Envs\angr-dev\Lib\site-packages\ailment\converter_vex.py", line 209, in Binop
    op = VEXExprConverter.simop_from_vexop(expr.op)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\yibol\Envs\angr-dev\Lib\site-packages\ailment\converter_vex.py", line 32, in simop_from_vexop
    return vexop_to_simop(vex_op)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Dev\angr\angr\engines\vex\claripy\irop.py", line 1268, in vexop_to_simop
    res = SimIROp(op, **attrs)
          ^^^^^^^^^^^^^^^^^^^^
  File "C:\Dev\angr\angr\engines\vex\claripy\irop.py", line 410, in __init__
    raise UnsupportedIROpError("no calculate function identified for %s" % self.name)
angr.errors.UnsupportedIROpError: no calculate function identified for Iop_MullEven16Sx8
ltfish commented 9 months ago

Merged. Thanks!