Skip to content

Commit 8b978a3

Browse files
committed
Updating to 0.1.11
1 parent 0905856 commit 8b978a3

File tree

2 files changed

+79
-18
lines changed

2 files changed

+79
-18
lines changed

README.md

Lines changed: 58 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
1-
# Shellcode-IDE
1+
# Shellcode-IDE (v0.1.11)
2+
Author: **CX330Blake**
23

3-
[![License](https://img.shields.io/github/license/CX330Blake/Shellcode-IDE)](LICENSE)
4-
[![Binary Ninja](https://img.shields.io/badge/Binary%20Ninja-v3164+-red)](https://binary.ninja/)
5-
[![Python](https://img.shields.io/badge/python-3.8+-blue)](https://www.python.org/)
4+
_## Demo
65

7-
> A Qt-based Binary Ninja plugin that helps you compose, analyze, optimize, validate, and export shellcode across architectures that Binary Ninja supports.
8-
9-
## Demo
10-
11-
<https://github.com/user-attachments/assets/8a0cbc62-4f29-417f-a1d1-6d3005a1be41>
6+
https://github.com/user-attachments/assets/8a0cbc62-4f29-417f-a1d1-6d3005a1be41
127

138
## What the project does
149

@@ -172,4 +167,57 @@ The plugin requires the following dependencies:
172167
173168
## License
174169
175-
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
170+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details._
171+
172+
## Description:
173+
174+
Shellcode IDE — makes developing and analyzing shellcode much more convenient.
175+
176+
177+
## Installation Instructions
178+
179+
### Darwin
180+
181+
macOS:
182+
cd "~/Library/Application Support/Binary Ninja/plugins"
183+
git clone https://github.com/CX330Blake/Shellcode-IDE Shellcode-IDE
184+
Restart Binary Ninja or use "Reload Plugins".
185+
186+
### Linux
187+
188+
Linux:
189+
cd ~/.binaryninja/plugins
190+
git clone https://github.com/CX330Blake/Shellcode-IDE Shellcode-IDE
191+
Restart Binary Ninja or use "Reload Plugins".
192+
193+
### Windows
194+
195+
Windows (PowerShell or CMD):
196+
cd "%APPDATA%\Binary Ninja\plugins"
197+
git clone https://github.com/CX330Blake/Shellcode-IDE Shellcode-IDE
198+
Restart Binary Ninja or use "Reload Plugins".
199+
200+
## Minimum Version
201+
202+
This plugin requires the following minimum version of Binary Ninja:
203+
204+
* 3164
205+
206+
207+
208+
## Required Dependencies
209+
210+
The following dependencies are required for this plugin:
211+
212+
* pip - pygments>=2.12, keystone-engine>=0.9.2
213+
* apt -
214+
* installers -
215+
* other - Requires Binary Ninja with Python API (licensed)., PySide2 is bundled with Binary Ninja; no extra install typically required.
216+
217+
218+
## License
219+
220+
This plugin is released under a MIT license.
221+
## Metadata Version
222+
223+
2

plugin.json

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,43 @@
11
{
22
"pluginmetadataversion": 2,
33
"name": "Shellcode-IDE",
4-
"type": ["ui", "binaryview", "helper"],
5-
"api": ["python3"],
6-
"description": "## Demo\n\nhttps://github.com/user-attachments/assets/8a0cbc62-4f29-417f-a1d1-6d3005a1be41\n\n## What the project does\n\nShellcode-IDE is a powerful Binary Ninja plugin designed for reverse engineers, CTF players, exploit developers, and security researchers. It provides a comprehensive environment for developing and analyzing shellcode with a user-friendly GUI that combines Binary Ninja's assembler/disassembler capabilities for rapid iteration and safe validation of shellcode.\n\n### Key Features\n\n- **Two-way conversion**: Raw bytes/hex ↔ assembly text\n- **Multi-architecture support**: Assemble for any Binary Ninja architecture/platform\n- **Multiple export formats**: Inline `\\x..`, raw hex, C stub, Python stub, Zig stub, Rust stub, Go stub\n- **Live metadata**: Byte length, instruction count, null count, endianness, architecture\n- **Configurable bad-pattern detection**: e.g., `00`, `0a`, `ff`, sequences, regex\n- **Peephole optimizations**: With preview/confirm (e.g., `push 0` → `xor reg, reg; push reg`)\n- **Validation rules**: No variables/labels, no absolute addresses/relocations, no nulls (unless allowed)\n- **Binary Ninja integration**: Menu + toolbar + dockable/floating Qt window with shortcuts\n\n## Why the project is useful\n\nShellcode-IDE streamlines the shellcode development workflow by providing:\n\n- **Rapid iteration**: Quickly test and validate shellcode snippets without external tools\n- **Architecture flexibility**: Work across different architectures with a single interface\n- **Safety checks**: Built-in validation prevents common shellcode issues like null bytes\n- **Optimization**: Improve your shellcode with intelligent peephole optimizations\n- **Multi-format export**: Generate code snippets for various programming languages\n- **Integration**: Seamlessly integrates into Binary Ninja's ecosystem\n\n## How users can get started\n\n### Prerequisites\n\n- Binary Ninja (licensed), with Python API available\n- Python 3.8+ (matching your Binary Ninja build)\n- Qt via PySide2 (Binary Ninja typically bundles PySide2; no manual install required)\n\n### Installation\n\nYou can install as a user plugin. The typical plugin directories are:\n\n- **macOS**: `~/Library/Application Support/Binary Ninja/plugins`\n- **Linux**: `~/.binaryninja/plugins`\n- **Windows**: `%APPDATA%\\Binary Ninja\\plugins`\n\n#### Manual Install\n\n1. Close Binary Ninja\n2. Clone or copy this repository into your plugins directory as `Shellcode-IDE`\n\n - **Example (macOS/Linux)**:\n\n ```bash\n cd \"~/Library/Application Support/Binary Ninja/plugins\" # macOS\n # or cd ~/.binaryninja/plugins # Linux\n git clone https://github.com/CX330Blake/Shellcode-IDE.git Shellcode-IDE\n ```\n\n3. Start Binary Ninja. The plugin registers a Tools menu entry and a toolbar icon\n\n#### Platform-specific Instructions\n\n**macOS**:\n\n```bash\ncd \"~/Library/Application Support/Binary Ninja/plugins\"\ngit clone https://github.com/CX330Blake/Shellcode-IDE Shellcode-IDE\n```\n\n**Linux**:\n\n```bash\ncd ~/.binaryninja/plugins\ngit clone https://github.com/CX330Blake/Shellcode-IDE Shellcode-IDE\n```\n\n**Windows (PowerShell)**:\n\n```powershell\ncd \"$env:APPDATA\\Binary Ninja\\plugins\"\ngit clone https://github.com/CX330Blake/Shellcode-IDE Shellcode-IDE\n```\n\nAfter installation, restart Binary Ninja or use \"Reload Plugins\".\n\n### Quick Start\n\n#### To disassemble bytes/hex to assembly\n\n1. Open Shellcode IDE from `Tools → Shellcode IDE` or toolbar icon\n2. Select target `Architecture`/`Platform` (defaults to active view when available)\n3. Paste hex/bytes into the \"Hex/Bytes\" tab (supports whitespace, `0x` prefixes, and `\\x..` forms)\n4. Click \"Disassemble\". View assembly in the output panel and stats in the status bar\n5. Export via the \"Formats\" tab (copy or save to file)\n\n#### To assemble assembly to shellcode\n\n1. Switch to the \"Assembly\" tab and enter one instruction per line\n2. Click \"Assemble\". Errors (if any) show inline with line/column info\n3. Review live stats, run \"Optimize\" (optional), \"Validate\", and export in your preferred format\n\n### Usage Examples\n\n**Basic Assembly:**\n\n```\nmov rax, 0x3b\nmov rdi, 0x68732f6e69622f\npush rdi\nmov rsi, rsp\nxor rdx, rdx\nsyscall\n```\n\n**Hex Input:**\n\n```\n90 90 48 c7 c0 3b 00 00 00 48 c7 c7 2f 62 69 6e 2f 73 68 57 48 89 e6 48 31 d2 0f 05\n```\n\nor\n\n```\n\\x90\\x90\\x48\\xc7\\xc0\\x3b\\x00\\x00\\x00\\x48\\xc7\\xc7\\x2f\\x62\\x69\\x6e\\x2f\\x73\\x68\\x57\\x48\\x89\\xe6\\x48\\x31\\xd2\\x0f\\x05\n```\n\n## Where users can get help\n\n- **Documentation**: Refer to the detailed information in this README\n- **Issues**: Report bugs or request features at [GitHub Issues](https://github.com/CX330Blake/Shellcode-IDE/issues)\n- **Binary Ninja Community**: Join the Binary Ninja community forums for plugin-related questions\n- **Source Code**: Browse the source code in this repository for implementation details\n\n## Who maintains and contributes\n\n### Maintainer\n\n- **CX330Blake** - Original author and current maintainer\n\n### Contributing\n\nContributions are welcome! Please open issues for bugs/ideas and submit focused PRs.\n\n#### Development Setup\n\n1. Clone the repository into your Binary Ninja plugins directory\n2. Install dependencies: `pip install -r requirements.txt`\n3. Restart Binary Ninja or use \"Reload Plugins\"\n\n#### For Developers\n\n- **Tech stack**: Python 3.8+, Binary Ninja Python API, PySide2\n- Keep changes minimal and scoped to the task\n- Match the existing code style and structure\n- Include tests for new logic where practical\n\n### Dependencies\n\nThe plugin requires the following dependencies:\n\n- `pygments>=2.12`\n- `keystone-engine>=0.9.2`\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.",
7-
"longdescription": "Shellcode IDE — makes developing and analyzing shellcode much more convenient.",
4+
"type": [
5+
"ui",
6+
"binaryview",
7+
"helper"
8+
],
9+
"api": [
10+
"python3"
11+
],
12+
"description": "## Demo\n\nhttps://github.com/user-attachments/assets/8a0cbc62-4f29-417f-a1d1-6d3005a1be41\n\n## What the project does\n\nShellcode-IDE is a powerful Binary Ninja plugin designed for reverse engineers, CTF players, exploit developers, and security researchers. It provides a comprehensive environment for developing and analyzing shellcode with a user-friendly GUI that combines Binary Ninja's assembler/disassembler capabilities for rapid iteration and safe validation of shellcode.\n\n### Key Features\n\n- **Two-way conversion**: Raw bytes/hex \u2194 assembly text\n- **Multi-architecture support**: Assemble for any Binary Ninja architecture/platform\n- **Multiple export formats**: Inline `\\x..`, raw hex, C stub, Python stub, Zig stub, Rust stub, Go stub\n- **Live metadata**: Byte length, instruction count, null count, endianness, architecture\n- **Configurable bad-pattern detection**: e.g., `00`, `0a`, `ff`, sequences, regex\n- **Peephole optimizations**: With preview/confirm (e.g., `push 0` \u2192 `xor reg, reg; push reg`)\n- **Validation rules**: No variables/labels, no absolute addresses/relocations, no nulls (unless allowed)\n- **Binary Ninja integration**: Menu + toolbar + dockable/floating Qt window with shortcuts\n\n## Why the project is useful\n\nShellcode-IDE streamlines the shellcode development workflow by providing:\n\n- **Rapid iteration**: Quickly test and validate shellcode snippets without external tools\n- **Architecture flexibility**: Work across different architectures with a single interface\n- **Safety checks**: Built-in validation prevents common shellcode issues like null bytes\n- **Optimization**: Improve your shellcode with intelligent peephole optimizations\n- **Multi-format export**: Generate code snippets for various programming languages\n- **Integration**: Seamlessly integrates into Binary Ninja's ecosystem\n\n## How users can get started\n\n### Prerequisites\n\n- Binary Ninja (licensed), with Python API available\n- Python 3.8+ (matching your Binary Ninja build)\n- Qt via PySide2 (Binary Ninja typically bundles PySide2; no manual install required)\n\n### Installation\n\nYou can install as a user plugin. The typical plugin directories are:\n\n- **macOS**: `~/Library/Application Support/Binary Ninja/plugins`\n- **Linux**: `~/.binaryninja/plugins`\n- **Windows**: `%APPDATA%\\Binary Ninja\\plugins`\n\n#### Manual Install\n\n1. Close Binary Ninja\n2. Clone or copy this repository into your plugins directory as `Shellcode-IDE`\n\n - **Example (macOS/Linux)**:\n\n ```bash\n cd \"~/Library/Application Support/Binary Ninja/plugins\" # macOS\n # or cd ~/.binaryninja/plugins # Linux\n git clone https://github.com/CX330Blake/Shellcode-IDE.git Shellcode-IDE\n ```\n\n3. Start Binary Ninja. The plugin registers a Tools menu entry and a toolbar icon\n\n#### Platform-specific Instructions\n\n**macOS**:\n\n```bash\ncd \"~/Library/Application Support/Binary Ninja/plugins\"\ngit clone https://github.com/CX330Blake/Shellcode-IDE Shellcode-IDE\n```\n\n**Linux**:\n\n```bash\ncd ~/.binaryninja/plugins\ngit clone https://github.com/CX330Blake/Shellcode-IDE Shellcode-IDE\n```\n\n**Windows (PowerShell)**:\n\n```powershell\ncd \"$env:APPDATA\\Binary Ninja\\plugins\"\ngit clone https://github.com/CX330Blake/Shellcode-IDE Shellcode-IDE\n```\n\nAfter installation, restart Binary Ninja or use \"Reload Plugins\".\n\n### Quick Start\n\n#### To disassemble bytes/hex to assembly\n\n1. Open Shellcode IDE from `Tools \u2192 Shellcode IDE` or toolbar icon\n2. Select target `Architecture`/`Platform` (defaults to active view when available)\n3. Paste hex/bytes into the \"Hex/Bytes\" tab (supports whitespace, `0x` prefixes, and `\\x..` forms)\n4. Click \"Disassemble\". View assembly in the output panel and stats in the status bar\n5. Export via the \"Formats\" tab (copy or save to file)\n\n#### To assemble assembly to shellcode\n\n1. Switch to the \"Assembly\" tab and enter one instruction per line\n2. Click \"Assemble\". Errors (if any) show inline with line/column info\n3. Review live stats, run \"Optimize\" (optional), \"Validate\", and export in your preferred format\n\n### Usage Examples\n\n**Basic Assembly:**\n\n```\nmov rax, 0x3b\nmov rdi, 0x68732f6e69622f\npush rdi\nmov rsi, rsp\nxor rdx, rdx\nsyscall\n```\n\n**Hex Input:**\n\n```\n90 90 48 c7 c0 3b 00 00 00 48 c7 c7 2f 62 69 6e 2f 73 68 57 48 89 e6 48 31 d2 0f 05\n```\n\nor\n\n```\n\\x90\\x90\\x48\\xc7\\xc0\\x3b\\x00\\x00\\x00\\x48\\xc7\\xc7\\x2f\\x62\\x69\\x6e\\x2f\\x73\\x68\\x57\\x48\\x89\\xe6\\x48\\x31\\xd2\\x0f\\x05\n```\n\n## Where users can get help\n\n- **Documentation**: Refer to the detailed information in this README\n- **Issues**: Report bugs or request features at [GitHub Issues](https://github.com/CX330Blake/Shellcode-IDE/issues)\n- **Binary Ninja Community**: Join the Binary Ninja community forums for plugin-related questions\n- **Source Code**: Browse the source code in this repository for implementation details\n\n## Who maintains and contributes\n\n### Maintainer\n\n- **CX330Blake** - Original author and current maintainer\n\n### Contributing\n\nContributions are welcome! Please open issues for bugs/ideas and submit focused PRs.\n\n#### Development Setup\n\n1. Clone the repository into your Binary Ninja plugins directory\n2. Install dependencies: `pip install -r requirements.txt`\n3. Restart Binary Ninja or use \"Reload Plugins\"\n\n#### For Developers\n\n- **Tech stack**: Python 3.8+, Binary Ninja Python API, PySide2\n- Keep changes minimal and scoped to the task\n- Match the existing code style and structure\n- Include tests for new logic where practical\n\n### Dependencies\n\nThe plugin requires the following dependencies:\n\n- `pygments>=2.12`\n- `keystone-engine>=0.9.2`\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.",
13+
"longdescription": "Shellcode IDE \u2014 makes developing and analyzing shellcode much more convenient.",
814
"license": {
915
"name": "MIT",
1016
"text": "Copyright (c) <year> <copyright holders>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
1117
},
12-
"platforms": ["Darwin", "Linux", "Windows"],
18+
"platforms": [
19+
"Darwin",
20+
"Linux",
21+
"Windows"
22+
],
1323
"installinstructions": {
1424
"Darwin": "macOS:\ncd \"~/Library/Application Support/Binary Ninja/plugins\"\ngit clone https://github.com/CX330Blake/Shellcode-IDE Shellcode-IDE\nRestart Binary Ninja or use \"Reload Plugins\".",
1525
"Linux": "Linux:\ncd ~/.binaryninja/plugins\ngit clone https://github.com/CX330Blake/Shellcode-IDE Shellcode-IDE\nRestart Binary Ninja or use \"Reload Plugins\".",
1626
"Windows": "Windows (PowerShell or CMD):\ncd \"%APPDATA%\\Binary Ninja\\plugins\"\ngit clone https://github.com/CX330Blake/Shellcode-IDE Shellcode-IDE\nRestart Binary Ninja or use \"Reload Plugins\"."
1727
},
1828
"dependencies": {
19-
"pip": ["pygments>=2.12", "keystone-engine>=0.9.2"],
29+
"pip": [
30+
"pygments>=2.12",
31+
"keystone-engine>=0.9.2"
32+
],
2033
"apt": [],
2134
"installers": [],
2235
"other": [
2336
"Requires Binary Ninja with Python API (licensed).",
2437
"PySide2 is bundled with Binary Ninja; no extra install typically required."
2538
]
2639
},
27-
"version": "0.1.10",
40+
"version": "0.1.11",
2841
"author": "CX330Blake",
2942
"minimumbinaryninjaversion": 3164
30-
}
43+
}

0 commit comments

Comments
 (0)