https://github.com/blacktop/aarch64-cssc
AArch64 FEAT_CSSC support for IDA Pro (disassembler/Hex-Rays) and Ghidra
https://github.com/blacktop/aarch64-cssc
aarch64 arm64 cssc feat-cssc ghidra ghidra-plugin hex-rays hex-rays-decompiler ida-plugin idapython
Last synced: 8 days ago
JSON representation
AArch64 FEAT_CSSC support for IDA Pro (disassembler/Hex-Rays) and Ghidra
- Host: GitHub
- URL: https://github.com/blacktop/aarch64-cssc
- Owner: blacktop
- License: mit
- Created: 2025-09-18T23:49:36.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-09-20T17:41:00.000Z (9 months ago)
- Last Synced: 2025-11-10T12:06:31.852Z (8 months ago)
- Topics: aarch64, arm64, cssc, feat-cssc, ghidra, ghidra-plugin, hex-rays, hex-rays-decompiler, ida-plugin, idapython
- Language: Python
- Homepage:
- Size: 34.2 KB
- Stars: 19
- Watchers: 0
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# aarch64-cssc
AArch64 FEAT_CSSC instruction support for IDA Pro and Ghidra.
## Installation
### IDA Pro
```bash
# Install plugin
./plugins/ida/install.sh
# Development mode (symlinks for live editing)
IDA_PLUGIN_MODE=link ./plugins/ida/install.sh
# Custom IDA plugins directory
./plugins/ida/install.sh /path/to/ida/plugins
```
Restart IDA Pro after installation.
### Ghidra
```bash
# Install and rebuild language pack
GHIDRA_HOME=/path/to/ghidra ./plugins/ghidra/install.sh
# Skip SLEIGH rebuild (manual rebuild required)
GHIDRA_HOME=/path/to/ghidra ./plugins/ghidra/install.sh --skip-build
```
#### Use my macOS app *(shameless self-plug)*
Install nice stand-alone macOS app packaged version of Ghidra
```bash
brew install --cask blacktop/tap/ghidra-app
```
Install the lanuage extension
```bash
./plugins/ghidra/install.sh /Applications/Ghidra.app/Contents/Resources/ghidra
```
Re-import or reopen binaries in Ghidra after installation.
## Usage
### IDA Pro
The plugin auto-loads when opening AArch64 binaries. If needed, manually load via: Edit → Plugins → AArch64 CSSC
### Ghidra
Instructions are automatically recognized after installation. No manual activation required.
## Supported Instructions
### IDA Pro
- UMAX/UMIN (register, 32/64-bit)
- Hex-Rays decompiler intrinsics: `__cssc_umax`, `__cssc_umin`
### Ghidra
- ABS (register, 32/64-bit)
- CNT (register, 32/64-bit)
- CTZ (register, 32/64-bit)
- SMAX/SMIN (register, 32/64-bit)
- UMAX/UMIN (register, 32/64-bit)
- Decompiler intrinsics: `__cssc_abs`, `__cssc_cnt`, `__cssc_ctz`
- Min/max operations use conditional patterns recognized by the decompiler
## Adding Instructions
### IDA Pro
Edit `plugins/ida/aarch64_cssc.py` and add entries to `CSSC_INSTRUCTIONS` list.
### Ghidra
Edit `plugins/ghidra/sleigh/AARCH64_CSSC.sinc` following existing patterns.
## Reference
ARM instruction encodings: `arm-xml/isa_a64/ISA_A64_xml_A_profile-2025-06/`
## Credit
Shout out to dougall's [Apple AMX plugin](https://gist.github.com/dougallj/7a75a3be1ec69ca550e7c36dc75e0d6f)
## License
MIT Copyright (c) 2025 **blacktop**