Upgrade to Pro — share decks privately, control downloads, hide ads and more …

horizon

MSR
October 26, 2019

 horizon

-(横線)難読化シェル芸

@第44回シェル芸勉強会 大阪サテライト (2019/10/26) のLT発表資料です。

MSR

October 26, 2019
Tweet

More Decks by MSR

Other Decks in Technology

Transcript

  1. 例 Usageを利⽤した難読化シェル芸 $ fujiaire --help | cut -b22,26 | sh

    解釈を広げると $ :() { :|:& }; : も難読化シェル芸の⼀種では︖ 6
  2. - (横線)たち - _ ー - ‐ ‑ ‒ –

    — ― ¯ ˉ ˍ̵̶̠ ̱ ̄̅͟͞ Unicodeのおかげで結構存在する 8
  3. -はいくつあるのか # ⽂字 CP 名称 1 - U+002D HYPHEN-MINUS 2

    _ U+005F LOW LINE 3 U+00AD SOFT HYPHEN 4 ¯ U+00AF MACRON 5 ˉ U+02C9 MODIFIER LETTER MACRON 6 ˗ U+02D7 MODIFIER LETTER MINUS SIGN 7 ̄ U+0304 COMBINING MACRON 8 ̅ U+0305 COMBINING OVERLINE 10
  4. # ⽂字 CP 名称 9 ̠ U+0320 COMBINING MINUS SIGN

    BELOW 10 ̱ U+0331 COMBINING MACRON BELOW 11 ̲ U+0332 COMBINING LOW LINE 12 ̵ U+0335 COMBINING SHORT STROKE OVERLAY 13 ̶ U+0336 COMBINING LONG STROKE OVERLAY 14 ͞ U+035E COMBINING DOUBLE MACRON 15 ͟ U+035F COMBINING DOUBLE MACRON BELOW 16 ߺ U+07FA NKO LAJANYALAN 11
  5. # ⽂ 字 CP 名称 17 ᅳ U+1173 HANGUL JUNGSEONG

    EU 18 ᎗ U+1397 ETHIOPIC TONAL MARK HIDET 19 ᐨ U+1428 CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE 20 U+1680 OGHAM SPACE MARK 21 ᠆ U+1806 MONGOLIAN TODO SOFT HYPHEN 22 ᠊ U+180A MONGOLIAN NIRUGU 23 - U+2010 HYPHEN 24 - U+2011 NON-BREAKING HYPHEN 12
  6. ⽂ 字 CP 名称 25 ‒ U+2012 FIGURE DASH 26

    – U+2013 EN DASH 27 — U+2014 EM DASH 28 ― U+2015 HORIZONTAL BAR 29 ‾ U+203E OVERLINE 30 ⁃ U+2043 HYPHEN BULLET 31 ౼ U+0C7C TELUGU FRACTION DIGIT ONE FOR EVEN POWERS OF FOUR 32 ⁻ U+207B SUPERSCRIPT MINUS 13
  7. # ⽂字 CP 名称 33 ₋ U+208B SUBSCRIPT MINUS 34

    − U+2212 MINUS SIGN 35 ⎺ U+23BA HORIZONTAL SCAN LINE-1 36 ⎻ U+23BB HORIZONTAL SCAN LINE-3 37 ⎼ U+23BC HORIZONTAL SCAN LINE-7 38 ⎽ U+23BD HORIZONTAL SCAN LINE-9 39 ⏤ U+23E4 STRAIGHTNESS 40 ─ U+2500 BOX DRAWINGS LIGHT HORIZONTAL 14
  8. # ⽂字 CP 名称 41 ━ U+2501 BOX DRAWINGS HEAVY

    HORIZONTAL 42 ╴ U+2574 BOX DRAWINGS LIGHT LEFT 43 ╶ U+2576 BOX DRAWINGS LIGHT RIGHT 44 ╸ U+2578 BOX DRAWINGS HEAVY LEFT 45 ╺ U+257A BOX DRAWINGS HEAVY RIGHT 46 ▔ U+2594 UPPER ONE EIGHTH BLOCK 47 ⚊ U+268A MONOGRAM FOR YANG 48 Ⲻ U+2CBA COPTIC CAPITAL LETTER DIALECT-P NI 15
  9. # ⽂字 CP 名称 49 ⲻ U+2CBB COPTIC SMALL LETTER

    DIALECT-P NI 50 ⸏ U+2E0F PARAGRAPHOS 51 ⸻ U+2E3B THREE-EM DASH 52 ⼀ U+2F00 KANGXI RADICAL ONE 53 ー U+30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK 54 ㅡ U+3161 HANGUL LETTER EU 55 ㆒ U+3192 IDEOGRAPHIC ANNOTATION ONE MARK 56 ㇐ U+31D0 CJK STROKE H 16
  10. # ⽂ 字 CP 名称 57 ꣻ U+A8FB DEVANAGARI HEADSTROKE

    58 ﹘ U+FE58 SMALL EM DASH 59 ﹶ U+FE76 ARABIC FATHA ISOLATED FORM 60 ﹺ U+FE7A ARABIC KASRA ISOLATED FORM 61 - U+FF0D FULLWIDTH HYPHEN-MINUS 62 ー U+FF70 HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK 63 ᅳ U+FFDA HALFWIDTH HANGUL LETTER EU 64  ̄ U+FFE3 FULLWIDTH MACRON 17
  11. シェル芸 エンコード $ echo date | base64 | sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstu

    vwxyz0123456789+\//-_ ¯ˉ˗̵̶̠ ̱ ̲ ̄̅͟͞ߺᅳ᎗ᐨ ᠆᠊‐‑‒–—―‾⁃౼⁻₋−⎺⎻⎼⎽⏤─━╴╶╸╺▔⚊Ⲻⲻ⸏⸻⸻⸻⼀ーㅡ㆒㇐ ꣻ﹘ﹺﹶ-ーᅳ ̄/' –̄˗ー–ᅳ━= デコード $ echo –̄˗ー–ᅳ━= | base64 | sed 'y/-_ ¯ˉ˗̵̶̠ ̱ ̲ ̄̅͟͞ߺᅳ᎗ᐨ ᠆᠊‐‑‒–—―‾⁃౼⁻₋−⎺⎻⎼⎽⏤─━╴╶╸╺▔⚊ Ⲻⲻ⸏⸻⸻⸻⼀ーㅡ㆒㇐ꣻ﹘ﹺﹶ-ーᅳ ̄/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 0123456789+\//' date 21
  12. 問題点 ⼀部⽂字が正常にコピーペーストできない 1. sed: -e expression #1, char 240: 'y'

    コマンドに対する⽂字列の⻑さが異なり ます と表⽰されて実⾏できない 2. エンコードした結果をコピーペーストしてデコードしようとして もできない環境がある フォントによっては横線にならなかったり表⽰されない U+00AD (SOFT HYPHEN) U+FE76 (ARABIC FATHA ISOLATED FORM) など 22
  13. horizonコマンド作りました https://github.com/msr-i386/horizon $ horizon date –̄˗ー–ᅳ━= $ horizon date |

    horizon -d date ※エンコード結果をコピーペーストしてデコードする場合、うまく動作 しないことがあります 23