将 Shellcode 编码为看起来自然的英文散文。使用正确的句子和密码即可解码回来。
NØW(Natural Output Words,自然输出词)是一个 C 工具,可将原始 shellcode 字节转换为人类可读的英文文本——既可以是简单的码词列表,也可以是带有句子和段落的流畅自然散文。输出看起来像普通文章,而不是十六进制转储或 base64 片段。
每个字节值(0x00–0xFF)都映射到一个唯一单词,该单词派生自你提供的秘密句子。基于密码,流密码(RC4 或 AES-256-CTR)对字节到单词的映射进行洗牌。如果缺少句子和密码,编码后的文本就只是噪音。
在这里,shellcode 化为散文。
NØW 是一种基于单词的 shellcode 编码与混淆工具,可将原始 shellcode 字节转换为看似自然的英文散文。借助秘密句子、密码和流密码(RC4 或 AES-256-CTR),原始 shellcode 可被编码为可读文本,并可在之后通过逆向过程恢复。
旨在用于安全研究、恶意软件分析、红队实验和 CTF 开发。
Shellcode bytes
│
▼
Stream cipher (RC4 or AES-256-CTR) shuffles byte→word table
│
▼
Each byte → one codeword from your secret sentence (padded to 256 unique words)
│
▼
Optional: wrap in natural prose with connectors, punctuation, paragraph breaks
│
▼
Output text file (looks like an essay or paragraph)
解密则逆转该过程——它读取文本,去除标点和连接词,并将每个码词映射回其字节值。
上图中,我们使用 NØW 基于单词的 Shellcode 工具加密了一段 shellcode。原始 shellcode 首先使用所选的流密码(本例中为 RC4)和密码 "nirvana" 进行加密。加密后,每个加密字节被映射到预定义词池中的单词,从而生成一段看似自然的文本,而不是明显的 shellcode 字节。
生成的输出看起来像包含 hope、bottle、spiral、fog、ink 和 snow 等单词的普通散文。不过,这段文本并不打算作为有意义的段落来阅读。每个词代表一个加密字节值,单词序列保留了加密后的 shellcode 数据。
在解密时,该工具执行逆向过程:
这种技术将 shellcode 转换为人类可读的文本,使载荷看起来不像原始十六进制字节数组那样可疑,同时在提供正确密码和流密码设置时仍能重建原始 shellcode。
注意: 秘密句子中应仅使用英文单词。非英文字符(中文、日文、阿拉伯文、表情符号等)可能导致编码或解析问题,并可能破坏加密/解密过程。请使用标准英文 ASCII 文本以获得可靠结果。
Probably, laughed hope polishing, how most perhaps sleep would bottle, additionally, somewhere bottle, immediately bottle me spiral me time fog. Immediately, spiral animal certainly hope all by, previously do elsewhere hope perhaps ink fog, also hope ink, consequently fog? Door hope ink, meanwhile fog equally snow hope ink, recently room time hope get then immediately house, importantly house. Written all window hope all would, eventually vanished fire notably one he, elsewhere than?
Accordingly, roof snow me waves window, somewhere into me obviously now waves great, particularly ago fog. Nonetheless, me spiral hope ink, regardless fog snow consequently ink shore, fire moreover hope now birds, indirectly ink. Probably, peace floor bottle, everywhere bottle, everywhere bottle hope never would earth, white hope. Now birds time, ink hope door black, ink faded consequently snow.
About now birds moon animal, hope us window however me, currently ink similarly leaving floor. Regardless, hope now map written all window, hope all would vanished me waves? Probably, window into me furthermore now waves calm, there bucket basically horse ceiling star ceiling, dying. Furthermore, which evening pig because, bucket even word black ink!
Additionally, faded dying about now, however birds specifically used me, ink revolver hope, black ink originally faded, equally see. About now consequently birds certainly me ink two, floor particularly hope obviously now birds me. Word me word, my packed bag, me word me otherwise packed me, bag hope. Polishing father snow, me fog us, there word me packed, immediately bag hope everywhere ink.
Particularly, happy flower your, us, equally us, likewise us partly years about meanwhile fresh make, indirectly cat therefore just. Namely, not we just bottle, chiefly bottle me animal, about subsequently stone moreover to hope fish? Basically, father dawn nevertheless now, bottle, although bottle about stone prank, about but than, regardless bottle? Now home would lighthouse, immediately now go namely me until, similarly about indirectly stone.
Additionally, how ceiling stone horse, additionally me they ceiling make, its. Equally, fear us yellow chiefly ceiling stone a, old eventually now notably, whereas now eventually bottle, mainly bottle packed me. They mouse originally peace for, bottle us yellow, time, furthermore time written nowhere all window, written likewise all! Would hope us would hope stone, her hope.
Us would hope stone, alternatively waves me probably they moreover a, consequently get want there us, particularly yellow hope. Stone every currently something, notably or me word ceiling stone, great however hope stone, human me they indirectly angry. Prayer earth mostly one, nevertheless us yellow accordingly hope fish, staircase equally faded than bottle, obviously bottle about thinking leather? Buried bird bottle, chiefly bottle mainly, accordingly bottle, partly bottle, anywhere bottle moreover me perhaps time, me.
Time hope certainly stone, somewhere great your whereas, obviously your, originally your written all would. Something into packed me, time great partly laughed, regardless used every black, nonetheless dying until moreover now, somewhere now hope. Another black dying, similarly door previously stopped additionally bottle old, indeed hope stone. To animal time me time, particularly me time me.
Time about originally us, particularly would me time about, everywhere us dream meanwhile written initially stone, eventually waves ceiling meanwhile stone. Waves me they, chiefly sea whereas rocky washed leaf us, somewhere yellow hope. Mainly, all by hope us, containing ink dog, otherwise me they which. Rolled duck also, chiefly us yellow home most constant, war animal me, they found.
Long who what us yellow, hope polishing nowhere staircase? Look fire wall, indirectly he garden peace, differently waters there additionally bucket coming. Nevertheless, home ice notably have whereas room, sky something bottle packed, me stone cloud us. Importantly, yellow.
将加密文本与正确的密码(nirvana)和流密码(RC4)一起提供给工具。该工具会移除标点和格式,将每个单词转换回对应的字节值,重建加密字节流,然后解密以恢复原始 shellcode。
过程: Shellcode → 加密字节 → 单词 → 单词 → 加密字节 → 原始 Shellcode
注意:密码和流密码必须与加密时使用的值一致。任何不匹配都会导致解密结果错误或失败。
256 词码本,由你提供的任意句子构建,并自动使用常见英文单词填充
两种流密码,用于字节到单词的洗牌:
RC4 —— 跨平台,兼容 RC4ENC/RC4DECAES-256-CTR —— 仅限 Windows(通过 CryptoAPI),兼容 AESENC/AESDEC四种输出样式:
├── main.c # Entry point, main menu loop
├── menu.c / menu.h # Interactive CLI actions (encrypt, decrypt, help)
├── encrypt.c / .h # Shellcode → word encoding (plain + natural prose)
├── decrypt.c / .h # Word text → shellcode decoding
├── word_mapping.c/.h # Builds the 256-word codebook and byte↔word lookup tables
├── rc4.c / .h # RC4 stream cipher implementation
├── io.c / .h # File I/O, hex parsing, multi-line input
├── platform.c / .h # Platform-specific shellcode execution (Windows)
├── util.c / .h # String helpers (trim, clean tokens, etc.)
└── common.h # Shared constants, macros, and type definitions
.c 和 .h 文件添加到项目中。Ctrl + Shift + B)。要求:
建议:在 Windows 上使用 Visual Studio 构建。
运行二进制文件并按交互式菜单操作:
NØW v2.2 - Word-Based Shellcode Tool
RC4 or AES stream | Natural prose output
Main menu:
1. Encrypt shellcode -> words
2. Decrypt words -> shellcode
3. Help
4. Exit
RC4 或 AES-256-CTR).bin 文件.txt 文件.bin、.c 和 .hexplatform.c)仅限 Windows,需要在运行时获得用户的明确确认Medium : https://medium.com/@0xnirsec
| 级别 | 描述 |
|---|
| 0 — 纯列表 | 原始单词列表,无标点 |
| 1 — 轻度散文 | 较长的句子,最少的填充词 |
| 2 — 中度散文 | 平衡的段落(默认) |
| 3 — 重度散文 | 频繁使用连接词和分段 |
往返自检 —— 在保存前自动验证编码→解码是否生成完全相同的字节
多种输入格式 —— 直接粘贴十六进制字节或加载 .bin 文件
解密时多种输出格式 —— 保存为 .bin、.c(C 数组)和 .hex
可选 shellcode 执行(仅限 Windows) —— 通过 VirtualAlloc + CreateThread 在内存中运行解码后的 shellcode