SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
レッツゴー難読化シェル芸
たいちょー
みなさん#!bin/bash(こんにちはの意)
たいちょーです
@xztaityozx_001
⺟語はC#
Golangはじめました
家に帰れませんでした
今⽇のテーマ
難読化シェル芸
難読化シェル芸 #とは
kanata さん考案の 読めない シェル芸
内部的な動作の⼿続き内容・構造・データなどを⼈間が理解
しにくい、あるいはそのようになるよう加⼯されたシェル芸
のこと。-- A painter and a black catより
難読化シェル芸のちょっとした話
少し前に⾃分のブログにて書いた 超・記号オンリー難読化 の
ちょっとした話
難読化に必要なツールの1つ mt コマンドのバージョンが
違うという話
あまりにも違うので同じプロジェクトなのかどうかも疑
っている
他に気になってること
難読化シェル芸打ち込みにくい︕
打ち込みにくい
読めないことと引き換えに打ち込みにくくなった難読化シェ
ル芸
$ __=$(. 2>&1)
$ __=${__##*.}
$ ___=$(${__:7:1}${__:18:1} 2>&1)
$ ___=${___##*]}
$ ____=$(${___:14:1}${__:12:1}${__:2:1}${__:17:1}${__:18:1}${__:1:1}
$ ${____:30:1}${____:27:1}${__:18:1}${____:31:1}
2018年 7⽉ 3⽇ ⽕曜⽇ 10:11:47 JST
めっちゃつかれる
⾯倒なことは機械にやらせよう
というわけで出来ました。難読化ツール
GitHub : xztaityozx/nandokuka
nandokuka
コレまでいろいろ発⾒された難読化⼿法を⾊々試せる素敵ツール
Golang製
ガバガバ変換
対応難読化
ASCII難読化
base64難読化
echo使うやつ
gzip難読化
記号オンリー難読化
例 : ASCII難読化
⽂字列をASCIIコードに変換するベーシックな難読化
date => $'x64x61x74x65'
コレまでは xxd に通したりしてASCIIコードを⾒ていたので⾃
動化
$ nandokuka ascii <(echo date)
$'x64x61x74x65'
デコードも⽤意したけど echo するだけでいいのでいらない
$ echo $'x64x61x74x65'|nandokuka --decode ascii
date
例 : gzip難読化
コマンドを gzip して読めなくする難読化。頭おかしい
date => eval $(echo -n 1f8b08007ad13a5b00034b492
c4905007a379eaa04000000 |xxd -ps -r|gunzip)
オプション⾊々
$ echo date | nandokuka gzip #ほぼgzipコマンド
1f8b080033d23a5b00034b492c4905007a379eaa04000000
$ echo date | nandokuka gzip -e #実⾏できる感じにする
eval $(echo -n 1f8b08003..(略)..000|xxd -ps -r|gunzip)
$ echo 1f8b08003..(略)..000|nandokuka -d gzip #ほぼgunzip
date
例 : 記号オンリー難読化
コマンドを記号だけで表すヤバイやつ
date =>
${@:2$((1+2)):1}${@:2$((2+2*2)):1}${@:$((2*2*2-1)):1}${@:22:1}
何書いてあるのかわからん
$ echo date | nandokuka symbol
${@:2$((1+2)):1}${@:2$((2+2*2)):1}${@:$((2*2*2-1)):1}${@:22:1}
$ echo date | nandokuka symbol -p #必要なパーツも⼀緒に出せる
A=$(. 2>&1);A=${A##*.};
${A:1$((2*2*2+1)):1}${A:$((2+2)):1}${A:1$((2*2+2*2)):1}
-- {z..A};
${@:2$((1+2)):1}${@:2$((2+2*2)):1}${@:$((2*2*2-1)):1}${@:22:1}
例 : 記号オンリー難読化
超・記号オンリー難読化もできる
$ echo date | nandokuka symbol --super
${____:$((2+2))$((2+2)):1}
${__:$((2+2*2)):1}${__:1$((2*2+2*2)):1}${__:$((2+2)):1}
$ echo date | nandokuka symbol --super -p | bash
2018年 7⽉ 3⽇ ⽕曜⽇ 10:40:55 JST
ぷるりくして︕
シェル芸をパースしているわけじゃなくて、ただの置換ツー
ルなので、 eval しないとダメな場合がほとんど
shfmt というGo製のパーサーみたいなのがある
使い⽅わからん・・・
追加機能とかほしいのがアレば、PRとかIssueをなにとぞ
因みに
⽇常⽣活で使った回数は0です。虚しい

Más contenido relacionado

Más de xztaityozx

Más de xztaityozx (20)

呪符式高速詠唱シェル芸2
呪符式高速詠唱シェル芸2呪符式高速詠唱シェル芸2
呪符式高速詠唱シェル芸2
 
呪符式高速詠唱シェル芸
呪符式高速詠唱シェル芸呪符式高速詠唱シェル芸
呪符式高速詠唱シェル芸
 
surgeコマンド作りました
surgeコマンド作りましたsurgeコマンド作りました
surgeコマンド作りました
 
ナーベンシュタイン距離 ~グラフを添えて~
ナーベンシュタイン距離 ~グラフを添えて~ナーベンシュタイン距離 ~グラフを添えて~
ナーベンシュタイン距離 ~グラフを添えて~
 
あの、selのリベンジをさせてください
あの、selのリベンジをさせてくださいあの、selのリベンジをさせてください
あの、selのリベンジをさせてください
 
Owari version 2.0 をつくりました
Owari version 2.0 をつくりましたOwari version 2.0 をつくりました
Owari version 2.0 をつくりました
 
実績を達成しました!
実績を達成しました!実績を達成しました!
実績を達成しました!
 
ワタナBase59
ワタナBase59ワタナBase59
ワタナBase59
 
ocsとselってコマンド作ったわよ
ocsとselってコマンド作ったわよocsとselってコマンド作ったわよ
ocsとselってコマンド作ったわよ
 
ワタナベシェル
ワタナベシェルワタナベシェル
ワタナベシェル
 
柿と杮
柿と杮柿と杮
柿と杮
 
難読化PowerShell芸入門
難読化PowerShell芸入門難読化PowerShell芸入門
難読化PowerShell芸入門
 
シェル芸をドット絵にして思いを伝えよう!
シェル芸をドット絵にして思いを伝えよう!シェル芸をドット絵にして思いを伝えよう!
シェル芸をドット絵にして思いを伝えよう!
 
終わりを出力するコマンドつくった
終わりを出力するコマンドつくった終わりを出力するコマンドつくった
終わりを出力するコマンドつくった
 
ワタナベ難読化シェル芸
ワタナベ難読化シェル芸ワタナベ難読化シェル芸
ワタナベ難読化シェル芸
 
~/.bashrcを難読化しよう!
~/.bashrcを難読化しよう!~/.bashrcを難読化しよう!
~/.bashrcを難読化しよう!
 
CLIツール作るの楽しい
CLIツール作るの楽しいCLIツール作るの楽しい
CLIツール作るの楽しい
 
超・記号オンリー難読化シェル芸
超・記号オンリー難読化シェル芸超・記号オンリー難読化シェル芸
超・記号オンリー難読化シェル芸
 
部活でシェル芸がはやらない
部活でシェル芸がはやらない部活でシェル芸がはやらない
部活でシェル芸がはやらない
 
潜入工作任務用シェル芸
潜入工作任務用シェル芸潜入工作任務用シェル芸
潜入工作任務用シェル芸
 

レッツゴー難読化シェル芸