News

jus共催 第42回BLACK HOLEシェル芸勉強会 に参加しました

Added by kanata about 1 month ago

jus共催 第42回BLACK HOLEシェル芸勉強会

今回も激しい

jus共催 第42回シェル芸勉強会リンク集 | 上田ブログ

null

【問題と解答】jus共催 第42回BLACK HOLEシェル芸勉強会 | 上田ブログ

null

jus共催 第42回BLACK HOLEシェル芸勉強会

2019年6月15日 さくらインターネットさんのセミナールーム + 松江、長崎、大阪のサテライト会場にて問題と解答:

なぜBLACK HOLEなのか

記念すべき第42回開催にちなんで、BLACK HOLEと命名したとのこと!

アトランチスの謎というファミコンのゲームがありました。懐かしい(?)ですね。スーパマリオで言う所の土管に入ると特定のステージにワープする事ができるのですが、42面がトラウマ級の鬼畜仕様で、残機を全部持って行かれる初見殺しステージを元に命名したとw
42面には、BLACK HOLEと書いてあります

生命、宇宙、そして万物についての究極の疑問の答えではないそうです。人によって"42"でいろいろ連想することが違いますね。

知見

awkに渡したコマンドを逐次再実行させるには

awk内でコマンドの実行結果を渡せますが、closeしておかないと初回実行の出力結果が使い回されます。

これだと、matsuyaは同じメニューしか出力してくれません。

$ seq 2 20 | factor |
awk 'NF==2{"matsuya" | getline a;print $1,a}NF!=2{print $1}' |
sed 's/:$//'

こうしてmatsuyaをcloseしないと再実行されないです

$ seq 2 20 | factor |
awk 'NF==2{"matsuya" | getline a;print $1,a;close("matsuya")}NF!=2{print $1}' |
sed 's/:$//'

textimgコマンド

シェル芸botで毎分使われているターミナルのスクリーンショットを撮ってくれるコマンド

次郎さん作成
https://github.com/jiro4989/textimg

上田さん改定本買うしかない

フルスクラッチから1日でCMSを作る シェルスクリプト高速開発手法入門 改訂2版 単行本 – 2019/6/28
https://amzn.to/31tfSzY

シェルスクリプトでCMSを作ってるすげーやつ

これはビックリ情報なんですが、上田ブログはなんとシェルスクリプトで動いていると…!
シェルスクリプトなのに速えぇー

ワイ昔cgiをシェルスクリプトで書いてたことがあったのですが、処理速度が課題でした。まったくそれを感じさせない速度で動いています。すごい。

LT

難daコレwww

なんだこれwww

難daコレ.pdf

難daコレ.pdf

記号で書く難読化シェル芸の系譜と、やべーやつの解析

ワイがLTしたやつ

新MarpをWSL上のDockerを使って試す

Added by kanata 2 months ago

electron製の旧Marpをずっと使わせて頂いております
この旧Marpなんですが、pdf出力時の画像が荒くなってしまう場合がありました
そんな訳で新Marpに期待しており、pdf化の際に画像がキレイに出るか確認してみました

Marpとは

旧Marp

  • electron製でどのプラットフォームでも動く
  • markdownで書いて、pdfで出力できる
  • 旧とはいえ、今でも現役。十二分に使える

新Marp

  • 現在開発中?electron製ではない
  • CUIで操作したり、WebUIがあったり、いろいろある
  • もちろんpdfも出るし、reveal.jsのような使い方もできる

今回試す環境

以下の流れでやっていきます。

  • Windows10のWSL(Windows Subsystem for Linux)にDockerを入れる
  • MarpのdockerイメージからCLIコマンドを呼び出してブラウザで表示
  • ブラウザからの印刷機能でpdf化する

試してみる

WSL(Windows Subsystem for Linux)のインストール

ググるといろいろ出てくるので省略
私はUbuntsu入れてます。これを試した時の環境は以下

$ cat /etc/issue
Ubuntu 18.04.2 LTS \n \l

Dockerのインストール

以下を参考にしましたが、現状だとちょっと異なる点があるので注意

Qiita - [2019年1月版]WSL + Ubuntu で Docker が動くっ!動くぞコイツッ!
https://qiita.com/koinori/items/78a946fc74452af9afba

$ sudo apt update && sudo apt upgrade -y
$ sudo apt install -y docker.io=17.12.1-ce
$ sudo usermod -aG docker $USER

2019.5.3現在、dockerのバージョンが18のやつはWSLでは動かない。WSLが対応していない機能があるらしい。
なので、バージョン指定で1つ前のバージョンを導入する。

いったんターミナルを閉じる。またWSLを立ち上げて

$ sudo cgroupfs-mount
$ sudo service docker start
$ docker version

docker versionの出力結果で server の項目が出てたらok

$ docker version
Client:
 Version:       17.12.1-ce
 API version:   1.35
 Go version:    go1.10.1
 Git commit:    7390fc6
 Built: Wed Apr 18 01:23:11 2018
 OS/Arch:       linux/amd64

Server:
 Engine:
  Version:      17.12.1-ce
  API version:  1.35 (minimum version 1.12)
  Go version:   go1.10.1
  Git commit:   7390fc6
  Built:        Wed Feb 28 17:46:05 2018
  OS/Arch:      linux/amd64
  Experimental: false

hello-world してみて動くことを確認する

$ docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

毎回実行することになるので…

sudo cgroupfs-mount と sudo service docker start は、立ち上げる度に必要らしいので、ShellScriptを作った

#!/bin/bash

# dockerの起動
sudo cgroupfs-mount && sudo service docker start
sudo service docker status
echo --------------------------------------------------
docker version
echo --------------------------------------------------
docker run hello-world

Marpのテーマダウンロード

デフォルトのテーマでもいいんですが、横に長い(1280pxx720px)です。
普通のやつ(960pxx720px)にしたいため、有志の方?GitHubが作ったテーマをダウンロードする

$ cd [今Markdownを書いているディレクトリ]
$ wget https://raw.githubusercontent.com/matsubara0507/marp-themes/master/themes/haskell.css

他の種類もあるのでお好みで

marp-cliでhtmlを生成

$ docker run --rm -v $PWD:/home/marp/app/ -e LANG=$LANG marpteam/marp-cli ./作ったファイル.md --theme haskell.css

