williballenthin / viv-utils

Utilities for working with vivisect
Apache License 2.0
21 stars 11 forks source link

BB succs / instructions out of range #22

Closed mr-tz closed 2 years ago

mr-tz commented 2 years ago

For 17264e3126a97c319a6a0c61e6da951e.dll_:

...
  File "viv_utils\__init__.py", line 174, in get_bb_succs
    for bva, bflags in bb.succs:
  File "lib\site-packages\funcy\objects.py", line 28, in __get__
    res = instance.__dict__[self.fget.__name__] = self.fget(instance)
  File "viv_utils\__init__.py", line 236, in succs
    branches = self.instructions[-1].getBranches()
IndexError: list index out of range
mr-tz commented 2 years ago
...
Function(va: 0x5fd8a8b0)
BasicBlock(va: 0x5fd8a8b0, size: 0x4, fva: 0x5fd8a8b0)
BasicBlock(va: 0x5fd8a8b4, size: 0x7, fva: 0x5fd8a8b0)
BasicBlock(va: 0x5fd8a8bb, size: 0x19, fva: 0x5fd8a8b0)
BasicBlock(va: 0x5fd8a927, size: 0x0, fva: 0x5fd8a8b0)
 -> ERROR!

IDA's view (this is data): 2021-11-05_13-47-48

Fix: ensure BB has length/instructions.

mr-tz commented 2 years ago

also happens for (all capa test samples):

5fbbfeed28b258c42e0cfeb16718b31c 9b7ccaa2ae6a5b96e3110ebcbc4311f6 9ff8e68343cc29c1036650fc153e69f7 a933a1a402775cfa94b6bee0963f4b46 c66172b12971a329f8d5ff01665f204b kernel32.dll_

williballenthin commented 2 years ago

closed in https://github.com/williballenthin/viv-utils/commit/7e18c049dcdb265a5ee2ab533a7e127c6f0d1d40