Replies: 5 comments 5 replies
-
@athre0z @flobernd This is really nice to hear! Don't worry about assistance. Also I agree that dependencies are potentially a problem. Thanks for pointing this out again. What were the main complaints from users about the dependencies, if I might ask? Because there is neither time nor enough maintainers currently to do this anyways. I would let this idea sit here for a while. And get more feedback or someone who is motivated. We have so many open issues about out dated x86, I think it would be worth the pain. Especially, since Zydis is faster and smaller than the x86 module (at least the one time I checked it casually). So users would get quite a lot for the annoyance of a dependency. In our case users who don't need x86, can disable the module completely. And don't deal with it at all if they don't want to. |
Beta Was this translation helpful? Give feedback.
-
What benefit is there to have Zydis in Capstone for x86 when the user could just use Zydis? Capstone would also make things slower due to copying the data and most likely allocating memory, so that is a downside. I know it sounds nice to have all sorts of architectures in theory but in practice all those architectures typically don't have a lot in common and no one really needs all those architectures at the same time. |
Beta Was this translation helpful? Give feedback.
-
From a user perspective (https://github.com/intel/processwatch), it seems to me that there's not much advantage in Capstone simply calling Zydis for x86 instructions. If I want to call Zydis, I simply would! It's a very easy dependency to build and use; in fact, my project did use it as a submodule for quite some time before I wanted to support ARM, and since Capstone doesn't support later x86 instructions, I'll re-add it back to my repo (but obviously use Capstone for ARM and potentially other architectures). The way I see it, Capstone calling Zydis would:
|
Beta Was this translation helpful? Give feedback.
-
Hi, we use Capstone in Pwndbg. I think we don't mind if Capstone switches to Zydis as long as the Capstone API stays the same. And by that, I also mean all the various detailed information that Capstone provides about instructions (instruction group, operands, read/write accesses etc) as we leverage that information heavily. |
Beta Was this translation helpful? Give feedback.
-
I agree, after all capstone is not going to put a lot of effort into x86, it should be left to the professional |
Beta Was this translation helpful? Give feedback.
-
We had the idea to exchange the current x86 module with the Zydis disassembler.
Mainly because it is unlikely we will be able to update x86, because it has such a unique place in the LLVM world. So we can't use our Auto-Sync updater for it currently (See: capstone-engine/llvm-capstone#13).
The details are already describe in #2503. See below
Copy of relevant messages
Rot127
athre0z
Beta Was this translation helpful? Give feedback.
All reactions