marp-cliでserverモードを起動

$ cd [今Markdownを書いているディレクトリ]
docker run --rm -v $PWD:/home/marp/app/ -e LANG=$LANG -p 8080:8080 marpteam/marp-cli ./ --server  --theme haskell.css

実行後、ブラウザで、http://localhost:8080/ にアクセスするとスライドが見れる(reveal.jsみたい)

pdf化

あるにはあるけど、私のこの環境で実行するとエラーになってうまくいかない

$ docker run --rm -v $PWD:/home/marp/app/ -e LANG=$LANG marpteam/marp-cli ./作ったファイル.md --theme haskell.css  --allow-local-files

htmlかserverモードでChromeで表示した後、Chromeの印刷機能でpdf化すればキレイに出ました^

旧Marpとの非互換

  • 画像の%指定による拡大/縮小がなくなった → px指定になった
  • 画像の中央寄せができない → 今後に期待(テーマのCSSをいじればなんとかなるかもしれない)

中央寄せができるようになるといいな、旧Marpから乗り換えたい

参考

SECCON 令和CTF Writeup

Added by kanata 3 months ago

CTF Writeup SECCON 令和CTF

SECCON 令和CTFがありました。

SECCON 令和CTF

null

結果&感想

簡単に言うとダメだった。1問くらい…1問解きたかった悔しい…
以下、反省文

Misc 零は?

サーバにncで繋ぐと方程式が出てくるみんな大好き計算問題
100回計算が必要のようだ

$ nc zerois-o-reiwa.seccon.jp 23615
[1/100]
0=12-?
?=12
[2/100]
・
・
・

それで、作ったシェルスクリプトが以下
これ系問題は、昔作った類似問題のソルバを使い回しができて好き

方程式なのだけれど、正しい値を求めるためにxの値を1個ずつ増やす総当たり方式でつくった

これでいけそう…だと思ってた(実際、これで98問目までいった)


#!/bin/bash

exec 5<>/dev/tcp/153.120.18.15/23615

for I in {1..101}
do
  cat 0<&5>test.txt &
    sleep 3
    pkill cat
    Q=`cat test.txt|awk -F= '{print $2}'`
    echo Debug [${I}] $Q
    C=0
    while :
    do
      if [ 0 == `echo $Q|sed s/\?/$C/g |bc` ]
      then
        ANSWER=$C
        break
      fi
      : $((C++))
    done
    echo ${ANSWER} >&5
    echo Debug [${I}] $Q answer is $ANSWER
done

exit 0

ただ98問目…

[98] 17*53-23+23+60*92-59+38*34-19-63+39*5+71-67*75+39*4-97+72*24-60-80+41*8+81*40-3+33*84-16+7*5-28-96*78+48+12*89-45+77*74-29-80+75*37*56+51-43*33+78-25+86-38*59+4-58*65*7+19-49+26*45-25+67*9-90-83+12*99-33+4*88*64+2-31*32+79-87+77*25-50+56-4*28*28+8-82+33-18*26+41*5-58-8*35+79-4-?

これ、答えは 157961 なんだけど、総当たりで計算しているとタイムアップしちゃう。。
あぁこれシェルスクリプトの処理速度の限界かしらと思ってpythonで書き直そうとして無駄に時間を溶かしてしまった

よくよく考えると、最後が -? のパターンは総当たりすることなく自明なので、個別に処理を書けば回避できたと思う。惜しい。

Forensic 新元号発表

pdfが与えられて中身がこれ

20190430_forensic1.jpg

あぁ~伝統のQRコードが見えますねぇw

binwalkで調べる

$ binwalk newera.pdf

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             PDF document, version: "1.5"
523           0x20B           Zlib compressed data, default compression
1322          0x52A           Zlib compressed data, default compression
8552          0x2168          Zlib compressed data, default compression
9827          0x2663          JPEG image data, JFIF standard 1.01
9857          0x2681          TIFF image data, big-endian, offset of first image directory: 8
52646         0xCDA6          JPEG image data, JFIF standard 1.01
52676         0xCDC4          TIFF image data, big-endian, offset of first image directory: 8
65317         0xFF25          Zlib compressed data, default compression
65788         0x100FC         Zlib compressed data, default compression
78688         0x13360         Zlib compressed data, default compression

それで画像を取り出す(binwalk使って取り出そうとしたけど上手くいかなくて、めんどくせぇddだ!ってなった)

$ cat newera.pdf | dd bs=1 skip=9827 >1.jpg

20190430_forensic2.jpg

おー見えた見えた。中央が令和で白抜きされているけど右半分のデータ部は生きてそうだからこの状態でも読めるかなと思ってた

QRazyBoxで調べる

このWebサービを使えばQRコードが結構破損してても読めるよ!

20190430_forensic3.jpg

あぁ~微妙に…微妙にフラグが見える…でタイムアップ(眠みがすごい)

他の方のwriteupを見ると、白抜きされた令和を埋める画像が入っていたみたいだから、それを合成すればいける気がしますね。。

jus共催 第41回(中略)シェル芸勉強会 に参加しました

Added by kanata 3 months ago

jus共催 第41回{ウン,ガク,}{チ,ト,}{,ン}{,コイン}{ブ,}{ラブラ,ハ,}{,イブ}{無,有}罪シェル芸勉強会

このタイトルなんですが、bashとshufコマンドの機能で出力結果が変化します

$ shuf -n1 -e jus共催 第41回{ウン,ガク,}{チ,ト,}{,ン}{,コイン}{ブ,}{ラブラ,ハ,}{,イブ}{無,有}罪シェル芸勉強会
第41回ウンブハイブ無罪シェル芸勉強会
$ shuf -n1 -e jus共催 第41回{ウン,ガク,}{チ,ト,}{,ン}{,コイン}{ブ,}{ラブラ,ハ,}{,イブ}{無,有}罪シェル芸勉強会
第41回ウンンブハイブ有罪シェル芸勉強会
$ shuf -n1 -e jus共催 第41回{ウン,ガク,}{チ,ト,}{,ン}{,コイン}{ブ,}{ラブラ,ハ,}{,イブ}{無,有}罪シェル芸勉強会
第41回ガクチンコインブラブライブ有罪シェル芸勉強会
$ shuf -n1 -e jus共催 第41回{ウン,ガク,}{チ,ト,}{,ン}{,コイン}{ブ,}{ラブラ,ハ,}{,イブ}{無,有}罪シェル芸勉強会
第41回チンブイブ無罪シェル芸勉強会
$ shuf -n1 -e jus共催 第41回{ウン,ガク,}{チ,ト,}{,ン}{,コイン}{ブ,}{ラブラ,ハ,}{,イブ}{無,有}罪シェル芸勉強会
第41回ガクコインハ有罪シェル芸勉強会

