難読化シェル芸
- 4. シェル芸の例
拡張子を一括変更
ls ./*.txt | while read LINE; do mv $LINE
${LINE%.*}.bak; done
簡単なデータ集計
cat text.txt | sort | uniq -c | sort –r
できると非常に捗るので必修科目にすべき
Notes de l'éditeur
- シェル芸の定義はこうです
簡単に言うとコマンド入力一撃で何でもするということです
- 普通のシェル芸はこういうものです
ある拡張子のファイルを別の拡張子にするシェル芸や
テキストデータを集計するシェル芸です
これらレベルのことはできると非常に捗るので必修科目にすべきだと思います
- シェル芸にはいくつか種類があります
まずは普通のシェル芸
次にVimシェル芸
さらに危険シェル芸などです
- 危険シェル芸は決して試してはいけない禁忌のことです
例のようにシンプルだが試すと取り返しのつかないことになるシェル芸のことです
僕は1番上のやつをBoWにやって壊しました
- いままでのシェル芸は見ただけでだいたい何をしているのかがわかりましたが
今回お話しする難読化シェル芸では
コマンドを別のコマンドで置き換え、ぱっと見で何をしているかわからなくすることを目的にします
前述の危険シェル芸を隠ぺいするための軍事用シェル芸です
- まずは簡単な例です
少し知識がある人ならばすぐに機能が分かるでしょう。これでは隠ぺい率が低いといえます
少し隠ぺい率を上げた例を挙げます
実はこれらは三つともdateコマンドになります
- さらに今回ぼくは日本語base64難読化シェル芸について少し研究しました
コマンドは基本英数字です
これを日本語でシェル芸隠蔽率があがること間違いなしです
そこでBase64エンコードをつかって日本語と英数字の対応を取ります
- それが今回ぼくが3日ほど研究してきた日本語base64難読化シェル芸です
例えばこれ
実はこれはC演習などよく使ったあのコマンドです。なんだと思いますか
実はgccコマンドです
- 例えばらりるをbase64でエンコードするとこうなります
4文字目に注目するとアルファベット順になっていることがわかります
つまり日本語の組み合わせでコマンドが表現できます
- これを応用してdateコマンドを作ります
こうなります
これはそずねぞがそれぞれdateに対応するためです
- 何回かbase64をかませることで目的の文字列を取得します
IT業界では適当な変数などにhogeやfooをよく使いますがシェル芸界隈では代わりにうんこをよく使います
今回はこれにのっとってうんこをどうにか別のコマンドにします
Base64を3回挟んでみました
実行したのを見てもらう方が分かりやすいのでやります
- うんこという文字列がSLになりました
まさにこれは産業革命ではないでしょうか