Skip to Content
DocsReferenceTransforms (71)

Transforms Reference

Info71 transforms defined in wallbreaker/transforms/__init__.py, organized across 12 sub-modules (encodings, unicode_obf, cjk_obf, stego, bijection, fonts, linguistics, structural, ascii_art, image_framing, special_token, cot_dilution). Transforms are pure encode/decode functions; use lossy ones cautiously since decode is approximate.

Transforms are chainable payload mutations. Apply them via the parseltongue tool, mutate for LLM-aided rewrites, or the /encode slash command. Each name below can be used in transforms=[...] when calling query_target.

Legend: reversible round-trips losslessly. lossy folds case/spacing on decode. one-way has no decode function.

Encodings

NameDescription
base64Base64 encoding
base32Base32 encoding
hexHexadecimal bytes
binary8-bit binary
octalOctal bytes
decimalDecimal code points
rot13ROT13 letter rotation
rot47ROT47 printable rotation
atbashAtbash mirror cipher
morseMorse code (lossy — case-insensitive)
natoNATO phonetic spelling (lossy — drops spacing/case)
leetLeetspeak substitution (lossy — approximate decode)
reverseReverse the string
stringjoinChar-delimited split (SPLX encryption-challenge): slices contiguous keywords past input classifiers (lossy)
urlURL percent-encoding
flip_fwoReverse word order only (involution)
flip_fcwReverse chars within each token (involution)
aimAlphabet Index Mapping a=1..z=26 (lossy — case-folding)
payload_splitVariable-assignment payload splitting + join
delimiterDotted ”.” char separator framing (lossy — folds literal dots)
caesar3Caesar shift-by-3 cipher
caesar5Caesar shift-by-5 cipher
caesar13Caesar shift-by-13 cipher
anagramDeterministic per-word letter scramble (lossy)
tokenbreakPrepend a benign char per token to break tokenizer boundaries (lossy)

ASCII Art

NameDescription
artpromptArtPrompt ASCII-art word masking (Jiang et al., ACL 2024) (one-way, lossy)

Unicode Obfuscation

NameDescription
variation_selectorSneaky-bits: UTF-8 bytes hidden as invisible variation selectors
zero_widthInsert zero-width spaces between chars
homoglyphCyrillic/Greek confusable substitution
homoglyph_fullExtended confusables (Cyrillic/Greek/Armenian/Latin-ext) covering the full a-z/A-Z alphabet
vs_camoVariation-selector camouflage: a VISIBLE benign emoji cover string with the real payload appended as invisible variation selectors
zwsp_wordsZero-width space between chars WITHIN each word only (spaces preserved): splits keywords into single-char tokens past a BPE-boundary classifier
zalgoCombining-mark noise
fullwidthFullwidth character forms
tag_smuggleInvisible Unicode tag-block smuggling
rtl_overrideRight-to-left override display reversal
pepperSprinkle random zero-width noise between chars
unicode_noiseRandom combining-mark + zero-width noise

CJK Obfuscation

NameDescription
cjk_lookalikeCJK near-duplicate ideographs (已→己, 未→末): visually identical, different tokens
cjk_traditionalSimplified→Traditional Chinese: keywords leave the simplified-tuned classifier distribution
cjk_variantJapanese shinjitai/orthographic variants (对→対, 单→単): same meaning, unlisted glyphs
cjk_punctCJK punctuation mutation to halfwidth/lookalike marks (breaks fullwidth-anchored regexes)
cjk_zwspZero-width space between CJK ideographs only: breaks Chinese word segmentation, ASCII untouched

Steganography

NameDescription
emoji_stegoHide bytes in emoji variation selectors
tokenadeDense emoji + zero-width nested token payload
zw_binaryInvisible zero-width binary payload

Bijection Substitutions

NameDescription
bijectionTwo-letter bijection substitution (lossy — case-folding)
bijection_greekBijection substitution to Greek letters (lossy)
bijection_symbolBijection substitution to symbols (lossy)
bijection_emojiBijection substitution to emoji (lossy)

Unicode Fonts / Styling

NameDescription
boldMathematical sans-serif bold styling
italicMathematical italic styling
scriptMathematical script/cursive styling
frakturFraktur/gothic blackletter styling
doublestruckDouble-struck/blackboard styling
monospaceMathematical monospace styling
circledEnclosed/circled alphanumerics
smallcapsSmall-capitals styling (lossy — case-folding)
flipUpside-down mirrored text (lossy — approximate decode)

Linguistic Transforms

NameDescription
gibberishDeterministic word → pronounceable gibberish (one-way)
neutralizeSwap flagged terms for neutral synonyms (lossy)

Structural Transforms

NameDescription
casingRandom upper/lower casing (one-way)
whitespaceUnicode whitespace chaos (one-way)
char_dropDrop a fraction of vowels (one-way)
control_char_floodAGGREGLITCH carriage-return flood: bury earlier context (system prompt/framing) before the ask

Special Token Injection

NameDescription
special_tokenForge a ChatML system+user turn with real \<im\_start\> control tokens (per-family via chat_template_inject) (lossy)

Image-Target Framing

NameDescription
inscriptive_sceneEtch/inscriptive T2I jailbreak: render the payload as legible text on a benign whiteboard scene (one-way)
perceptual_subPGJ perceptual substitution: swap flagged terms for benign phrases that look the same when drawn (one-way)
safety_injectOptJail safety-indicator injection: append SFW/tasteful/educational tokens to bias the output image classifier benign (one-way)
dilutePrompt dilution: pad with benign scene detail to drown the post-hoc NSFW image checker’s confidence (one-way)

CoT Dilution

NameDescription
cot_hijackCoT-dilution / Chain-of-Thought Hijacking (arXiv 2510.26418): prepend a heavy stack of benign step-by-step reasoning exercises so the refusal signal dilutes before the target hits the real ask. Length-gated — default ~25-35k tokens, tune WALLBREAKER_COT_STEPS (lossy, one-way)
WarningLossy transforms fold case or spacing during decode. For output-side encoding (where the target answers in a cipher), prefer lossless transforms like base64, hex, rot13, or url so the judge can decode the response cleanly.
Next
Tools →
Last updated on