今回は相対的に優しい問題だった(解けるとは言っていない)

【問題と解答】jus共催 第41回{ウン,ガク,}{チ,ト,}{,ン}{,コイン}{ブ,}{ラブラ,ハ,}{,イブ}{無,有}罪シェル芸勉強会 | 上田ブログ

null

jus共催 第41回{ウン,ガク,}{チ,ト,}{,ン}{,コイン}{ブ,}{ラブラ,ハ,}{,イブ}{無,有}罪シェル芸勉強会

2019年4月27日 さくらインターネットさんのセミナールームにて問題と解答例:

午前:鳥海さんの資料

一年間に及んだ文字コードは今回で終わり。せっかくなので、過去6回分を記載する
文字コードの高度な情報の宝庫
特にUnicode絵文字結合が狂おしいほど好き

https://umidori.github.io/shellgei-36th-am/
https://umidori.github.io/shellgei-37th-am/
https://umidori.github.io/shellgei-38th-am/
https://umidori.github.io/shellgei-39th-am/
https://umidori.github.io/shellgei-40th-am/
https://umidori.github.io/shellgei-41th-am/

知見

いろんな便利なコマンドがあってヤバイ

そして、ググると大抵blacknonさんのサイトが1位でヒットして神

numfmt

数字を人の読みやすいように加工する『numfmt』コマンド
https://orebibou.com/2015/11/%E6%95%B0%E5%AD%97%E3%82%92%E4%BA%BA%E3%81%AE%E8%AA%AD%E3%81%BF%E3%82%84%E3%81%99%E3%81%84%E3%82%88%E3%81%86%E3%81%AB%E5%8A%A0%E5%B7%A5%E3%81%99%E3%82%8B%E3%80%8Enumfmt%E3%80%8F%E3%82%B3%E3%83%9E/

uconv

uconvコマンドを使ってローマ字⇔ひらがな/カタカナ変換をする
https://orebibou.com/2018/02/uconv%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%83%AD%E3%83%BC%E3%83%9E%E5%AD%97%E2%87%94%E3%81%B2%E3%82%89%E3%81%8C%E3%81%AA-%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A/

numconv

numconv(1) - Linux man page
https://linux.die.net/man/1/numconv

多言語で表現された数値表現をニューメリックな表現に変換するコマンド

つまり、四もIVも4もⅣもこのコマンドを使うと 4 になる。
素晴らしい。。

LT

シェル芸でターミナルを動かす(CUIでのウィンドウ操作の仕方)

ぐりぐり動く

上田さんを圧縮

LTの現場では上田さんを限界を超えて圧縮したものをカラーパレットとして使用していた

ワイ、ネタかぶりwww

技術書典6に行って頒布シマシタワー

Added by kanata 3 months ago

どんどん規模が大きくなる技術書の同人誌販売イベント。
今回は頒布する側になりました。

20190415_gshoten.jpg

戦利品

20190415_shirt.jpg20190415_book.jpg

「Radare2で学ぶバイナリ解析入門」を書いたかんばやしさんと、非公式アフターで話したonotchさんとは同じ趣味(CTF)の話で大変盛り上がり、心の友となった(CTFあるある話超楽しいw)

そして、お気づきの人少なかったかもしれませんが、熱血バイナリアンTシャツも売っていました!(レア)
着るから!めっちゃ着るから!

難読化シェル芸の本

こ21 で頒布しておりました。

