シェルコードを自然な英文散文としてエンコードします。正しい文章とパスワードがあれば、元にデコードできます。
NØW(Natural Output Words)は、生のシェルコードバイトを人間が読める英語テキストに変換するC言語製ツールです。コードワードの単純なリストか、文と段落からなる自然な英文散文のどちらかを出力できます。出力は、16進ダンプやbase64の塊ではなく、普通の文章のように見えます。
すべてのバイト値(0x00–0xFF)は、指定した秘密の文章から導出される一意の単語にマッピングされます。ストリーム暗号(RC4またはAES-256-CTR)が、パスワードに基づいてバイトと単語の対応をシャッフルします。文章とパスワードの両方がなければ、エンコードされたテキストは単なるノイズに過ぎません。
シェルコードが散文になるところ。
NØWは、生のシェルコードバイトを自然な英文散文に変換する、ワードベースのシェルコードエンコーディング/難読化ツールです。秘密の文章、パスワード、ストリーム暗号(RC4またはAES-256-CTR)を使用することで、元のシェルコードを読み取り可能なテキストにエンコードし、後で逆のプロセスによって復元できます。
用途は、セキュリティ研究、マルウェア解析、レッドチームの実験、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ワードベースのシェルコードツールを使ってシェルコードを暗号化しました。元のシェルコードはまず、選択したストリーム暗号(この例ではRC4)とパスワード "nirvana" を使って暗号化されています。暗号化後、各暗号化バイトは事前定義された単語プールから単語にマッピングされ、明らかなシェルコードバイトではなく自然なテキストのブロックが生成されます。
生成された出力は、hope、bottle、spiral、fog、ink、snow などの単語を含む普通の散文のように見えます。ただし、このテキストは意味のある段落として読むためのものではありません。各単語は暗号化されたバイト値を表しており、単語の並びは暗号化されたシェルコードデータを保持しています。
復号時、ツールは次の逆のプロセスを実行します。
この手法はシェルコードを人間が読めるテキストに変換し、生の16進バイト配列ほど疑わしく見えないペイロードを実現しつつ、正しいパスワードと暗号設定が提供されれば元のシェルコードを再構築できます。
注意: 秘密の文章には英語の単語のみを使用してください。英語以外の文字(中国語、日本語、アラビア語、絵文字など)はエンコードやパースの問題を引き起こし、暗号化/復号のプロセスを壊す可能性があります。確実な結果を得るには、標準的な英語の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)とともにツールに渡されます。ツールは句読点と書式を除去し、各単語を対応するバイト値に戻し、暗号化されたバイトストリームを再構築した後、復号して元のシェルコードを復元します。
プロセス: シェルコード → 暗号化バイト → 単語 → 単語 → 暗号化バイト → 元のシェルコード
注意: パスワードと暗号方式は、暗号化時に使用したものと一致している必要があります。一致しない場合、復号は誤った結果になるか失敗します。
256語のコードブック — 任意の文から生成され、一般的な英単語で自動的にパディングされます
2種類のストリーム暗号 — バイトと単語の対応をシャッフルします:
RC4 — クロスプラットフォーム、RC4ENC/RC4DECと互換AES-256-CTR — Windowsのみ(CryptoAPI経由)、AESENC/AESDECと互換4種類の出力スタイル:
├── 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、.hexとして保存されますplatform.c)はWindowsのみで、実行時にはユーザーの明示的な確認が必要ですMedium : https://medium.com/@0xnirsec
| レベル | 説明 |
|---|
| 0 — プレーン | 句読点なしの生の単語リスト |
| 1 — ライト散文 | より長い文、最小限のフィラー |
| 2 — ミディアム散文 | バランスの取れた段落(デフォルト) |
| 3 — ヘビー散文 | 接続詞と段落区切りを多用 |
ラウンドトリップ自己テスト — 保存前に、エンコード→デコードで完全に同じバイトが生成されることを自動検証します
複数の入力形式 — 16進バイトを直接貼り付けるか、.binファイルを読み込みます
復号時の複数の出力形式 — .bin、.c(C配列)、.hexを保存します
オプションのシェルコード実行(Windowsのみ) — VirtualAlloc + CreateThreadでデコードしたシェルコードをメモリ上で実行します