w3i1ong / binsim

4 stars 0 forks source link

Binary Ninja Invocation Issue #1

Closed JKyang09 closed 9 hours ago

JKyang09 commented 2 days ago

Hello, when running the operations in the Disassemble part of the code: python experiment/preprocess/code/disassemble/preprocess-dataset.py --config experiment/preprocess/config/dataset/${DATASET}/${GraphType}.yaml

The code gets stuck and cannot output the results after Disassemble. After debugging, it was found that it got stuck at the statement cfgs = self._disassembler.disassemble(**kwargs) in the disassemble function in miniconda3/lib/python3.11/site-packages/binsim/disassembly/extractor/base.py. From the background perspective, after the code runs, it will first start multiple CPU-occupying processes. Subsequently, the CPU usage of these processes becomes 0, but the processes don't end and remain stuck there.

I have tested that there is no problem with the invocation of Binary Ninja through the following code: `import binaryninja

try: bv = binaryninja.BinaryViewType.get_view_of_file("./keymaker.exe") except binaryninja.BinaryNinjaError as e: print(f"BinaryNinja API call failed with error: {e}") else: print("BinaryNinja API call executed successfully without errors.")`

w3i1ong commented 1 day ago

Can you provide the value of ${DATASET} and ${GraphType}? And If you are using a new dataset, can you provide several samples?

JKyang09 commented 1 day ago

Thank you for your reply. Through debugging, it was found that the problem lies with the RocksDB database. The program gets stuck when running the following code: db = rocksdb.DB(dataset_dir, rocksdb.Options(create_if_missing=True))