本を作る側の苦労と楽しさがよくわかった。
これは、端的に申し上げると最高であり、何が最高かというと語彙力不足でうまく表現できませんが、えーと、
ソフトウェアと同じで、何か作って喜んでくれる人がいると最高なんだけど、そういう人たちと(語彙力不足

  • 買ってくださった方本当にありがとうございました
  • 手にとってださったかた嬉しかったです(パラパラ見て、それでけっこう笑ってくれるのがたまらなく嬉しい)
  • 一部の方にはサインしましたが汚くてなんかちょっと申し訳なく、もっとシュッと書けるようになりたい
  • 引き続き販売しておりますので、気になりましたらサンプルなど眺めて頂ければと

技術書典これまでの変遷

ちなみに第一回から参加しておりました。記録がこれです。そびえ立つキマシタワー

回を追う毎に人が増えてるな~と思っていました。
ほら、初回は参加者が1400人、今回は一万人ですよ!ほんと終了時刻の17:00まで人がいっぱいでした。
この伸びだと三年後には10万人か

20190415_suii.png

その他

  • ipusironさんに挨拶して名刺もらったやったぜ(というかご本人が売りに来てるのかw)
  • auth屋さんはシェル芸人
  • におうコードの問題集のグランパさんの執筆環境最高(dockerで公開中)

ワイの書籍執筆は、こんな趣味を面白いと思ってくれる、みなさまのおかげでモチベーションが保てました。
この場を借りて御礼申し上げ奉り候えば、またいずこでお会いできる日を楽しみにしております。

ターミナルに画像を表示したい(難読化シェル芸本の表紙の秘密)

Added by kanata 3 months ago

難読化シェル芸の世界の表紙の秘密

20190407_nandoku-hyousi.png

表紙にあるネコの目は、みなさんがよく使うターミナルで表示しているものです。
teratermでもrloginでも画像が表示できるんです。

ターミナルに画像を表示する

ターミナルの黒い画面を使って、こんなことができます。
文字(背景)に色を着けて画像のように表現することができます。

20190321_screen1.png
20190321_screen2.png

文字に色をつける

エスケープシーケンスと呼ばれる特殊な文字を使うことで文字に色をつけることができます。
エスケープシーケンスは、ターミナルやエディタから入力する場合、通常の文字入力と違って比較的複雑な操作を伴います。
tputコマンドを用いると比較的簡単にエスケープシーケンスを出力できます。

文字の装飾は下表の通りです。

説明 tputでの出力方法
全ての属性をリセット tput sgr0
文字を太字に変更 tput bold
文字に下線 tput rmul
文字を点滅 tput blink
文字と背景色の反転 tput rev

文字への色付けもできます。環境に依存しますが、8色、または、256色が表現できます。
256色を順に表示するシェル芸を作りました。

まず、お使いのターミナルが256色を表示する設定になっていないかもしれません。
TERM環境変数で色数を制御してしているため、256色を表示できるように設定します。

$ export TERM='xterm-256color'

文字を256色分表示してみます。

$ for COLOR in {0..255};do echo -n "$(tput setaf $COLOR)";echo -n "$COLOR " ;done;tput sgr0;echo

20190321_screen3.png

同様に背景色も変更できます。

$ for COLOR in {0..255};do echo "$(tput setab $COLOR)";echo -n $COLOR ;done;tput sgr0;echo

20190321_screen4.png

ターミナルに画像を表示する

エスケープシーケンスで文字に色をつける方法はわかりました。
では、これで絵を描く…のは難しそうです。私は綺麗に描く自信がありません。

でもこれでドット絵作れますね!

画像を入力にして、変換できないでしょうか。

実は、そういったコマンドを作った方がいらっしゃいます。
いくつか種類がありますが、camというコマンドを使わせて頂きました。

camコマンド作った 〜 端末で画像を表示しよう
https://itchyny.hatenablog.com/entry/20130318/1363605537

インストール

製作者の案内に従ってインストールしましょう。

$ git clone https://github.com/itchyny/cam
$ cd ./cam
$ autoreconf -i
$ ./configure
$ make
$ sudo make install

使い方

画像ファイルを指定するだけです。

$ cam hoge.jpeg

画像形式によっては、以下のように表示され画像が表示されない場合があります。

$ cam fuga.jpg
cam: fuga.jpg: progressive jpeg

これは、jpeg形式のファイルにはベースラインとプログレッシブという2種類があり、camはプログレッシブのjpegに対応していないためです。

そこで、ImageMagicのconvertを使って、プログレッシブをベースラインに変換して表示してみます。
以下のようにシェル芸で実現できます。

$ cam <(convert fuga.jpg -interlace none /dev/stdout)

camの出力結果をシェル芸にする

さあ完成に近づいてきました。
camが導入されていない環境でも、シェル芸でこの画像を表示したいです。
camによって変換された後は、エスケープシーケンスを含んだ文字列なので圧縮した上でbase64エンコードにしてみましょう。
だいぶコンパクトになりました。
表示する際は、逆にbase64デコードした上でgunzipで伸長すると元に戻ります。
これでどこでも画像を表示できる難読化シェル芸になりました。

$ cam <(convert fuga.jpg  -interlace none /dev/stdout)|gzip -cf|base64
H4sIAJAxk1wAA+2cOW7kMBBF87lCJ3MEbXSr4cAH6Qs4mL5/OsAE00WgPljFRaTkn30YREui6rFW
+fb8WsKf23N63Z7b/hk+l3V+/aamph5VT69fY9wINTU1YaWmvoQmrMfo6a2XLa3l+iHun3oATVhb
6XkXekX6/tb31aA38fuTeq0Y+v77QE1YT6UjKIXXjLUF7pIDQHrxVdwnvfhJNGE9RAtvJ8F6bKXS
hrvBf+8yUF/77xg1Me2pkX8V7O37fxkW7a9tfK5B7yDrHmBfL64J6iFwikwyCaQuH0FHJ8K+BF+D
Jr7E9Go6QvPNGAhkBYReSCBgqq+GIbNFO7Hemf0S01H0Amqx3pAy8oteH/m+rnDRB0hD+nwX20Zu
yWczDkF/xMBS0oo9SCQDY11W/bHk7yJCGQyTyjz6dIPy4FRu692kHnGj4NsbGaCG0Pyhnn5D2AOh
7KPnVT3kR4DERZEvmwWhc7XwGq3PryDH8F7a6/5cMOddNxyPoYMSj6GuY7FaEy0WQiwaVXxEP0cO
S8k+zw7WbKHSPftIXmaZ1fY3NFLqpVFmiEWVGmRQ0mAnXcs10D1ZrqWXVXNnHwRSAjvbDj+c63ew
G5WOHNTzGcAaieniQ8pTpInx8xmxxbhtQ72pe88stEbUSFqlnsTNir390GR4uDYLpBjeXhDwvufF
9HxoQo8IcATvNW0EO7q+sLxN2Oa0AC3P813/nV23ZgFH1Q5IfNSIawM/qiOYlEF/QvRmk41hf19W
VolPVWwal8vYjfjSl+xxVgM2Erk8c41ohnQ6uh9VkIyOm1D8jOlHzHabepQA+T1VNjoWj9FrSY7T
FMdxqJABDEge+1UdB9JV3SRygfLaofis6fmEKEIfHsj+EMpIvxympNfQWw7zmo4cK7hDkGEhfUys
CoAUjjGoB1EAkYIlIF9TL8QzxJCcQ4pKtmM2WXpxqEf55RyWdwFlWIgA+RC37yES5o9CS/tv3/OM
CIqCZgOq6MACj/NwPFmaLUOO4m639J3L78Ni7sF/bG8e2inUAWhk49IpDzYUpEe0oEilU1bAU8nn
5g0G8aNP0psx2otFdXRtBADTEoRlBu1xDEPMARkIavwJipu49PqCBkq7OPdADsEIad3P+Uew78zM
xzU1lNfw982xFjFQsiat3Y7V9ZOG8+c+JIX6v4qyffXnObS6ScPXDnpuFBdjZ9+aKGP1ZbI27atw
wrzQHWIa4PL60Hyma8w5zcDhHM5lh9bfCCSm+wSboWdwGq3ntN3eSVn0W3XKcAYstAPREl5mBlDt
Cekmo9gPuc4S11ZS5gR4pYpoA0fw7Y0KRsbvJQ7HmOau2cF3gPFnNqOONTWQqKGyj4RYLwGNW4Su
CmP5s2V2JaNBAfO0azvS9Bs+ACRKytwRm1aZni+jGxg50nd9mRvTV0gkZfYmIsdjSieypKXG/QdE
jCO8f8pxoMrlC3zAXF4SqQObu3MXJeigjr6BejzSk16iyZNimqOuVCckUXYmdia/WX85Ge1LVKQz
WIm0KtipyapynARDampqwkpN/cM0YaWmPokmrNTUJ9GElZr6JJqwUlOfRP+DdXrdnl9L+P4LO26A
MTyMAAA=
$ echo -n H4sIAJAxk1wAA+2cOW7kMBBF87lCJ3MEbXSr4cAH6Qs4mL5/OsAE00WgPljFRaTkn30YREui6rFW+fb8WsKf23N63Z7b/hk+l3V+/aamph5VT69fY9wINTU1YaWmvoQmrMfo6a2XLa3l+iHun3oATVhb6XkXekX6/tb31aA38fuTeq0Y+v77QE1YT6UjKIXXjLUF7pIDQHrxVdwnvfhJNGE9RAtvJ8F6bKXShrvBf+8yUF/77xg1Me2pkX8V7O37fxkW7a9tfK5B7yDrHmBfL64J6iFwikwyCaQuH0FHJ8K+BF+DJr7E9Go6QvPNGAhkBYReSCBgqq+GIbNFO7Hemf0S01H0Amqx3pAy8oteH/m+rnDRB0hD+nwX20ZuyWczDkF/xMBS0oo9SCQDY11W/bHk7yJCGQyTyjz6dIPy4FRu692kHnGj4NsbGaCG0Pyhnn5D2AOh7KPnVT3kR4DERZEvmwWhc7XwGq3PryDH8F7a6/5cMOddNxyPoYMSj6GuY7FaEy0WQiwaVXxEP0cOS8k+zw7WbKHSPftIXmaZ1fY3NFLqpVFmiEWVGmRQ0mAnXcs10D1ZrqWXVXNnHwRSAjvbDj+c63ewG5WOHNTzGcAaieniQ8pTpInx8xmxxbhtQ72pe88stEbUSFqlnsTNir390GR4uDYLpBjeXhDwvufF9HxoQo8IcATvNW0EO7q+sLxN2Oa0AC3P813/nV23ZgFH1Q5IfNSIawM/qiOYlEF/QvRmk41hf19WVolPVWwal8vYjfjSl+xxVgM2Erk8c41ohnQ6uh9VkIyOm1D8jOlHzHabepQA+T1VNjoWj9FrSY7TFMdxqJABDEge+1UdB9JV3SRygfLaofis6fmEKEIfHsj+EMpIvxympNfQWw7zmo4cK7hDkGEhfUysCoAUjjGoB1EAkYIlIF9TL8QzxJCcQ4pKtmM2WXpxqEf55RyWdwFlWIgA+RC37yES5o9CS/tv3/OMCIqCZgOq6MACj/NwPFmaLUOO4m639J3L78Ni7sF/bG8e2inUAWhk49IpDzYUpEe0oEilU1bAU8nn5g0G8aNP0psx2otFdXRtBADTEoRlBu1xDEPMARkIavwJipu49PqCBkq7OPdADsEIad3P+Uew78zMxzU1lNfw982xFjFQsiat3Y7V9ZOG8+c+JIX6v4qyffXnObS6ScPXDnpuFBdjZ9+aKGP1ZbI27atwwrzQHWIa4PL60Hyma8w5zcDhHM5lh9bfCCSm+wSboWdwGq3ntN3eSVn0W3XKcAYstAPREl5mBlDtCekmo9gPuc4S11ZS5gR4pYpoA0fw7Y0KRsbvJQ7HmOau2cF3gPFnNqOONTWQqKGyj4RYLwGNW4SuCmP5s2V2JaNBAfO0azvS9Bs+ACRKytwRm1aZni+jGxg50nd9mRvTV0gkZfYmIsdjSieypKXG/QdEjCO8f8pxoMrlC3zAXF4SqQObu3MXJeigjr6BejzSk16iyZNimqOuVCckUXYmdia/WX85Ge1LVKQzWIm0KtipyapynARDampqwkpN/cM0YaWmPokmrNTUJ9GElZr6JJqwUlOfRP+DdXrdnl9L+P4LO26AMTyMAAA= |base64 -d|gunzip

20190321_screen5.png

難読化シェル芸の世界の中表紙も…

同じ方法で作っています。
実行したのは以下

$ echo H4sIAC3WWlwAA51X32vbMBB+918hJ3TxmKO+FMbSgUtXQiirnjLKGI0vJaN7Gexpj/7bZ+t0J50sJfaOYFmK9Om+704/rNRM02TFvGHvngIz9YzR+vFpZD9nTK9p0PdFb7v5Lrj570pqqPYIgU5A+gdjF1Yh6rVtevUAZ/zRT3/ATeWwlqXsgY05CLAaaqrWtvdV1AkhwlGFm5Ib0AH9wXZ9L+E6iYaibQsaiT+t38IwbjzBwX4Qx2EmfULVabjkVsl8MMxNnaI6if8QM4v+D+2oibhDZxVqzISCOCUGY3YJcKyGUnpJhTtptABPPUf1FKkqB/PKXjSEC5TDJF1i8mCSvWt61MCEgJ5C1mq/S2EFgWE0ogPBUyVXRLOP8G6j/6n9d80h8hYH6yWG1wx/TG0PsT5bhA+nUM0zcTrWwC4kqIwyx4oAQgELON6xmFYm+7C7Mce3fp8mnL2AOSOLScMdXcptKsewXxV+ddtiAPJBT4Wffei6Vn1WbePTOZaIvdoJt1Le/epJbrq1Ahf+IHaAUH7UckTUCEhzrfqdrOP5R2plFkmapxZkjA4FGx71DDC7eq3hqK+jnLqZg8Yrx+7UJpKst2//4xoSvZWLzxbNBYjA+BACW31JHWvTlTPswimLNp2tPyCtbleMBiJNJrJd8hDr2yZKNn79Owlty25Y7CIC4ddJYHzBsCHdZm8n2cMmciwQrRTJBoFv5zY0shX1944FFIP3aX75eROCUf3ioqe0AGSwKiIAD5u4zUorBdJhvDCFll/yQAeHY51flvGB6L2yHSCbsojj7mMP+WvqCRXN4Axh0y5Z7jm5xK4PXABoTYNSK91UFV8k78pCAkCo33Dvu5BVnw5xDqFZIveHszFbLA6SAGRXncdtPpI1TTmeN7RYH3AfYP47DG3tvsxUf+LUeq3Vui9027bVCMVaq8oSALpBald0w6sCuseX/et6aJE7G/wDg0BJ0DIOAAA=|base64 -d|gunzip

20190321_screen7.png

おまけ

エスケープシーケンスを利用した面白いイタズラを作ったのを思い出しました、
すべてがFになりますので、Ctrl+c で止めてください。

$ C=$(tput cols);L=$(tput lines);while :;do x=$(($RANDOM%$C));y=$(($RANDOM%$L));printf "\\033[${y};${x}fF";done
$ C=$(tput cols);L=$(tput lines);while :;do x=$((($RANDOM%$C+$RANDOM%$C+$RANDOM%$C)/3));y=$((($RANDOM%$L+$RANDOM%$L+$RANDOM%$L)/3));printf "\\033[${y};${x}fF";done

20190321_screen6.png

エスケープシーケンスを使えばいろいろ面白いことができそうですね!

宣伝

技術書典では割引もあるみたいです!ぜひぜひ

LTの資料

ターミナルに画像を表示する
https://www.slideshare.net/kanata1/ss-142580690

記号難読化シェル芸のやべーやつを解読してみた

Added by kanata 4 months ago

2019年2月は、記号で作る難読化シェル芸がメガシンカした歴史的な月でした。
一度にたくさんの素敵な情報が集まって、私の思考回路はショート寸前です。

記号と英字2文字だけでbash
https://www.ryotosaito.com/blog/?p=178

記号だけでシェルは操れた
https://www.ryotosaito.com/blog/?p=194

34C3 CTF minbashmaxfun - writeup
https://hack.more.systems/writeup/2017/12/30/34c3ctf-minbashmaxfun/

そんな中やべーやつが開発されます。yamayaさんという方が作成した記号だけのdateです。

$ _(){ __=$@;};_ /*/$$/../?????-*;_ ${__##*-};$(${__%?????} '!-:' ^-~<<<"'\$${#__}(")
2019年  2月 28日 木曜日 12:37:56 JST

こんなに短いのに全て記号で、そしてちゃんとdateとして動作します。美しい…そして恐ろしい…
人の褌で相撲を取るようで大変恐縮なのですが、これが埋もれてしまうのは人類の損失のような気がしたので、解読してみました。

大きく、4パートに分かれます。

$ _(){ __=$@;};_ /*/$$/../?????-*;_ ${__##*-};$(${__%?????} '!-:' ^-~<<<"'\$${#__}(")
  ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
       ①              ②              ③                        ④

①関数_の定義

_(){ __=$@;}

関数_を定義しています。$@が特殊なシェル変数になります。動作は「変数__に関数の全引数の内容を設定する」という動作になっています。

②一意なディレクトリパスの取得

_ /*/$$/../?????-*

さっそく関数_が実行されています。引数に渡されている /*/$$/../?????-* は、ワイルドカード(glob)てすね。
/*/$$/../?????-* に一致するディレクトリは1つだけになりました。
/proc/[PID]/../sysrq-trigger というファイルが該当します。これはマジックSysRqキーと呼ばれるカーネル機能を制御するためのインタフェースになりますね。この機能を利用するわけではなく、triggerという文字列を取得するのが目的になっています。

※マジックSysRqキーは、カーネルのデバッグなどに使用されるやつです。昔、クラスタの動作確認するために、これを使って意図的にカーネルパニックさせた記憶があります。

③"trigger"の取得

_ ${__##*-}

ここから変数展開を使って-以降だけを切り取って、再び変数__に設定しています。
"trigger"で7文字になるのですが、この7という数字も最後に使われます。

④trでdateコマンドを生成する

ここは更に細かく分けました。

 $(  ${__%?????} '!-:' ^-~ <<<"'\$${#__}("   )
^^^^ ^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^
④-1    ④-2        ④-3       ④-4        ④-1

④-1

$( )

コマンド置換ですね。最終的にこのカッコの中がdateになれば、dateが実行されます。

④-2

${__%?????}

変数展開の機能を巧みに使って先頭ニ文字を切り出しています。triggerの頭ニ文字、trが取得されます。

④-3

'!-:' ^-~

trの範囲指定を巧みに使っています。!-: と ^-~ どいういう範囲でしょうか。
Asciiコードから確認してみます。

0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F
space ! " # $ % & ' ( ) * + , - . /
0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F
0 1 2 3 4 5 6 7 8 9 : ; < = > ?
0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F
@ A B C D E F G H I J K L M N O
0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F
P Q R S T U V W X Y Z [ \ ] ^ _
0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F
` a b c d e f g h i j k l m n o
0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E
p q r s t u v w x y z { | } ~

ここから考えると !-: は、0x21から0x3Aの範囲、^-~ は、0x5Eから0x7Eの範囲になります。
trで変換される変換表を作ってみます。

! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 :
^ _ ` a b c d e f g h i j k l m n o p q r s t u v w

dateの変換前の文字は '$7( ですね。

④-4

<<< "'\$${#__}("

<<<は、ヒアストリングという機能になります。通常、変換したい文字はパイプ経由でtrに渡しますが、これでも渡すことができます。

渡している文字は"'\$${#__}("です。この中の ${#__} は"trigger"の文字数を返す変数展開です。7ですね!

ゴールが見えてきました。

①〜④まとめ

まとめると、以下になります。

$ _(){ __=$@;}        # ①関数_の定義
$ _ /*/$$/../?????-*  # ②一意なディレクトリパスの取得
$ echo $__
/proc/16120/../sysrq-trigger
$ _ ${__##*-}         # ③"trigger"の取得
$ echo $__
trigger
$ echo ${__%?????}    # ④-2 "trigger"からtrを取り出す
tr
$ echo ${__%?????} '!-:' ^-~ # 結果としてtrが実行できる
tr !-: ^-~
$ echo ${#__}         # ④-3 "trigger"の文字数から7を生み出す
7
$ cat <<<"'\$${#__}(" # ④-4 ヒアストリングでtrの入力にする
'$7(
$ $(${__%?????} '!-:' ^-~<<<"'\$${#__}(")   # ④-1 $(tr '!-:' ^-~ <<< "'\$7(" ) を実行
2019年  2月 28日 木曜日 12:54:22 JST

おわかりいただけたでしょうか…
ここまでくるともはや芸術品...!


出典は、ココのコメントにあります。
記号だけで Hello world したやべーやつもありますねw


2019.3.7 yamayaさん新作が以下になります

$ : /*/$$/../?????-*;: ${_##*-};$(${_%?????} '!-:' ^-~<<<"'\$${#_}(")
2019年  3月  7日 木曜日 22:51:09 JST

より短い!なぜこれでdateが実行できるか解読してみよう!

技術同人誌組版の今と闇を語る(愚痴る)会 に参加しました

Added by kanata 5 months ago

技術同人誌組版の今と闇を語る(愚痴る)会 (2019/02/17 17:00〜)

概要 本を作るのに、どんなソフト/環境でやってますか? Re:view?Markdown?Word?InDesign? どれもこれも、いい面もあれば悪い面もあり、我慢ならないクソな部分もあろうかと思います。 コンピュータで組版をする世の中になってはや30年(適当ですが)経ちましたが、 未だに決定打がないとはどういうことか? というわけで、同人誌執筆者が集まって、組版に関する光と闇を共有する会です。 # 参加するといいことある人 * 執筆環境に不満がある人 * 他の環境を試してみたいが、行き先がわからない人 * 本(技術同人誌)を書いてみようと思っている人 ...

同人誌執筆者が集まって、組版に関する光と闇を共有する会でした。

LTしました

補足

LTした時の現場の議論はこんな感じ

  • Microsoft Print to PDF は実はアウトラインも飛ばしちゃうらしい(まるっと画像化しているらしい)
  • Microsoft Print to PDF のフォント埋め込みは、必要最低限じゃなくて、まるっとフォント全部取り込むのでPDFのサイズが増えるらしい
  • Type3フォントは印刷所的には、やっぱりあるとダメらしい

Microsoft Print to PDF は無料でフォント問題を解決できるので個人的にはやはり神

グラフィックレコーディングしてもらった

嬉しい

技術同人誌組版の今と闇を語る(愚痴る)会 #組版の光と闇 手がきメモまとめ|kondoyuko|note

技術同人誌組版の今と闇を語る(愚痴る)会 #組版の光と闇 手がきメモまとめ

参考

この環境がなかったら諦めてた

技術書典6に向けての Re:VIEW+CSS組版 環境構築 - 圧倒亭グランパのブログ

前回の技術書典5では、 Re:VIEW+ CSS 組版 にチャレンジしました。 at-grandpa.hatenablog.jp 今回もこの構成で行こうと思っていますが、docker周りが複雑で分かりづらかったのと、自分の リポジトリとして公開してもいいかなと思ったので取り組みました。また、 Re:VIEW がちょうど3.0.0になったので、良い機会だと思いました。     公開している リポジトリ は以下です。 主にできることは以下です。 その他のコマンドは、 リポジトリルートで make help と打ってください。   サンプルとして説明書PDFを生成できるようにしています。 git clone して make setup と make pdf を実行すれば生成されます。 PDFのリンクは、 リポジトリ の README.md とリリースページにありますので、お好きにダウンロードしてください。   cloneした リポジトリにある説明書PDFを元に、いろいろと試行錯誤していただくのが一番早いと思います。 Re:VIEWの初期生成 ディレクトリを用いたい場合は、 make init とすれば ./articles 以下を初期化できます。   よりよい Re:VIEW+ CSS 組版環境にしたいと思っています。もしなにかお気付きの場合はPRを作っていただくか、issueをお待ちしています。もしくは Twitter で @at_grandpa までご連絡ください。   前回はデザインに時間を取られてしまいましたが、今回はそこは反省点として、しっかりと執筆時間を確保したいと思います。 抽選受かってほしい!当日、みなさんお会いしましょう!

jus共催 第40回記念光明星節シェル芸勉強会 に参加しました

Added by kanata 5 months ago

jus共催 第40回記念光明星節シェル芸勉強会

jus共催 第40回シェル芸勉強会リンク集 | 上田ブログ

null

jus共催 第40回記念光明星節シェル芸勉強会

北朝鮮シェル芸地獄巡り(しなさい)出題: サムネイルの画像: から

午前:鳥海さんの資料

reveal.js

Unicodeの用語解説 * UCS * ISO/IEC 10646が定義する文字コード集合のこと * 4バイトの符号のUCS-4とそのサブセットのUCS-2がある * UTF * UCSで文字に対応付けた符号位置をコンピュータが利用できるバイト列に変換する方式のこと

知見

Unicode Consortium は 面白いUnicodeの仕様の宝庫

たとえば、これとか
https://unicode.org/Public/UNIDATA/NamesList.txt

他にもいっぱいある
https://unicode.org/Public/UNIDATA/

sed(ここから、ここまで、で抜き出す)

よく忘れて毎回ググる

$ cat a
1972 ミュンヘン        1  1  3  5
1976 モントリオール    1  1  0  2
1980 モスクワ          0  3  2  5
1984 ロサンゼルス      不参加
1988 ソウル            不参加
1992 バルセロナ        4  0  5  9
1996 アトランタ        2  1  2  5
2000 シドニー          0  1  3  4
2004 アテネ            0  4  1  5
2008 北京              2  1  3  6
2012 ロンドン          4  0  2  6
2016 リオデジャネイロ  2  3  2  7
1964 インスブルック     0  1  0  1
1968 グルノーブル       不参加
1972 札幌               0  0  0  0
1976 インスブルック     不参加
1980 レークプラシッド   不参加
1984 サラエボ           0  0  0  0
1988 カルガリー         0  0  0  0
1992 アルベールビル     0  0  1  1
1994 リレハンメル       不参加
1998 長野               0  0  0  0
2002 ソルトレイクシティ 不参加
2006 トリノ             0  0  0  0
2010 バンクーバー       0  0  0  0
2014 ソチ               不参加

$ cat a | sed -n '/1972 ミュンヘン/,/2016 リオデジャネイロ/p'
1972 ミュンヘン        1  1  3  5
1976 モントリオール    1  1  0  2
1980 モスクワ          0  3  2  5
1984 ロサンゼルス      不参加
1988 ソウル            不参加
1992 バルセロナ        4  0  5  9
1996 アトランタ        2  1  2  5
2000 シドニー          0  1  3  4
2004 アテネ            0  4  1  5
2008 北京              2  1  3  6
2012 ロンドン          4  0  2  6
2016 リオデジャネイロ  2  3  2  7

numsum

パイプ越しに複数の数字を流すと全部足してくれる便利なコマンドnumsum

俺的備忘録 〜なんかいろいろ〜 - 『numutils』でLinuxコンソール上での計算を簡単に行えるようにする

shuf -rn3

  • rオプション:入力の中からランダムに選択して無限に表示
  • n3オプション:3個だけ出力
$ echo -e "a\nb\nc"|shuf -rn3
c
a
a
$ echo -e "a\nb\nc"|shuf -rn3
b
b
a

このやり方は重複順列ですね。aaaとかbbbもあり得ます。

Unicode正規化

私も以前から困っていた件なので、Unicode正規化シェル芸を作っていました。

Unicode正規化 変換するワンライナー

記号と1,2,A,zでだけで作る難読化シェル芸

LTしました。難読化シェル芸の集大成!

以下に詳細をまとめています。

記号と1,2,A,zでだけで作る難読化シェル芸

ワタナベ難読化シェル芸

隊長さんのワタナベエンコードが夢のバージョンアップ!
マルチバイト文字対応でもはや死角なし

そしてowariコマンド、意外に業務で使えそうなユースケースがあって草草

ソースはこちらだそうです
https://gihub.com/xztaityozx/owari

その他

えびボクサー、かにゴールキーパー、いかレスラーなど(なんだこれwww)

jus共催 第39回年末シェル芸勉強会 と SECCON 2018 Akihabara に参加しました

Added by kanata 7 months ago

最近イベントが重なった結果、ブログも一記事になっちゃう仕方ないね。

jus共催 第39回コートなしで自宅から締め出されたりしないでね年末シェル芸勉強会

jus共催 第39回シェル芸勉強会リンク集 | 上田ブログ

null

jus共催 第39回コートなしで自宅から締め出されたりしないでね年末シェル芸勉強会

2018年12月22日さくらインターネットさんのセミナールームにて。ハイライト:・鳥海さんの面白い話が終わらないので年を越して次回もやることになった・シンガポールから参戦@東京会場・何気ない「今回..

午後はSECCONに行ったので、断腸の思いで午前だけ参加したのだが、午後も知見に溢れており、やはり体が2つ欲しかった。

知見

pup

htmlをインプットにjQueryのようにDOMを操作できるコマンド

pup
https://github.com/EricChiang/pup

こんな感じで使う。テーブルからリンクを抜き出すとか。

$ curl -s https://news.ycombinator.com/ | pup 'table table tr:nth-last-of-type(n+2) td.title a attr{href}'
https://github.com/e-oj/Magic-Grid
from?site=github.com
https://torrentfreak.com/canada-prohibits-piracy-settlement-demands-in-isp-copyright-notices-181218/
from?site=torrentfreak.com
http://www.gurobi.com/company/news/announcement
from?site=gurobi.com
・
・
・
・

スクレイピングにも一役買いそう。すごい便利そう。

ワタナベ難読化シェル芸

発想が天才のそれ
腹痛いwwww

【邊邊邊邉】ワタナベ難読化シェル芸と辺エンコーディングの誕生【辺辺辺辺】

@xztaityozx_001 氏の難読化シェル芸新作からTwitterでも使える斬新なエンコーディング方式が誕生。第39回シェル芸勉強会の大阪LTにて。シェル芸勉強会本編はこちら()

クソコラを作ってしまった。。
SECCON中に突然アイデアが降ってきて作らずにはいられなかった。しばらくそれしか考えられなかった。
リビドーを抑えきれなかった。

ユニコード戦記 ─文字符号の国際標準化バトルは面白そう

鳥海さんに「読んだ?読んだ?」と聞かれて煽られてしまったので、早めに読まねば

ユニコード戦記 ─文字符号の国際標準化バトル

ちなみに近所の図書館は貸し出し中。げふん

SECCON 2018 Akihabara

今年の決勝大会は秋葉原

SECCON 2018 Akihabara 2018.12.22(sat)-23(sun)

情報セキュリティをテーマに多様な競技を開催する情報セキュリティコンテスト SECCON。2018年12月22-23の2日間秋葉原で行われるSECCON2018 Akihabaraの情報ページです。

私達のチームは予選落ちだったので、ずっとカンファレンスの方を聞いてた。
面白かったのは、フリーダムなLTのssmjpと、Tsurugi Linux、radare2のやつでした。

2019年はssmjp登壇を目標にしたいと思いまし

radare2

スーパーバイナリ解析ツール

$ r2 /bin/ls     # 起動
$ r2 -w /bin/ls  # 起動(ファイル書き込み許可)
$ r2 -d /bin/ls  # 起動(デバックモード)
$ r2 -N /bin/ls  # 起動(設定ファイル無しで起動)
$ r2 -           # Alias for r2 malloc://512
$ r2 --          # ファイルなしで起動
s  # seek
px # print hexdump
pd # print disassembly
wx # write hexpairs
wa # write assembly
aa # analyse all (aaaもある)
q  # quite
V  # Visual mode
VV # Access graph view (Move hjkl,Zoom +/-)
e as.describe=true # Add ASM description
e scr.color=3      # Enable truecolor
e scr.utf8=true    # Use UTF-8
e io.cache=true    # Enable temporary write
db # Set breakpoint
dc # continue execution
ds # step 

詳細はRadare2参照

その他

友人にめっちゃ日本酒とお料理美味しいお店教えてもらった
そのうちまた行きたい

1 2 3 ... 13 (1-10/126)

Also available in: Atom

Add picture from clipboard (Maximum size: 100 MB)