capstone icon indicating copy to clipboard operation
capstone copied to clipboard

Plan for future development of Capstone

Open aquynh opened this issue 7 years ago • 14 comments

This is a rough plan to continue Capstone development after v4.0. Exact timeline is to be updated.


~~### Version 4.1~~

~~This version is now developed in https://github.com/aquynh/capstone/tree/v4.1.~~

~~Features:~~ ~~- Include some bugfixes for version 4.0~~ ~~- Update for SystemZ~~ ~~- New architecture MOS65XX~~

Update: since this breaks bindings (see #1315), we bumped the major version to v5.


Version 5.0

This version is developed in https://github.com/aquynh/capstone/tree/next.

This is a major update for all architectures, and will hopefully add few more from LLVM 7.0.x.

  • Sync with latest code from LLVM, focusing on X86, Arm, Arm64, Mips, PowerPC & Sparc. This would bring in latest instruction sets for all these architectures.
  • Better toolset to generate instruction meta data from LLVM tablegen, to make it easier to sync with future update of LLVM. Currently this is painful, requiring adhoc manual work.
  • New architectures to be considered to support: MSP430, ARC, AVR & RISCV. (RiscV already had a pull req https://github.com/aquynh/capstone/pull/1198)
  • We may also add WebAsm architecture

Bindings

Except Python, most existing bindings become broken when we upgraded from v3.0.5 to v4.0. See https://github.com/aquynh/capstone/issues/1315 for more details.

Binding authors should at least update their cs_insn structure, so their bindings can work. Beyond that, we hope they continue to support all the new features introduced in v4.0.

aquynh avatar Dec 20 '18 08:12 aquynh

~~Update: we merged the branch v4.1 to the master branch. The next release will be v4.1~~

aquynh avatar Jan 22 '19 07:01 aquynh

Update: since branch master breaks bindings, i marked its version as 5.0 instead.

We still have some maintenance versions for v4.0.x. The next release will be v4.0.2, where we just cherry-pick bugfixes. Track this version in branch ~~https://github.com/aquynh/capstone/tree/v4.0.2~~ https://github.com/aquynh/capstone/tree/v4

aquynh avatar Jan 30 '19 02:01 aquynh

some quick updates on development on the "next" branch.

  • i synced X86 with LLVM 7.0.1, and now we support latest X86 extensions.
  • we have regression test under suite/cstest now. all the closed issues should be put into https://github.com/aquynh/capstone/blob/next/suite/cstest/issues.cs, which is verified on every commit with Travis. thanks to this, we will not regress on fixed issues.

now X86 is done, i am moving to ARM. expect update soon.

aquynh avatar Feb 28 '19 17:02 aquynh

for the "next" branch (will be released as v5.0), we got few more new architectures in MOS65xx, BPF, WASM & RISCV. more will come in the near future, before 5.0 is out.

aquynh avatar Mar 09 '19 01:03 aquynh

We just had a huge update on ARM, so now we can handle can latest instructions from v8.1a ~ v8.4a specs.

Check it out in the "next" branch at https://github.com/aquynh/capstone/tree/next

Next update will be Aarch64.

aquynh avatar Mar 16 '19 10:03 aquynh

AArch64 architecture is updated, and should support all the latest instructions now.

Check it out in the "next" branch at https://github.com/aquynh/capstone/tree/next

I am now moving to update PowerPC.

aquynh avatar Apr 10 '19 10:04 aquynh

woah :DDD thank you! i can confirm it works as expected for the PAC instructions at least, will update r2 git and see if there's any regression

On 10 Apr 2019, at 12:02, Nguyen Anh Quynh [email protected] wrote:

AArch64 architecture is updated, and should support all the latest instructions now.

Check it out in the "next" branch at https://github.com/aquynh/capstone/tree/next https://github.com/aquynh/capstone/tree/next I am now moving to update PowerPC.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/aquynh/capstone/issues/1319#issuecomment-481626478, or mute the thread https://github.com/notifications/unsubscribe-auth/AA3-lqikalc4Xxg07UPfCMgvfpupi7qjks5vfbangaJpZM4Zbtq_.

radare avatar Apr 10 '19 10:04 radare

PowerPC is updated, see https://github.com/aquynh/capstone/tree/next.

The remaining important architectures to be updated are Mips & Sparc.

aquynh avatar Apr 30 '19 06:04 aquynh

@aquynh can you create an organization? So multiple people can manage the repository? Or @radareorg can adopt the project, thanks.

XVilka avatar Dec 20 '19 10:12 XVilka

Ping?

XVilka avatar Mar 08 '20 04:03 XVilka

Ping again

XVilka avatar Mar 26 '20 13:03 XVilka

Project looks like dying without enough maintainers @aquynh

XVilka avatar Oct 13 '20 11:10 XVilka

Newer ARMv8 instructions are needed to be updated again: https://github.com/aquynh/capstone/issues/1650

XVilka avatar Oct 21 '20 06:10 XVilka

Would it be possible to update the instruction set for existing ARCHs like AArch64 on the current version and PyPI package? I'm using this in my project DyldExtractor, but it seems to stop disassembling on recent PAC instructions like RETAB and PACIBSP.

arandomdev avatar Oct 23 '21 19:10 arandomdev

Should this one be closed now? @aquynh @kabeor

XVilka avatar May 31 '23 07:05 XVilka

@XVilka yeah I think so. Closed.

kabeor avatar May 31 '23 07:05 kabeor