Closed cyb3rc closed 3 weeks ago
I can confirm. Spend a day until noticed that PE is only half-decoded. Capstone breaks on this instruction:
ver 5.0.1, skipdata = True, python 3.8.10, Win7 64
Any advices about how to overcome this?..
Sorry for the late answer. Currently, we are really busy with many other construction sides in Capstone. So the Python bindings don't get the love they would actually need. We first want to bring the C code base up to date. Because the Python bindings possibly get a complete rewrite. For those two reasons, no one looked at this one yet.
Although, you can try to use the next
branch (currently only usable with <= Python3.11).
@Rot127 Thanks for response. At least we know that it is in a road map. We'll be waiting for next release.
The library installed through the PyPi package was found to be invalid because the definition of CS_OPT_ON in python and dll was different。
# bindings/python/capstone/__init__.py
CS_OPT_ON = 1 << 0 # Turn ON an option (CS_OPT_DETAIL)
#include/capstone/capstone.h
CS_OPT_ON = 3, ///< Turn ON an option (CS_OPT_DETAIL, CS_OPT_SKIPDATA).
The next branch has fixed this.
@Amoystyle In the v5
branch CS_OPT_ON == 3
in the Python bindings and the c header.
So this might not be the reason.
@Rot127 I see that the latest version 5.0.2 has fixed this bug
[v5] python: Fix definition of capstone syntax value option constants by @nmeum in https://github.com/capstone-engine/capstone/pull/2240
@cyb3rc Can you please try it and close this one if it works for you?
@Rot127 Checked with v.5.0.3. It works! Thanks a lot!
Work environment
git clone
, pipInstruction bytes giving faulty results
Expected results
It should be:
Steps to get the wrong result
With
cstool
we got expected result:With
Python
codeGot only first instruction
NOTE
test_skipdata.c
works as expected.v5.0.1
release sources from python returns invalid result.Probably the issue with dynamic library.