{"id":31230036,"url":"https://github.com/print3m/bytecaster","last_synced_at":"2026-03-07T23:08:16.168Z","repository":{"id":315752958,"uuid":"1058785939","full_name":"Print3M/ByteCaster","owner":"Print3M","description":"Swiss Army Knife for payload encryption, obfuscation, and conversion to byte arrays – all in a single command (14 output formats supported)! ☢️","archived":false,"fork":false,"pushed_at":"2025-09-20T13:08:55.000Z","size":10756,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-20T14:50:14.235Z","etag":null,"topics":["encryption-tool","golang","maldev","malware-builder","malware-development","obfuscation-script","redteam","security","security-tools","shellcode","shellcode-convert","shellcode-development","shellcode-encoder","shellcode-injection"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Print3M.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-17T14:45:28.000Z","updated_at":"2025-09-20T13:52:31.000Z","dependencies_parsed_at":"2025-09-20T15:07:01.286Z","dependency_job_id":null,"html_url":"https://github.com/Print3M/ByteCaster","commit_stats":null,"previous_names":["print3m/bytecaster"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Print3M/ByteCaster","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Print3M%2FByteCaster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Print3M%2FByteCaster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Print3M%2FByteCaster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Print3M%2FByteCaster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Print3M","download_url":"https://codeload.github.com/Print3M/ByteCaster/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Print3M%2FByteCaster/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276572125,"owners_count":25665909,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-23T02:00:09.130Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["encryption-tool","golang","maldev","malware-builder","malware-development","obfuscation-script","redteam","security","security-tools","shellcode","shellcode-convert","shellcode-development","shellcode-encoder","shellcode-injection"],"created_at":"2025-09-22T09:26:05.618Z","updated_at":"2025-09-23T12:11:08.659Z","avatar_url":"https://github.com/Print3M.png","language":"Go","readme":"# ByteCaster\n\nSwiss Army Knife for payload encryption, obfuscation, and conversion to byte arrays – all in a single command!\n\nIt supports 3 encryption algorithms, 4 encoding / obfuscation algorithms and 14 output formats.\n\n![ByteCaster order of opretaions](_img/img-1.png)\n\n## Installation\n\n[Download the compiled binary](https://github.com/Print3M/ByteCaster/releases/tag/1.0.0) or compile Go source code.\n\n## Usage\n\nExample:\n\n```bash\n# Convert .bin file into C bytes array with XOR encryption and IPv4Fuscation\n./ByteCaster -i shellcode.bin -f c -x xor -k 'Test123' -e ipv4\n\n# Convert .bin file into base64 string with XOR encryption\n./ByteCaster -i shellcode.bin -x xor -k 'Test123' -e base64\n```\n\n![ByteCaster demo](_img/img-2.png)\n\n\u003e **NOTE**: The sequence of operations is always the same:\n\u003e\n\u003e 1. Encryption\n\u003e 2. Encoding\n\u003e 3. Output formatting\n\n**`-i / --input \u003cpath\u003e`** [required]\n\nBinary input file.\n\n**`-f / --format \u003cvalue\u003e`** [optional, default: `raw`]\n\nOutput format of the processed data. This generates the final data as an array of bytes in the selected programming language. Output is always sent to STDOUT.\n\nTo avoid applying any formatting output, use the `raw` value (default).\n\nAvailable values: `raw`, `hex`, `c`, `go`, `powershell`, `php`, `js`, `rust`, `csharp`, `nim`, `zig`, `ruby`, `python`, `java`\n\n**`-x / --enc-alg \u003cvalue\u003e` + `-k / --enc-key \u003cstring\u003e`** [optional]\n\nData encryption. Both parameters, the encryption algorithm and the key string, must be provided.\n\nAvailabe values: `xor`, `aes256`, `rc4`\n\nAll supported encryption algorithms are described in details below.\n\n**`-e / --encoding \u003cvalue\u003e`** [optional]\n\nData encoding. Often used as obfuscation to confuse analysis or changes in the entropy level of data.\n\nAvailable values: `base32`, `base64`, `ipv4`, `mac`\n\nAll supported encoding algorithms are described in details below.\n\n## Supported encryption algorithms\n\n#### **`xor`** [0% overhead]\n\nTypical simple XOR encryption (`a^b`). Each byte is XORed with the byte from the key.\n\n#### **`aes256`** [28 bytes overhead]\n\nAES-256-GCM with the 32-bytes long key derived from SHA-256 hash function.\n\nCiphertext format: `nonce || ciphertext`. Nonce is stored in the first 12 bytes, followed by the encrypted data and authentication tag (the tag is appended automatically by GCM inside ciphertext).\n\nStandard Go implementation of AES encryption:`crypto/aes`\nStandard Go implementation of SHA-256 key derivation: `crypto/sha256`\n\n#### **`rc4`** [0% overhead]\n\nStandard Go implementation of RC4 encryption: `crypto/rc4`\n\n## Supported encoding algorithms\n\n#### **`base32`** [60–65% overhead]\n\nStandard Go implementation of Base32 encoding: `encoding/base32`\n\n#### **`base64`** [33%-37% overhead]\n\nStandard Go implementation of Base64 encoding: `encoding/base64`\n\n#### **`ipv4`** [100%-300% overhead]\n\nThis is known as the _IPv4Fuscation_ technique. Each output byte is converted to one octet in the IPv4 address as a decimal number.\n\nExample data:\n\n```text\n{ 0xe9, 0x36, 0x17, 0xbb, 0xbd, 0x7f, 0x22, 0x10 }\n```\n\nThe output (array of bytes) looks exactly like this in memory:\n\n`233.54.23.187\\0189.127.34.16\\0` ...\n\n\u003e NOTE:\n\u003e\n\u003e - Each IP address ends with a null byte!\n\u003e - If the number of bytes is not divisible by 4, the missing bytes added to the last IP address are 255.\n\n#### **`mac`** [200% overhead]\n\nThis is known as the _MACFuscation_ technique. Each output byte is converted to one octet in the MAC address as a hexadecimal number (lowercase).\n\nExample data:\n\n```text\n{ 0xe9, 0x36, 0x17, 0xbb, 0xbd, 0x7f, 0x22, 0x10, 0x84, 0xA7, 0x6f, 0xcc }\n```\n\nThe output (array of bytes) looks exactly like this in memory:\n\n`e9:36:17:bb:bd:7f\\022:10:84:a7:6f:cc\\0`\n\n\u003e NOTE:\n\u003e\n\u003e - Each MAC address ends with a null byte!\n\u003e - Hexadecimal numbers are lowercase.\n\u003e - If the number of bytes is not divisible by 6, the missing bytes added to the last MAC address are 255 (`ff`).\n\n## Credits\n\n- [HellShell](https://github.com/NUL0x4C/HellShell) - inspired me to implement _IPv4Fuscation_ and _MACFuscation_.\n\n## TODO\n\n- Add base32 encoding\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprint3m%2Fbytecaster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprint3m%2Fbytecaster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprint3m%2Fbytecaster/lists"}