Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

ダブルシンク難読化シェル芸

4.147 Aufrufe

Veröffentlicht am

2017/10/07に開催された第31回シェル芸勉強会 大阪サテライトで発表したLT資料です

Veröffentlicht in: Ingenieurwesen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

ダブルシンク難読化シェル芸

  1. 1. ダブルシンク難読化シェル芸 たいちょー
  2. 2. みなさん#!/bin/bash(こんにちはの意) たいちょー Twitter : @xztaityozx_001 母語はC# 慢性鼻炎です アイコンステッカーあります
  3. 3. シェル芸 #とは シェル芸の定義バージョン1.1 マウスも使わず、ソースコードも残さず、 GUIツールを立ち上げる間もなく、 あらゆる調査・計算・テキスト処理を CLI端末へのコマンド入力一撃 で終わらすこと。あるいはそのときのコマンド入力 のこと。  上田ブログ(https://blog.ueda.tech/)より
  4. 4. 難読化シェル芸 #とは kanata氏考案のヤバいシェル芸 定義 内部的な動作の手続き内容・構造・データなどを人 間が理解しにくい、あるいはそのようになるよう加 工されたシェル芸のこと。 -- A painter and a black cat より
  5. 5. 昨今の難読化シェル芸事情 gunzipによる危険シェル芸の破壊的難読化 (前回の僕のLT:「破壊的難読化シェル芸」参照) でますます混沌を極めています
  6. 6. 昨今の難読化シェル芸事情 反社会勢力の危険シェル芸人と正義のシェル芸人 の戦争の終結に結び付く これまで危険シェル芸を援助してきた難読化シェル芸 が両者の戦争を止めるため動き出した 難読化シェル芸人が平和を願い考えられたのが
  7. 7. ダブルシンク難読化シェル芸
  8. 8. ダブルシンク #とは ジョージ・オーウェル著「1984年」に登場する 思考能力 相反し合う二つの意見を同時に持ち、それが矛盾し 合うのを承知しながら双方ともに信奉すること -- Wikipediaより
  9. 9. シェル芸における相反する二つの考えの例 うんこもりもり芸
  10. 10. ダブルシンク難読化シェル芸が見つかるまで これは僕が研究室で「進捗、進捗」とうめいて いた時のこと 「シェル芸って同じ文字結構出てくるなあ ハフマン符号化が有効では?」 おそらく疲れていた
  11. 11. ハフマン符号化 あるデータ中に よく出てくる文字には短いbit列を あんまり出てこない文字には長いbit列を それぞれ割り当てる圧縮符号化方式 いろんなところで使われている
  12. 12. 例えば AAAABBC Aが一番よく出てくるので 0 次にBなので 10 最後にCに 11 を割り当て AAAABBC → 0000101011
  13. 13. シェル芸でも有効なのでは パスやsedを書くだけで/(スラッシュ)が多くな る オプション関係で-(ハイフン)も増える コマンド自体もよく見るものが多い
  14. 14. (闇のようなものを)書いた GitHub : xztaityozx/shellhuffman これのencode.shを使うと 入力::(){ :|: &};: 出力 ひどいのが出てくる
  15. 15. 復号もできる さっきの結果をdecode.shを使って復号できる
  16. 16. 個人的には精一杯難読化したつもりだったが 割と元のコマンドがわかる
  17. 17. 割とわかる
  18. 18. ここで思い出してみましょう
  19. 19. 日本語base64難読化シェル芸 rm –rf / → にて -にた み
  20. 20. 僕のやる難読化は可読化だった? むしろ難読化と可読化の歩み寄りでは?
  21. 21. シェル芸における相反する二つの考え 難読性 可読性
  22. 22. 相反する二つの考えが受け入れ合う ダブルシンクとは 相反し合う二つの意見を同時に持ち、それが矛盾し 合うのを承知しながら双方ともに信奉すること でした
  23. 23. 可読性を受け入れた難読化シェル芸 それがダブルシンク難読化シェル芸の本質 発表している会場がアメリカにあるなら、ここで拍手と歓声が起こります
  24. 24. そろそろ頭がおかしい人だと思われるので この辺で終わりにします
  25. 25. ちなみに encode.shもdecode.shも 「ソースコードを残さない」 という掟を破っているのでシェル芸かどうかは 個人の裁量に任せることとなります

×