関連サイト
本書の関連ページが用意されています。
内容紹介
ようこそ難読化シェル芸の世界へ!
Bashの機能を極限まで使い切る“難読化シェル芸”を解説するものです。
シェルはOSを操作するための最も基礎的なインタフェースです。このシェルに「芸」が加わります。様々な処理をワンライナーで終わらせる魔法は「シェル芸」と呼ばれ、多くのプログラマー・エンジニアに愛されています。さらにシェル芸に「難読化」を加え“黒魔術化”したものが難読化シェル芸となります。
人類は太古より「隠す」目的で、伝達すべき情報を暗号化したり難読化してきました。近年ではサイバーセキュリティ分野における解析のヒントとなることでしょう。本書によってコンピュータサイエンスを活用した「難読化の世界」に浸っていただき、難読化シェル芸を身につけていただけますと幸いです。
書誌情報
- 著者: kanata
- 発行日: 2019-04-12 (紙書籍版発行日: 2019-04-12)
- 最終更新日: 2019-04-12
- バージョン: 1.0.0
- ページ数: 152ページ(PDF版換算)
- 対応フォーマット: PDF
- 出版社: マイナビ出版
対象読者
著者について
kanata
青森県弘前市生まれ。シェル芸とCTFと温泉が好き。シェル芸を難読化することが趣味。
目次
1章 準備
- 1.1 環境
- 1.2 インストール
- 1.3 本書で使用するコマンド
- 1.4 bashの機能
- 1.5 コマンドの仕様を調べる
2章 シェル芸とは 難読化とは
- 2.1 Unix哲学
- 2.2 シェル芸の定義
- 2.3 シェル芸の使いどころ
- 2.4 簡単なシェル芸問題を解いてみましょう
- 2.5 難読化の定義
- 2.6 難読化の歴史
- 2.7 私と難読化の馴れそめ
3章 難読化シェル芸
- 3.1 難読化の基本
- 3.2 Base64によるエンコード
- 3.3 gzipによる圧縮
- 3.4 スペースを使わない
- 3.5 計算による文字の難読化
- 3.6 フェイク(無駄な命令)
- 3.7 フェイク(前半処理の無視)
- 3.8 ハッシュ値から必要な文字を得る
- 3.9 コマンドで同じ結果になる部分から文字を得る
- 3.10 システムが普遍的に抱えている不変な情報から文字を得る
- 3.11 パイプレス
- 3.12 Shift JIS文字コードのダメ文字を利用したパイプ難読化
- 3.13 awk芸によるコマンド機能の代替
- 3.14 sed芸によるコマンド機能の代替
- 3.15 Vimシェル芸による難読化
- 3.16 普通のコマンドの使い方をしない
- 3.17 古典暗号(ROT13)で難読化する
- 3.18 複合的に使って難読化する
- 3.19 補足:暗号化シェル芸
4章 日本語Base64難読化
- 4.1 原理
- 4.2 上級編1
- 4.3 上級編2
- 4.4 日本語base64難読化シェル芸の弱点
5章 Unicodeを応用した難読化
- 5.1 Unicode結合文字難読化シェル芸
- 5.2 Unicodeゼロ幅文字難読化シェル芸
6章 記号だけで作る難読化
- 6.1 経緯
- 6.2 基本原理
- 6.3 記号と1,2だけでアルファベットを得る
- 6.4 ブレース展開でアルファベット全部を得る
- 6.5 数字使っているところをなんとかする
- 6.6 調整して完成!
- 6.7 ほとんどアルファベットを使わない新方式
- 6.8 完全な記号のみを使う新方式
- 6.9 全く別のアプローチによる記号のみの難読化
- 6.10 美しく、そして短い記号の難読化
- 6.11 もっと短くなりました
7章 難読化シェル芸の解析と妨害
- 7.1 難読化シェル芸の解析 xオプションの利用
- 7.2 難読化シェル芸の解析 echoの利用
- 7.3 xオプションの検出
- 7.4 echoの検出
- 7.5 妨害工作
8章 shcに挑む
- 8.1 shc(Generic shell script compiler)とは
- 8.2 本当に強固か?
- 8.3 実験開始
- 8.4 実行結果
- 8.5 stringsによる調査
- 8.6 ps-elfによる調査
- 8.7 ltraceによる調査
- 8.8 straceによる調査
- 8.9 結果
- 8.10 その後