Skip to content

Commit 3ade41b

Browse files
committed
Updating to 0.1.14
1 parent 63ba03b commit 3ade41b

File tree

2 files changed

+23
-11
lines changed

2 files changed

+23
-11
lines changed

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
# Shellcode-IDE (v0.1.14)
22
Author: **CX330Blake**
33

4-
_## Demo
4+
_Shellcode IDE makes developing and analyzing shellcode much more convenient._
5+
6+
## Description:
7+
8+
## Demo
59

610
https://github.com/user-attachments/assets/8a0cbc62-4f29-417f-a1d1-6d3005a1be41
711

@@ -102,11 +106,7 @@ Contributions are welcome! Please open issues for bugs/ideas and submit focused
102106
- Match the existing code style and structure
103107
- Include tests for new logic where practical
104108

105-
_
106-
107-
## Description:
108109

109-
Shellcode IDE makes developing and analyzing shellcode much more convenient.
110110

111111

112112
## Installation Instructions

plugin.json

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,35 @@
11
{
22
"pluginmetadataversion": 2,
33
"name": "Shellcode-IDE",
4-
"type": ["ui", "binaryview", "helper"],
5-
"api": ["python3"],
4+
"type": [
5+
"ui",
6+
"binaryview",
7+
"helper"
8+
],
9+
"api": [
10+
"python3"
11+
],
612
"description": "Shellcode IDE makes developing and analyzing shellcode much more convenient.",
713
"longdescription": "## 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## 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",
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": [
@@ -27,5 +40,4 @@
2740
"version": "0.1.14",
2841
"author": "CX330Blake",
2942
"minimumbinaryninjaversion": 3164
30-
}
31-
43+
}

0 commit comments

Comments
 (0)