Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e473f93326 |
1
.capstone.metadata
Normal file
1
.capstone.metadata
Normal file
@ -0,0 +1 @@
|
|||||||
|
c0dfa4f6236a4505916ce67d63b856bf806b0d83 SOURCES/capstone-4.0.2.tar.gz
|
||||||
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
|||||||
capstone-5.0.1.tar.gz
|
SOURCES/capstone-4.0.2.tar.gz
|
||||||
|
|||||||
@ -1,115 +0,0 @@
|
|||||||
From 4d90b137b4e75ce4f29d26b9a4cd9fcf2ffa06cd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Rot127 <45763064+Rot127@users.noreply.github.com>
|
|
||||||
Date: Mon, 29 Dec 2025 14:11:15 +0000
|
|
||||||
Subject: [PATCH] CVE v5 backports (#2835)
|
|
||||||
|
|
||||||
* Backport of 2c7797182a1618be12017d7d41e0b6581d5d529e to v5 branch.
|
|
||||||
|
|
||||||
* Check return value of cs_vsnprintf for negative values.
|
|
||||||
|
|
||||||
This prevents underflow of SStream.index.
|
|
||||||
This bug was reported by Github user Finder16.
|
|
||||||
|
|
||||||
* Add overflow check before adding cs_vsnprintf return value.
|
|
||||||
|
|
||||||
* Backport of cbef767ab33b82166d263895f24084b75b316df3 into v5.
|
|
||||||
|
|
||||||
The overflow was reported by Github user Finder16
|
|
||||||
---
|
|
||||||
SStream.c | 6 ++++++
|
|
||||||
SStream.h | 12 +++++++++++-
|
|
||||||
cs.c | 14 +++++++++-----
|
|
||||||
3 files changed, 26 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/SStream.c b/SStream.c
|
|
||||||
index 4a50a14cf9..1e4e37053e 100644
|
|
||||||
--- a/SStream.c
|
|
||||||
+++ b/SStream.c
|
|
||||||
@@ -33,6 +33,7 @@ void SStream_concat0(SStream *ss, const char *s)
|
|
||||||
#ifndef CAPSTONE_DIET
|
|
||||||
unsigned int len = (unsigned int) strlen(s);
|
|
||||||
|
|
||||||
+ SSTREAM_OVERFLOW_CHECK(ss, len);
|
|
||||||
memcpy(ss->buffer + ss->index, s, len);
|
|
||||||
ss->index += len;
|
|
||||||
ss->buffer[ss->index] = '\0';
|
|
||||||
@@ -42,6 +43,7 @@ void SStream_concat0(SStream *ss, const char *s)
|
|
||||||
void SStream_concat1(SStream *ss, const char c)
|
|
||||||
{
|
|
||||||
#ifndef CAPSTONE_DIET
|
|
||||||
+ SSTREAM_OVERFLOW_CHECK(ss, 1);
|
|
||||||
ss->buffer[ss->index] = c;
|
|
||||||
ss->index++;
|
|
||||||
ss->buffer[ss->index] = '\0';
|
|
||||||
@@ -57,6 +59,10 @@ void SStream_concat(SStream *ss, const char *fmt, ...)
|
|
||||||
va_start(ap, fmt);
|
|
||||||
ret = cs_vsnprintf(ss->buffer + ss->index, sizeof(ss->buffer) - (ss->index + 1), fmt, ap);
|
|
||||||
va_end(ap);
|
|
||||||
+ if (ret < 0) {
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ SSTREAM_OVERFLOW_CHECK(ss, ret);
|
|
||||||
ss->index += ret;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
diff --git a/SStream.h b/SStream.h
|
|
||||||
index e70a3141bf..a387ff2c17 100644
|
|
||||||
--- a/SStream.h
|
|
||||||
+++ b/SStream.h
|
|
||||||
@@ -6,8 +6,18 @@
|
|
||||||
|
|
||||||
#include "include/capstone/platform.h"
|
|
||||||
|
|
||||||
+#define SSTREAM_BUF_LEN 512
|
|
||||||
+
|
|
||||||
+#define SSTREAM_OVERFLOW_CHECK(OS, len) \
|
|
||||||
+ do { \
|
|
||||||
+ if (OS->index + len + 1 > SSTREAM_BUF_LEN) { \
|
|
||||||
+ fprintf(stderr, "Buffer overflow caught!\n"); \
|
|
||||||
+ return; \
|
|
||||||
+ } \
|
|
||||||
+ } while (0)
|
|
||||||
+
|
|
||||||
typedef struct SStream {
|
|
||||||
- char buffer[512];
|
|
||||||
+ char buffer[SSTREAM_BUF_LEN];
|
|
||||||
int index;
|
|
||||||
} SStream;
|
|
||||||
|
|
||||||
diff --git a/cs.c b/cs.c
|
|
||||||
index 1f790a1fd6..59243fd44d 100644
|
|
||||||
--- a/cs.c
|
|
||||||
+++ b/cs.c
|
|
||||||
@@ -976,10 +976,13 @@ size_t CAPSTONE_API cs_disasm(csh ud, const uint8_t *buffer, size_t size, uint64
|
|
||||||
skipdata_bytes = handle->skipdata_size;
|
|
||||||
|
|
||||||
// we have to skip some amount of data, depending on arch & mode
|
|
||||||
- insn_cache->id = 0; // invalid ID for this "data" instruction
|
|
||||||
+ // invalid ID for this "data" instruction
|
|
||||||
+ insn_cache->id = 0;
|
|
||||||
insn_cache->address = offset;
|
|
||||||
- insn_cache->size = (uint16_t)skipdata_bytes;
|
|
||||||
- memcpy(insn_cache->bytes, buffer, skipdata_bytes);
|
|
||||||
+ insn_cache->size = (uint16_t)MIN(
|
|
||||||
+ skipdata_bytes, sizeof(insn_cache->bytes));
|
|
||||||
+ memcpy(insn_cache->bytes, buffer,
|
|
||||||
+ MIN(skipdata_bytes, sizeof(insn_cache->bytes)));
|
|
||||||
#ifdef CAPSTONE_DIET
|
|
||||||
insn_cache->mnemonic[0] = '\0';
|
|
||||||
insn_cache->op_str[0] = '\0';
|
|
||||||
@@ -1181,12 +1184,13 @@ bool CAPSTONE_API cs_disasm_iter(csh ud, const uint8_t **code, size_t *size,
|
|
||||||
// we have to skip some amount of data, depending on arch & mode
|
|
||||||
insn->id = 0; // invalid ID for this "data" instruction
|
|
||||||
insn->address = *address;
|
|
||||||
- insn->size = (uint16_t)skipdata_bytes;
|
|
||||||
+ insn->size = (uint16_t)MIN(skipdata_bytes, sizeof(insn->bytes));
|
|
||||||
+ memcpy(insn->bytes, *code,
|
|
||||||
+ MIN(skipdata_bytes, sizeof(insn->bytes)));
|
|
||||||
#ifdef CAPSTONE_DIET
|
|
||||||
insn->mnemonic[0] = '\0';
|
|
||||||
insn->op_str[0] = '\0';
|
|
||||||
#else
|
|
||||||
- memcpy(insn->bytes, *code, skipdata_bytes);
|
|
||||||
strncpy(insn->mnemonic, handle->skipdata_setup.mnemonic,
|
|
||||||
sizeof(insn->mnemonic) - 1);
|
|
||||||
skipdata_opstr(insn->op_str, *code, skipdata_bytes);
|
|
||||||
82
SOURCES/CVE-2025-68114-capstone-4.x.patch
Normal file
82
SOURCES/CVE-2025-68114-capstone-4.x.patch
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
From: Jon Maloy <jmaloy@redhat.com>
|
||||||
|
Date: Thu, 12 Mar 2026
|
||||||
|
Subject: [PATCH] Fix CVE-2025-68114 and CVE-2025-67873
|
||||||
|
|
||||||
|
Backport of upstream commit 2c7797182a1618be12017d7d41e0b6581d5d529e
|
||||||
|
to capstone 4.x branch.
|
||||||
|
|
||||||
|
CVE-2025-68114: An unchecked vsnprintf return in SStream_concat lets
|
||||||
|
a malicious cs_opt_mem.vsnprintf drive SStream's index negative or
|
||||||
|
past the end, leading to a stack buffer underflow/overflow.
|
||||||
|
|
||||||
|
CVE-2025-67873: skipdata length is not bounds-checked, allowing a
|
||||||
|
user-provided skipdata callback to write more than 24 bytes into
|
||||||
|
cs_insn.bytes, causing a heap buffer overflow.
|
||||||
|
|
||||||
|
Resolves: CVE-2025-68114, CVE-2025-67873
|
||||||
|
---
|
||||||
|
diff -ruN a/cs.c b/cs.c
|
||||||
|
--- a/cs.c 2020-05-08 06:03:30.000000000 -0400
|
||||||
|
+++ b/cs.c 2026-03-12 20:39:00.815956322 -0400
|
||||||
|
@@ -918,8 +918,8 @@
|
||||||
|
// we have to skip some amount of data, depending on arch & mode
|
||||||
|
insn_cache->id = 0; // invalid ID for this "data" instruction
|
||||||
|
insn_cache->address = offset;
|
||||||
|
- insn_cache->size = (uint16_t)skipdata_bytes;
|
||||||
|
- memcpy(insn_cache->bytes, buffer, skipdata_bytes);
|
||||||
|
+ insn_cache->size = (uint16_t)(skipdata_bytes > sizeof(insn_cache->bytes) ? sizeof(insn_cache->bytes) : skipdata_bytes);
|
||||||
|
+ memcpy(insn_cache->bytes, buffer, skipdata_bytes > sizeof(insn_cache->bytes) ? sizeof(insn_cache->bytes) : skipdata_bytes);
|
||||||
|
#ifdef CAPSTONE_DIET
|
||||||
|
insn_cache->mnemonic[0] = '\0';
|
||||||
|
insn_cache->op_str[0] = '\0';
|
||||||
|
@@ -1128,12 +1128,12 @@
|
||||||
|
// we have to skip some amount of data, depending on arch & mode
|
||||||
|
insn->id = 0; // invalid ID for this "data" instruction
|
||||||
|
insn->address = *address;
|
||||||
|
- insn->size = (uint16_t)skipdata_bytes;
|
||||||
|
+ insn->size = (uint16_t)(skipdata_bytes > sizeof(insn->bytes) ? sizeof(insn->bytes) : skipdata_bytes);
|
||||||
|
#ifdef CAPSTONE_DIET
|
||||||
|
insn->mnemonic[0] = '\0';
|
||||||
|
insn->op_str[0] = '\0';
|
||||||
|
#else
|
||||||
|
- memcpy(insn->bytes, *code, skipdata_bytes);
|
||||||
|
+ memcpy(insn->bytes, *code, skipdata_bytes > sizeof(insn->bytes) ? sizeof(insn->bytes) : skipdata_bytes);
|
||||||
|
strncpy(insn->mnemonic, handle->skipdata_setup.mnemonic,
|
||||||
|
sizeof(insn->mnemonic) - 1);
|
||||||
|
skipdata_opstr(insn->op_str, *code, skipdata_bytes);
|
||||||
|
diff -ruN a/SStream.c b/SStream.c
|
||||||
|
--- a/SStream.c 2020-05-08 06:03:30.000000000 -0400
|
||||||
|
+++ b/SStream.c 2026-03-12 20:39:00.809664584 -0400
|
||||||
|
@@ -48,6 +48,10 @@
|
||||||
|
va_start(ap, fmt);
|
||||||
|
ret = cs_vsnprintf(ss->buffer + ss->index, sizeof(ss->buffer) - (ss->index + 1), fmt, ap);
|
||||||
|
va_end(ap);
|
||||||
|
+ if (ret < 0) {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ SSTREAM_OVERFLOW_CHECK(ss, ret);
|
||||||
|
ss->index += ret;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
diff -ruN a/SStream.h b/SStream.h
|
||||||
|
--- a/SStream.h 2020-05-08 06:03:30.000000000 -0400
|
||||||
|
+++ b/SStream.h 2026-03-12 20:39:00.808249452 -0400
|
||||||
|
@@ -8,9 +8,17 @@
|
||||||
|
|
||||||
|
typedef struct SStream {
|
||||||
|
char buffer[512];
|
||||||
|
- int index;
|
||||||
|
+ size_t index;
|
||||||
|
} SStream;
|
||||||
|
|
||||||
|
+#define SSTREAM_OVERFLOW_CHECK(ss, n) \
|
||||||
|
+ do { \
|
||||||
|
+ if ((ss)->index + (n) >= sizeof((ss)->buffer)) { \
|
||||||
|
+ return; \
|
||||||
|
+ } \
|
||||||
|
+ } while (0)
|
||||||
|
+
|
||||||
|
+
|
||||||
|
void SStream_Init(SStream *ss);
|
||||||
|
|
||||||
|
void SStream_concat(SStream *ss, const char *fmt, ...);
|
||||||
@ -1,46 +1,39 @@
|
|||||||
Name: capstone
|
Name: capstone
|
||||||
Version: 5.0.1
|
Version: 4.0.2
|
||||||
Release: 8%{?dist}
|
Release: 12%{?dist}
|
||||||
Summary: A lightweight multi-platform, multi-architecture disassembly framework
|
Summary: A lightweight multi-platform, multi-architecture disassembly framework
|
||||||
License: BSD-3-Clause AND BSD-4-Clause AND APSL-2.0 AND NCSA AND MIT
|
|
||||||
|
%global gituser aquynh
|
||||||
|
%global gitname capstone
|
||||||
|
# 4.0.2 release
|
||||||
|
%global commit 1d230532840a37ac032c6ab80128238fc930c6c1
|
||||||
|
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||||
|
|
||||||
|
License: BSD
|
||||||
URL: http://www.capstone-engine.org/
|
URL: http://www.capstone-engine.org/
|
||||||
VCS: https://github.com/capstone-engine/capstone/
|
VCS: https://github.com/aquynh/capstone/
|
||||||
# https://github.com/capstone-engine/capstone/releases
|
# https://github.com/aquynh/capstone/releases
|
||||||
|
# Source0: https://github.com/%%{gituser}/%%{gitname}/archive/%%{commit}/%%{name}-%%{version}-%%{shortcommit}.tar.gz
|
||||||
|
Source0: https://github.com/%{gituser}/%{gitname}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
||||||
|
|
||||||
|
# Test suite binary samples to be used for disassembly
|
||||||
|
# Source1:
|
||||||
|
|
||||||
|
# Fedora 29 makes python executable separate from python2 and python3. This patch makes
|
||||||
|
# it possible to specify PYTHON2 and PYTHON3 binary to be explicit that by "python" we mean "python2"
|
||||||
|
# Patch0: capstone-python.patch
|
||||||
|
|
||||||
|
# Upstream patch which fixes libcapstone.pc.
|
||||||
|
# See: https://github.com/aquynh/capstone/issues/1339
|
||||||
|
# Patch1: 0001-Fix-include-path-in-pkg-config-for-Makefile-too-1339.patch
|
||||||
|
|
||||||
|
# CVE-2025-68114: Check vsnprintf return value
|
||||||
|
Patch0: CVE-2025-68114-capstone-4.x.patch
|
||||||
|
|
||||||
%global common_desc %{expand:
|
%global common_desc %{expand:
|
||||||
Capstone is a disassembly framework with the target of becoming the ultimate
|
Capstone is a disassembly framework with the target of becoming the ultimate
|
||||||
disasm engine for binary analysis and reversing in the security community.}
|
disasm engine for binary analysis and reversing in the security community.}
|
||||||
|
|
||||||
|
|
||||||
%define _lto_cflags %{nil}
|
|
||||||
#%%global _hardened_build 1
|
|
||||||
|
|
||||||
%global gituser capstone-engine
|
|
||||||
%global gitname capstone
|
|
||||||
# 5.0.1 release
|
|
||||||
%global gitdate 20230823
|
|
||||||
%global commit 097c04d9413c59a58b00d4d1c8d5dc0ac158ffaa
|
|
||||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
|
||||||
|
|
||||||
# Source0: https://github.com/%%{gituser}/%%{gitname}/archive/%%{commit}/%%{name}-%%{version}-%%{shortcommit}.tar.gz
|
|
||||||
Source0: https://github.com/%{gituser}/%{gitname}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
|
||||||
|
|
||||||
# Manpage for cstool is missing in the package, add one generated by help2man
|
|
||||||
Source1: cstool.1
|
|
||||||
|
|
||||||
# modified to remove the GH CI modifications from this patch
|
|
||||||
# Patch: https://patch-diff.githubusercontent.com/raw/capstone-engine/capstone/pull/2099.patch
|
|
||||||
# Patch0: https://github.com/capstone-engine/capstone/pull/2099.patch#/capstone-5.0.1-cibuildwheel.patch
|
|
||||||
|
|
||||||
Patch0: capstone-5.0.1-platform.patch
|
|
||||||
|
|
||||||
# Ocaml binding is not using local path for the includes/links
|
|
||||||
Patch1: capstone-5.0.1-ocaml.patch
|
|
||||||
|
|
||||||
# CVE backports (CVE-2025-67873, CVE-2025-68114)
|
|
||||||
Patch2: 4d90b137b4e75ce4f29d26b9a4cd9fcf2ffa06cd.patch
|
|
||||||
|
|
||||||
|
|
||||||
# Build with python3 package by default
|
# Build with python3 package by default
|
||||||
%bcond_without python3
|
%bcond_without python3
|
||||||
|
|
||||||
@ -51,47 +44,29 @@ Patch2: 4d90b137b4e75ce4f29d26b9a4cd9fcf2ffa06cd.patch
|
|||||||
%bcond_without python2
|
%bcond_without python2
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# Build with java binding
|
|
||||||
%bcond_without java
|
|
||||||
|
|
||||||
# Build without ocaml binding - it is not ready to be distributed as ocaml shared library
|
|
||||||
%bcond_with ocaml
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%global srcname distribute
|
%global srcname distribute
|
||||||
|
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: make
|
BuildRequires: make
|
||||||
BuildRequires: git
|
BuildRequires: git
|
||||||
|
|
||||||
%if %{with java}
|
|
||||||
%ifarch %{java_arches}
|
|
||||||
BuildRequires: jna
|
BuildRequires: jna
|
||||||
BuildRequires: java-devel
|
BuildRequires: java-devel
|
||||||
%endif
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{with python2}
|
%if %{with python2}
|
||||||
BuildRequires: python2
|
BuildRequires: python2
|
||||||
BuildRequires: python2-devel
|
BuildRequires: python2-devel
|
||||||
BuildRequires: python2-pip
|
|
||||||
BuildRequires: python2-setuptools
|
BuildRequires: python2-setuptools
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{with python3}
|
%if %{with python3}
|
||||||
BuildRequires: python%{python3_pkgversion}
|
BuildRequires: python%{python3_pkgversion}
|
||||||
BuildRequires: python%{python3_pkgversion}-devel
|
BuildRequires: python%{python3_pkgversion}-devel
|
||||||
BuildRequires: python%{python3_pkgversion}-pip
|
|
||||||
BuildRequires: python%{python3_pkgversion}-setuptools
|
BuildRequires: python%{python3_pkgversion}-setuptools
|
||||||
BuildRequires: python%{python3_pkgversion}-wheel
|
|
||||||
BuildRequires: python%{python3_pkgversion}-pytest
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{with ocaml}
|
%global _hardened_build 1
|
||||||
BuildRequires: ocaml
|
|
||||||
BuildRequires: ocaml-ocamlbuild
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
%{common_desc}
|
%{common_desc}
|
||||||
@ -109,14 +84,13 @@ developing applications that use %{name}.
|
|||||||
|
|
||||||
%if %{with python2}
|
%if %{with python2}
|
||||||
%package -n python2-capstone
|
%package -n python2-capstone
|
||||||
BuildArch: noarch
|
|
||||||
%{?python_provide:%python_provide python2-capstone}
|
%{?python_provide:%python_provide python2-capstone}
|
||||||
# Remove before F30
|
# Remove before F30
|
||||||
# loading the libcapstone dynamically using ctypes, not tied to certain architecture
|
|
||||||
Provides: %{name}-python = %{version}-%{release}
|
Provides: %{name}-python = %{version}-%{release}
|
||||||
|
Provides: %{name}-python%{?_isa} = %{version}-%{release}
|
||||||
Obsoletes: %{name}-python < %{version}-%{release}
|
Obsoletes: %{name}-python < %{version}-%{release}
|
||||||
Summary: Python bindings for %{name}
|
Summary: Python bindings for %{name}
|
||||||
Requires: %{name} = %{version}-%{release}
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
%description -n python2-capstone
|
%description -n python2-capstone
|
||||||
%{common_desc}
|
%{common_desc}
|
||||||
@ -128,11 +102,11 @@ The python2-capstone package contains python bindings for %{name}.
|
|||||||
|
|
||||||
%if %{with python3}
|
%if %{with python3}
|
||||||
%package -n python%{python3_pkgversion}-capstone
|
%package -n python%{python3_pkgversion}-capstone
|
||||||
BuildArch: noarch
|
|
||||||
%{?python_provide:%python_provide python%{python3_pkgversion}-capstone}
|
%{?python_provide:%python_provide python%{python3_pkgversion}-capstone}
|
||||||
Provides: %{name}-python%{python3_pkgversion} = %{version}-%{release}
|
Provides: %{name}-python%{python3_pkgversion} = %{version}-%{release}
|
||||||
|
Provides: %{name}-python%{python3_pkgversion}%{?_isa} = %{version}-%{release}
|
||||||
Obsoletes: %{name}-python%{python3_pkgversion} < %{version}-%{release}
|
Obsoletes: %{name}-python%{python3_pkgversion} < %{version}-%{release}
|
||||||
Requires: %{name} = %{version}-%{release}
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
Summary: Python3 bindings for %{name}
|
Summary: Python3 bindings for %{name}
|
||||||
|
|
||||||
|
|
||||||
@ -143,8 +117,7 @@ The python%{python3_pkgversion}-capstone package contains python3 bindings for %
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
|
||||||
%if %{with java}
|
|
||||||
%ifarch %{java_arches}
|
|
||||||
%package java
|
%package java
|
||||||
Summary: Java bindings for %{name}
|
Summary: Java bindings for %{name}
|
||||||
Requires: %{name} = %{version}-%{release}
|
Requires: %{name} = %{version}-%{release}
|
||||||
@ -153,29 +126,13 @@ BuildArch: noarch
|
|||||||
%description java
|
%description java
|
||||||
%{common_desc}
|
%{common_desc}
|
||||||
The %{name}-java package contains java bindings for %{name}.
|
The %{name}-java package contains java bindings for %{name}.
|
||||||
%endif
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{with ocaml}
|
|
||||||
%package -n ocaml-%{name}
|
|
||||||
Summary: OCaml bindings for %{name}
|
|
||||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
||||||
|
|
||||||
%description -n ocaml-%{name}
|
|
||||||
%{common_desc}
|
|
||||||
The ocaml-%{name} package contains OCaml bindings for %{name}.
|
|
||||||
%endif
|
|
||||||
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
# autosetup -n %%{gitname}-%%{commit} -S git
|
# autosetup -n %%{gitname}-%%{commit} -S git
|
||||||
%autosetup -n %{gitname}-%{version} -p1
|
%autosetup -n %{gitname}-%{version} -S git
|
||||||
|
|
||||||
%if %{with python3}
|
|
||||||
pushd bindings/python
|
|
||||||
%pyproject_buildrequires
|
|
||||||
popd
|
|
||||||
%endif
|
|
||||||
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
@ -184,9 +141,11 @@ PREFIX="%{_prefix}" LIBDIRARCH="%{_lib}" INCDIR="%{_includedir}" \
|
|||||||
%make_build PYTHON2=%{__python2} PYTHON3=%{__python3}
|
%make_build PYTHON2=%{__python2} PYTHON3=%{__python3}
|
||||||
|
|
||||||
# Fix pkgconfig file
|
# Fix pkgconfig file
|
||||||
|
sed -i 's;%{buildroot};;' capstone.pc
|
||||||
grep -v archive capstone.pc > capstone.pc.tmp
|
grep -v archive capstone.pc > capstone.pc.tmp
|
||||||
mv capstone.pc.tmp capstone.pc
|
mv capstone.pc.tmp capstone.pc
|
||||||
|
|
||||||
|
|
||||||
# build python bindings
|
# build python bindings
|
||||||
pushd bindings/python
|
pushd bindings/python
|
||||||
|
|
||||||
@ -195,14 +154,11 @@ pushd bindings/python
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{with python3}
|
%if %{with python3}
|
||||||
# %%pyproject_wheel
|
|
||||||
%py3_build
|
%py3_build
|
||||||
%endif
|
%endif
|
||||||
popd
|
popd
|
||||||
|
|
||||||
%if %{with java}
|
# build java bindings needs some python
|
||||||
%ifarch %{java_arches}
|
|
||||||
# build java bindings needs some python runtime
|
|
||||||
pushd bindings/java
|
pushd bindings/java
|
||||||
%if %{with python3}
|
%if %{with python3}
|
||||||
%make_build PYTHON2=%{__python3} PYTHON3=%{__python3} CFLAGS="%{optflags}" # %{?_smp_mflags} parallel seems broken
|
%make_build PYTHON2=%{__python3} PYTHON3=%{__python3} CFLAGS="%{optflags}" # %{?_smp_mflags} parallel seems broken
|
||||||
@ -210,96 +166,46 @@ pushd bindings/java
|
|||||||
%make_build PYTHON2=%{__python2} PYTHON3=%{__python2} CFLAGS="%{optflags}" # %{?_smp_mflags} parallel seems broken
|
%make_build PYTHON2=%{__python2} PYTHON3=%{__python2} CFLAGS="%{optflags}" # %{?_smp_mflags} parallel seems broken
|
||||||
%endif
|
%endif
|
||||||
popd
|
popd
|
||||||
%endif
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{with ocaml}
|
|
||||||
pushd bindings/ocaml
|
|
||||||
# build ocaml bindings needs some python runtime
|
|
||||||
%if %{with python3}
|
|
||||||
%make_build PYTHON2=%{__python3} PYTHON3=%{__python3} CFLAGS="%{optflags}" -j1 # %{?_smp_mflags} parallel seems broken
|
|
||||||
%else
|
|
||||||
%make_build PYTHON2=%{__python2} PYTHON3=%{__python2} CFLAGS="%{optflags}" -j1 # %{?_smp_mflags} parallel seems broken
|
|
||||||
%endif
|
|
||||||
popd
|
|
||||||
%endif
|
|
||||||
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
DESTDIR=%{buildroot} PREFIX="%{_prefix}" LIBDIRARCH=%{_lib} \
|
DESTDIR=%{buildroot} PREFIX="%{_prefix}" LIBDIRARCH=%{_lib} \
|
||||||
INCDIR="%{_includedir}" make install
|
INCDIR="%{_includedir}" make install
|
||||||
|
|
||||||
# cleanup static libraries
|
|
||||||
find %{buildroot} -name '*.la' -exec rm -f {} ';'
|
find %{buildroot} -name '*.la' -exec rm -f {} ';'
|
||||||
find %{buildroot} -name '*.a' -exec rm -f {} ';'
|
find %{buildroot} -name '*.a' -exec rm -f {} ';'
|
||||||
|
|
||||||
# add the manpage
|
|
||||||
install -d -D %{buildroot}%{_mandir}/man1
|
|
||||||
install -p -m 644 -D %{SOURCE1} %{buildroot}%{_mandir}/man1/
|
|
||||||
|
|
||||||
|
|
||||||
# install python bindings
|
# install python bindings
|
||||||
pushd bindings/python
|
pushd bindings/python
|
||||||
%if %{with python2}
|
%if %{with python2}
|
||||||
%py2_install
|
%py2_install
|
||||||
|
|
||||||
# cleanup the install
|
|
||||||
rm -rf %{buildroot}%{python2_sitelib}/capstone/lib/libcapstone.a
|
|
||||||
rm -rf %{buildroot}%{python2_sitelib}/capstone/lib/libcapstone.so
|
|
||||||
rm -rf %{buildroot}%{python2_sitelib}/capstone/include/capstone
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{with python3}
|
%if %{with python3}
|
||||||
%py3_install
|
%py3_install
|
||||||
# %%pyproject_install
|
|
||||||
# %%pyproject_save_files capstone
|
|
||||||
|
|
||||||
# cleanup the install
|
|
||||||
rm -rf %{buildroot}%{python3_sitelib}/capstone/lib/libcapstone.a
|
|
||||||
rm -rf %{buildroot}%{python3_sitelib}/capstone/lib/libcapstone.so
|
|
||||||
rm -rf %{buildroot}%{python3_sitelib}/capstone/include/capstone
|
|
||||||
|
|
||||||
%endif
|
%endif
|
||||||
popd
|
popd
|
||||||
|
|
||||||
%if %{with java}
|
|
||||||
%ifarch %{java_arches}
|
|
||||||
# install java bindings
|
# install java bindings
|
||||||
install -D -p -m 0644 bindings/java/%{name}.jar %{buildroot}/%{_javadir}/%{name}.jar
|
install -D -p -m 0644 bindings/java/%{name}.jar %{buildroot}/%{_javadir}/%{name}.jar
|
||||||
%endif
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{with ocaml}
|
|
||||||
# install ocaml binding
|
|
||||||
%endif
|
|
||||||
|
|
||||||
|
|
||||||
%check
|
%check
|
||||||
# ln -s libcapstone.so.5 libcapstone.so
|
ln -s libcapstone.so.4 libcapstone.so
|
||||||
make check LD_LIBRARY_PATH="`pwd`"
|
make check LD_LIBRARY_PATH="`pwd`"
|
||||||
|
|
||||||
%if %{with python3}
|
|
||||||
pushd bindings/python
|
|
||||||
%pytest -sv -k "not testcb and not test_cs_disasm_quick"
|
|
||||||
popd
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{with ocaml}
|
|
||||||
pushd bindings/ocaml
|
|
||||||
make check LD_LIBRARY_PATH="`pwd`"
|
|
||||||
popd
|
|
||||||
%endif
|
|
||||||
|
|
||||||
|
|
||||||
%ldconfig_scriptlets
|
%ldconfig_scriptlets
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%license LICENSE.TXT LICENSE_LLVM.TXT
|
%license LICENSE.TXT LICENSE_LLVM.TXT
|
||||||
%doc CREDITS.TXT ChangeLog README.md SPONSORS.TXT
|
%doc CREDITS.TXT ChangeLog README.md SPONSORS.TXT
|
||||||
%{_libdir}/*.so.*
|
%{_libdir}/*.so.*
|
||||||
%{_bindir}/cstool
|
%{_bindir}/cstool
|
||||||
%{_mandir}/man1/cstool.1*
|
|
||||||
|
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
@ -308,6 +214,7 @@ popd
|
|||||||
%{_libdir}/pkgconfig/*
|
%{_libdir}/pkgconfig/*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%if %{with python2}
|
%if %{with python2}
|
||||||
%files -n python2-capstone
|
%files -n python2-capstone
|
||||||
%{python2_sitelib}/*egg-info
|
%{python2_sitelib}/*egg-info
|
||||||
@ -315,77 +222,29 @@ popd
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%if %{with python3}
|
%if %{with python3}
|
||||||
#%%files -n python%%{python3_pkgversion}-capstone -f %%{pyproject_files}
|
|
||||||
%files -n python%{python3_pkgversion}-capstone
|
%files -n python%{python3_pkgversion}-capstone
|
||||||
%{python3_sitelib}/capstone*
|
%{python3_sitelib}/*egg-info
|
||||||
|
%{python3_sitelib}/%{name}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
|
||||||
%if %{with java}
|
|
||||||
%ifarch %{java_arches}
|
|
||||||
%files java
|
%files java
|
||||||
%{_javadir}/
|
%{_javadir}/
|
||||||
%endif
|
|
||||||
%endif
|
|
||||||
|
|
||||||
|
|
||||||
%if %{with ocaml}
|
|
||||||
%files -n ocaml-%{name}
|
|
||||||
%endif
|
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Tue Apr 01 2026 Jon Maloy <jmaloy@redhat.com> - 5.0.1-8
|
* Thu Apr 2 2026 Jon Maloy <jmaloy@redhat.com> - 4.0.2-12
|
||||||
- Rebuild for rhel-10.2
|
- Rebuild for rhel-9.8
|
||||||
|
Resolves: RHEL-137760
|
||||||
|
|
||||||
* Fri Mar 13 2026 Jon Maloy <jmaloy@redhat.com> - 5.0.1-7
|
* Thu Mar 12 2026 Jon Maloy <jmaloy@redhat.com> - 4.0.2-11
|
||||||
- Fix CVE-2025-67873 (heap buffer overflow)
|
- Fix CVE-2025-68114 (memory corruption) and CVE-2025-67873 (heap buffer overflow)
|
||||||
Resolves: RHEL-141553
|
Resolves: RHEL-137760
|
||||||
- Fix CVE-2025-68114 (memory corruption)
|
|
||||||
Resolves: RHEL-137749
|
|
||||||
|
|
||||||
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 5.0.1-6
|
* Fri Sep 02 2022 Miroslav Rezanina <mrezanin@redhat.com> - 4.0.2-10
|
||||||
- Bump release for October 2024 mass rebuild:
|
- Import to CentOS 9 Stream / RHEL 9
|
||||||
Resolves: RHEL-64018
|
|
||||||
|
|
||||||
* Sat Sep 21 2024 Andrew Hughes <gnu.andrew@redhat.com> - 5.0.1-5
|
|
||||||
- Rebuilt with java-21-openjdk as default JDK:
|
|
||||||
https://issues.redhat.com/browse/RHEL-34597
|
|
||||||
|
|
||||||
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 5.0.1-4
|
|
||||||
- Bump release for June 2024 mass rebuild
|
|
||||||
|
|
||||||
* Tue Jan 23 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.0.1-3
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.0.1-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Sep 15 2023 Jonathan Wright <jonathan@almalinux.org> - 5.0.1-1
|
|
||||||
- Update to 5.0.1
|
|
||||||
|
|
||||||
* Wed Jul 19 2023 Jonathan Wright <jonathan@almalinux.org> - 5.0-1
|
|
||||||
- Modernize spec file using pyproject/wheel build
|
|
||||||
|
|
||||||
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.2-15
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
|
||||||
|
|
||||||
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 4.0.2-14
|
|
||||||
- Rebuilt for Python 3.12
|
|
||||||
|
|
||||||
* Fri Jan 27 2023 Michal Ambroz <rebus AT_ seznam.cz> - 4.0.2-13
|
|
||||||
- update the new github page
|
|
||||||
|
|
||||||
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.2-12
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.2-11
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
|
||||||
- drop java binding for platforms not in %%{java_arches}
|
|
||||||
|
|
||||||
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 4.0.2-10
|
|
||||||
- Rebuilt for Python 3.11
|
|
||||||
|
|
||||||
* Sat Feb 05 2022 Jiri Vanek <jvanek@redhat.com> - 4.0.2-9
|
* Sat Feb 05 2022 Jiri Vanek <jvanek@redhat.com> - 4.0.2-9
|
||||||
- Rebuilt for java-17-openjdk as system jdk
|
- Rebuilt for java-17-openjdk as system jdk
|
||||||
@ -1,12 +0,0 @@
|
|||||||
diff -ru capstone-5.0.1/bindings/ocaml/Makefile capstone-5.0.1.new/bindings/ocaml/Makefile
|
|
||||||
--- capstone-5.0.1/bindings/ocaml/Makefile 2023-08-22 18:03:55.000000000 +0200
|
|
||||||
+++ capstone-5.0.1.new/bindings/ocaml/Makefile 2023-11-12 10:28:45.320198200 +0100
|
|
||||||
@@ -2,7 +2,7 @@
|
|
||||||
# By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2015
|
|
||||||
|
|
||||||
LIB = capstone
|
|
||||||
-FLAGS = '-Wall -Wextra -Wwrite-strings'
|
|
||||||
+FLAGS = '-Wall -Wextra -Wwrite-strings -I ../../include -L ../../'
|
|
||||||
PYTHON2 ?= python
|
|
||||||
|
|
||||||
all: arm_const.cmxa arm64_const.cmxa m680x_const.cmxa mips_const.cmxa ppc_const.cmxa sparc_const.cmxa sysz_const.cmxa x86_const.cmxa xcore_const.cmxa arm.cmxa arm64.cmxa m680x.cmxa mips.cmxa ppc.cmxa x86.cmxa sparc.cmxa systemz.cmxa xcore.cmxa capstone.cmxa test_basic.cmx test_detail.cmx test_x86.cmx test_arm.cmx test_arm64.cmx test_mips.cmx test_ppc.cmx test_sparc.cmx test_systemz.cmx test_xcore.cmx test_m680x.cmx ocaml.o
|
|
||||||
@ -1,22 +0,0 @@
|
|||||||
diff -uNr capstone-5.0.orig/bindings/python/setup.py capstone-5.0/bindings/python/setup.py
|
|
||||||
--- capstone-5.0.orig/bindings/python/setup.py 2023-08-07 16:55:34.314825530 -0500
|
|
||||||
+++ capstone-5.0/bindings/python/setup.py 2023-08-07 21:06:59.182376477 -0500
|
|
||||||
@@ -201,15 +201,9 @@
|
|
||||||
idx = sys.argv.index('bdist_wheel') + 1
|
|
||||||
sys.argv.insert(idx, '--plat-name')
|
|
||||||
name = get_platform()
|
|
||||||
- if 'linux' in name:
|
|
||||||
- # linux_* platform tags are disallowed because the python ecosystem is fubar
|
|
||||||
- # linux builds should be built in the centos 5 vm for maximum compatibility
|
|
||||||
- # see https://github.com/pypa/manylinux
|
|
||||||
- # see also https://github.com/angr/angr-dev/blob/master/bdist.sh
|
|
||||||
- sys.argv.insert(idx + 1, 'manylinux1_' + platform.machine())
|
|
||||||
- else:
|
|
||||||
- # https://www.python.org/dev/peps/pep-0425/
|
|
||||||
- sys.argv.insert(idx + 1, name.replace('.', '_').replace('-', '_'))
|
|
||||||
+ pyversion = platform.python_version()
|
|
||||||
+ major_version, minor_version = map(int, pyversion.split('.')[:2])
|
|
||||||
+ sys.argv.insert(idx + 1, name.replace('.', '_').replace('-', '_') + "_" + str(major_version) + str(minor_version))
|
|
||||||
|
|
||||||
setup(
|
|
||||||
provides=['capstone'],
|
|
||||||
256
cstool.1
256
cstool.1
@ -1,256 +0,0 @@
|
|||||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
|
|
||||||
.TH CSTOOL "1" "November 2023" "Cstool for Capstone Disassembler Engine v5.0.1" "User Commands"
|
|
||||||
.SH NAME
|
|
||||||
Cstool \- manual page for Cstool for Capstone Disassembler Engine
|
|
||||||
.SH DESCRIPTION
|
|
||||||
Cstool for Capstone Disassembler Engine
|
|
||||||
.PP
|
|
||||||
Syntax: cstool [\-d|\-s|\-u|\-v] <arch+mode> <assembly\-hexstring> [start\-address\-in\-hex\-format]
|
|
||||||
.SS "The following <arch+mode> options are supported:"
|
|
||||||
.TP
|
|
||||||
x16
|
|
||||||
16\-bit mode (X86)
|
|
||||||
.TP
|
|
||||||
x32
|
|
||||||
32\-bit mode (X86)
|
|
||||||
.TP
|
|
||||||
x64
|
|
||||||
64\-bit mode (X86)
|
|
||||||
.TP
|
|
||||||
x16att
|
|
||||||
16\-bit mode (X86), syntax AT&T
|
|
||||||
.TP
|
|
||||||
x32att
|
|
||||||
32\-bit mode (X86), syntax AT&T
|
|
||||||
.TP
|
|
||||||
x64att
|
|
||||||
64\-bit mode (X86), syntax AT&T
|
|
||||||
.TP
|
|
||||||
arm
|
|
||||||
arm
|
|
||||||
.TP
|
|
||||||
armbe
|
|
||||||
arm + big endian
|
|
||||||
.TP
|
|
||||||
thumb
|
|
||||||
thumb mode
|
|
||||||
.TP
|
|
||||||
thumbbe
|
|
||||||
thumb + big endian
|
|
||||||
.TP
|
|
||||||
cortexm
|
|
||||||
thumb + cortex\-m extensions
|
|
||||||
.TP
|
|
||||||
armv8
|
|
||||||
arm v8
|
|
||||||
.TP
|
|
||||||
thumbv8
|
|
||||||
thumb v8
|
|
||||||
.TP
|
|
||||||
armv8be
|
|
||||||
arm v8 + big endian
|
|
||||||
.TP
|
|
||||||
thumbv8be
|
|
||||||
thumb v8 + big endian
|
|
||||||
.TP
|
|
||||||
arm64
|
|
||||||
aarch64 mode
|
|
||||||
.TP
|
|
||||||
arm64be
|
|
||||||
aarch64 + big endian
|
|
||||||
.TP
|
|
||||||
mips
|
|
||||||
mips32 + little endian
|
|
||||||
.TP
|
|
||||||
mipsbe
|
|
||||||
mips32 + big endian
|
|
||||||
.TP
|
|
||||||
mips64
|
|
||||||
mips64 + little endian
|
|
||||||
.TP
|
|
||||||
mips64be
|
|
||||||
mips64 + big endian
|
|
||||||
.TP
|
|
||||||
ppc32
|
|
||||||
ppc32 + little endian
|
|
||||||
.TP
|
|
||||||
ppc32be
|
|
||||||
ppc32 + big endian
|
|
||||||
.TP
|
|
||||||
ppc32qpx
|
|
||||||
ppc32 + qpx + little endian
|
|
||||||
.TP
|
|
||||||
ppc32beqpx
|
|
||||||
ppc32 + qpx + big endian
|
|
||||||
.TP
|
|
||||||
ppc32ps
|
|
||||||
ppc32 + ps + little endian
|
|
||||||
.TP
|
|
||||||
ppc32beps
|
|
||||||
ppc32 + ps + big endian
|
|
||||||
.TP
|
|
||||||
ppc64
|
|
||||||
ppc64 + little endian
|
|
||||||
.TP
|
|
||||||
ppc64be
|
|
||||||
ppc64 + big endian
|
|
||||||
.TP
|
|
||||||
ppc64qpx
|
|
||||||
ppc64 + qpx + little endian
|
|
||||||
.TP
|
|
||||||
ppc64beqpx
|
|
||||||
ppc64 + qpx + big endian
|
|
||||||
.TP
|
|
||||||
sparc
|
|
||||||
sparc
|
|
||||||
.TP
|
|
||||||
systemz
|
|
||||||
systemz (s390x)
|
|
||||||
.TP
|
|
||||||
xcore
|
|
||||||
xcore
|
|
||||||
.TP
|
|
||||||
m68k
|
|
||||||
m68k + big endian
|
|
||||||
.TP
|
|
||||||
m68k40
|
|
||||||
m68k_040
|
|
||||||
.TP
|
|
||||||
tms320c64x
|
|
||||||
TMS320C64x
|
|
||||||
.TP
|
|
||||||
m6800
|
|
||||||
M6800/2
|
|
||||||
.TP
|
|
||||||
m6801
|
|
||||||
M6801/3
|
|
||||||
.TP
|
|
||||||
m6805
|
|
||||||
M6805
|
|
||||||
.TP
|
|
||||||
m6808
|
|
||||||
M68HC08
|
|
||||||
.TP
|
|
||||||
m6809
|
|
||||||
M6809
|
|
||||||
.TP
|
|
||||||
m6811
|
|
||||||
M68HC11
|
|
||||||
.TP
|
|
||||||
cpu12
|
|
||||||
M68HC12/HCS12
|
|
||||||
.TP
|
|
||||||
hd6301
|
|
||||||
HD6301/3
|
|
||||||
.TP
|
|
||||||
hd6309
|
|
||||||
HD6309
|
|
||||||
.TP
|
|
||||||
hcs08
|
|
||||||
HCS08
|
|
||||||
.TP
|
|
||||||
evm
|
|
||||||
Ethereum Virtual Machine
|
|
||||||
.TP
|
|
||||||
6502
|
|
||||||
MOS 6502
|
|
||||||
.TP
|
|
||||||
65c02
|
|
||||||
WDC 65c02
|
|
||||||
.TP
|
|
||||||
w65c02
|
|
||||||
WDC w65c02
|
|
||||||
.TP
|
|
||||||
65816
|
|
||||||
WDC 65816 (long m/x)
|
|
||||||
.TP
|
|
||||||
wasm:
|
|
||||||
Web Assembly
|
|
||||||
.TP
|
|
||||||
bpf
|
|
||||||
Classic BPF
|
|
||||||
.TP
|
|
||||||
bpfbe
|
|
||||||
Classic BPF + big endian
|
|
||||||
.TP
|
|
||||||
ebpf
|
|
||||||
Extended BPF
|
|
||||||
.TP
|
|
||||||
ebpfbe
|
|
||||||
Extended BPF + big endian
|
|
||||||
.TP
|
|
||||||
riscv32
|
|
||||||
riscv32
|
|
||||||
.TP
|
|
||||||
riscv64
|
|
||||||
riscv64
|
|
||||||
.TP
|
|
||||||
sh
|
|
||||||
superh SH1
|
|
||||||
.TP
|
|
||||||
sh2
|
|
||||||
superh SH2
|
|
||||||
.TP
|
|
||||||
sh2e
|
|
||||||
superh SH2E
|
|
||||||
.TP
|
|
||||||
sh2dsp
|
|
||||||
superh SH2\-DSP
|
|
||||||
.TP
|
|
||||||
sh2a
|
|
||||||
superh SH2A
|
|
||||||
.TP
|
|
||||||
sh2afpu
|
|
||||||
superh SH2A\-FPU
|
|
||||||
.TP
|
|
||||||
sh3
|
|
||||||
superh SH3
|
|
||||||
.TP
|
|
||||||
sh3be
|
|
||||||
superh SH3 big endian
|
|
||||||
.TP
|
|
||||||
sh3e
|
|
||||||
superh SH3E
|
|
||||||
.TP
|
|
||||||
sh3ebe
|
|
||||||
superh SH3E big endian
|
|
||||||
.TP
|
|
||||||
sh3\-dsp
|
|
||||||
superh SH3\-DSP
|
|
||||||
.TP
|
|
||||||
sh3\-dspbe
|
|
||||||
superh SH3\-DSP big endian
|
|
||||||
.TP
|
|
||||||
sh4
|
|
||||||
superh SH4
|
|
||||||
.TP
|
|
||||||
sh4be
|
|
||||||
superh SH4 big endian
|
|
||||||
.TP
|
|
||||||
sh4a
|
|
||||||
superh SH4A
|
|
||||||
.TP
|
|
||||||
sh4abe
|
|
||||||
superh SH4A big endian
|
|
||||||
.TP
|
|
||||||
sh4al\-dsp
|
|
||||||
superh SH4AL\-DSP
|
|
||||||
.IP
|
|
||||||
sh4al\-dspbe superh SH4AL\-DSP big endian
|
|
||||||
tc110 tricore V1.1
|
|
||||||
tc120 tricore V1.2
|
|
||||||
tc130 tricore V1.3
|
|
||||||
tc131 tricore V1.3.1
|
|
||||||
tc160 tricore V1.6
|
|
||||||
tc161 tricore V1.6.1
|
|
||||||
tc162 tricore V1.6.2
|
|
||||||
.SS "Extra options:"
|
|
||||||
.HP
|
|
||||||
\fB\-d\fR show detailed information of the instructions
|
|
||||||
.HP
|
|
||||||
\fB\-s\fR decode in SKIPDATA mode
|
|
||||||
.HP
|
|
||||||
\fB\-u\fR show immediates as unsigned
|
|
||||||
.HP
|
|
||||||
\fB\-v\fR show version & Capstone core build info
|
|
||||||
.PP
|
|
||||||
Loading…
Reference in New Issue
Block a user