プロジェクト

全般

プロフィール

ニュース

A painter and a black cat: オシャレ定量化コマンドを作ってオシャレ評価してみた (2コメント)

さんが約9年前に追加

以下の記事に感動した。

Instagramでオシャレを定量化できると信じて疑わない彼氏の話
http://kuma-no-kara-age.hatenablog.com/entry/2016/02/01/003051

なるほど、、、一理ある。この方法でオシャレが定量化できそうだ。

さっそくコマンドを作ってみる。

getOshareFromInstagram.sh

#!/bin/bash

# オシャレ定量化コマンド

while [ "$1" != "" ]
do
  # instagramからオシャレ指数を取得
  #POINT=`curl -s curl -s https://www.instagram.com/explore/tags/${1}/|tr ',E' '\n'|grep count|grep entry_data|awk -F':' '{print $NF}'`
  # 2017.11.05 動かないので直した
  POINT=`curl -s https://www.instagram.com/explore/tags/${1}/|tr ',E' '\n'|grep count\" |grep -v likes|grep -v comments|cut -d' ' -f3`
  # 表示位置調整のための小細工
  if [ `echo "${1}"|wc -m` -le 4 ]
  then
    WORD="${1} "
  else
    WORD="${1}"
  fi
  printf "%.15s\t%'10d oshare\n" "${WORD}" "${POINT}"
  shift
done

exit 0

実測

食べ物 で測定

思いつくままに、適当に食べ物を並べてみる。

$ ./getOshareFromInstagram.sh からあげ ハンバーグ パスタ パフェ ラーメン 蟹 パン ケーキ 沢庵
からあげ            76,194 oshare
ハンバーグ         423,013 oshare
蟹                 97,937 oshare
パン            1,001,182 oshare
ケーキ          1,168,795 oshare
沢庵                2,585 oshare

パンやケーキのオシャレ指数が、かなり高い事がわかる。
ケーキは、沢庵と比べ452倍オシャレであることがわかる。

飲み物 で測定

英名での評価も考えられるが、今回は日本固有のオシャレ感覚を考慮し、和名だけで調査した。

$ ./getOshareFromInstagram.sh 水 牛乳 青汁 ビール 焼酎 日本酒 カクテル ワイン
水        155,891 oshare
牛乳       71,144 oshare
青汁       25,258 oshare
ビール    989,409 oshare
焼酎       93,936 oshare
日本酒    564,994 oshare
カクテル    91,766 oshare
ワイン    397,795 oshare

とりあえずビールを飲んでおけば、オシャレであることに疑いの余地はない。
日本酒も意外にオシャレである。

ファッションブランド で測定

ちょっとググッて見つけたブランドを並べてみる。
日本語と英字の両方が存在する場合は、その両方を記載している。

$ ./getOshareFromInstagram.sh ユニクロ UNIQLO GAP しまむら ZARA GU 無印良品 MUJI
ユニクロ           495,885 oshare
UNIQLO           1,207,245 oshare
GAP             1,528,165 oshare
しまむら           529,127 oshare
ZARA            15,303,593 oshare
GU                656,049 oshare
無印良品           443,495 oshare
MUJI               468,137 oshare

ZARAの圧勝である。

ONE PIECE で測定

$ ./getOshareFromInstagram.sh ルフィ ゾロ ナミ ウソップ サンジ チョッパー ロビン フランキー ブルック
ルフィ             26,365 oshare
ゾロ               13,699 oshare
ナミ                7,082 oshare
ウソップ             4,670 oshare
サンジ             11,418 oshare
チョッパー          33,180 oshare
ロビン             10,586 oshare
フランキー           5,865 oshare
ブルック             3,355 oshare

ゾロとサンジがいい勝負であるが、なんとチョッパーが一番オシャレ指数が高い。
これは、同時にカワイイ指数も含まれていると推察される。

山手線駅名 で測定

山手線駅名の駅名で検索してみる。

$ ./getOshareFromInstagram.sh 東京 有楽町 新橋 浜松町 田町 品川 大崎 五反田 目黒 恵比寿 渋谷 原宿 代々木 新宿 新大久保 高田馬場 目白 池袋 大塚 巣鴨 駒込 田端 西日暮里 日暮里 鶯谷 上野 御徒町 秋葉原 神田
東京    2,225,774 oshare
有楽町     72,929 oshare
新橋       82,467 oshare
浜松町     17,881 oshare
田町       13,631 oshare
品川       90,886 oshare
大崎       10,113 oshare
五反田     40,071 oshare
目黒       79,041 oshare
恵比寿    382,042 oshare
渋谷    1,177,357 oshare
原宿    1,317,258 oshare
代々木     82,567 oshare
新宿      941,782 oshare
新大久保   249,498 oshare
高田馬場    69,581 oshare
目白       19,243 oshare
池袋      492,544 oshare
大塚       12,218 oshare
巣鴨       20,336 oshare
駒込       11,560 oshare
田端        3,841 oshare
西日暮里     7,112 oshare
日暮里     21,986 oshare
鶯谷        4,889 oshare
上野      207,968 oshare
御徒町     19,407 oshare
秋葉原    107,962 oshare
神田       43,982 oshare

東京は、地名以外でもヒットしていると思われるので比較対象から除外する。
すると最もオシャレなのは原宿、次いで、渋谷となり、オシャレ指数の精度の高さを確認できる。
ワーストは田端であるが、原宿の1/342のオシャレ指数となり、東京都心でも格差が大きい。

考察

以上の結果から、かなり高い精度でオシャレ指数を測定できる事が確認できた。
ただし、ONE PIECEでの測定結果にみられるように、純粋なオシャレ指数ではなく「オシャレ指数+カワイイ指数」となっている疑いが残る。
カワイイ指数とオシャレ指数の分離については、今後の課題としたい。

コメント

インスタツール - インスタグラムのハッシュタグの人気度を一括検索!
https://insta-tool.nu/

ここで調べられるようになりました~。

12K
https://index.12k.co/index/

たぶん、これはTwitterバージョン。栄枯盛衰がわかるわ~。

A painter and a black cat: Halvar Flake&PPPとローレイヤーな話をしよう に参加しました

さんが約9年前に追加

Halvar Flake&PPPとローレイヤーな話をしように参加させて頂きました。

当日は、以下の錚々たる顔ぶれで御座いました。

  • 中津留勇さん
  • 黒米祐馬さん
  • ucqさん
  • inaz2さん
  • Halver Flakeさん

お話面白かったです。すごい高度でございました。恐るべしローレイヤーの世界。
(ただ英語力がなくてHalver氏のプレゼンで死んだ。英語力が必要だ。。)

ぼっちで突入した私を気遣って対応して頂いたkanaさん、隣の席で私のお相手して頂いたお二方、ありがとうございました。

資料

inaz2さんは、当日のプレゼンスライドを公開されておりました。

ももいろテクノロジー - 「Self Introduction & The Story that I Tried to Make Sayonara ROP Chain in Linux」というタイトルで発表した
http://inaz2.hatenablog.com/entry/2016/04/28/012136

会場

20160427_HalverFlakeAndPPP.jpg

A painter and a black cat: 使わない順 業務で使わないコマンド

さんが約9年前に追加

何気に手元にあるCentOSには標準でインストールされていて、そのコマンドの存在を知っている割には1度も使ったことが無いコマンド達。

調査環境

$ cat /etc/centos-release
CentOS Linux release 7.2.1511 (Core) 

コマンドの仕様を解りやすく説明するために、こういうファイルを用意してみた。

$ cat test.txt 
abcdefg
ABCDEFG
1234567

shuf

行をランダムに入れ替える。

$ shuf test.txt 
ABCDEFG
1234567
abcdefg

使わない。

rev

文字の並びが逆になる。

$ rev test.txt 
gfedcba
GFEDCBA
7654321

使わない。

tac

行単位で逆に出力する。

$ tac test.txt 
1234567
ABCDEFG
abcdefg

ログファイル見る時にもしかして使う・・・?
(いや、でもtail使うし。。)

tput

ターミナル出力に色をつける事ができる!
細かい仕様はこのあたりを参照すると良い。

# 文字色を変える
$ tput setaf [0-255]
# 背景を変える
$ tput setab [0-255]
# 太字にする
$ tput bold
# 下線を引く
$ tput smul
# 文字と背景を反転
$ tput rev
# 全部リセット
$ tput sgr0

今までechoで代用してたけど、今後はこれを使おうと思ってる。
ちなみにPOSIXコマンドでもある。


みんなの使わないコマンドを教えて欲しい

決してディスっている訳ではない。むしろ全くの逆である。
シェル芸人としての嗜みである。
他にもあったら教えてほしいです。

A painter and a black cat: オンラインサービスの逆アセンブラ Retargetable Decompiler がヤバイ (3コメント)

さんが約9年前に追加

CTFなんかで、ELFファイルを逆アセンブル・解析する時

  • IDA Proで・・・
  • OllyDbgで・・・
  • pedaで・・・

そんなふうに考えていた時期が俺にもありました。

今日、新しい選択肢が1つ増えました。

オンラインサービスでの逆アセンブラがございました。

Retargetable Decompiler
https://retdec.com/decompilation/

とりあえずコイツを見てくれ

20160410_RetargetableDecompiler_fig1.png

①…ELF形式だけじゃなく、PEやCOFFまで対応
②…対象のCPUアーキテクチャは、Intel x86, ARM, ARM+Thumb, MIPS, PIC32, PowerPC が対象っ・・・!
③…なんと、C言語かPythonのコードで逆コンパイルしてくれるッ!
④…後述のCall GraphがSVGかPNGかPDFで出力可能!!!1

もぅこの時点で結構高機能。

ちょっと解析してみますか。

解析対象として、SECCON2015オンライン予選の問題 Individual Elebin で出されたELFファイルを利用します。

Decompileボタンを押して、しばらく待つと結果が出てきます。
こんな感じ。

20160410_RetargetableDecompiler_fig2.png

では、デコンパイル・逆アセンブル結果を参照してみます。
⑤の所をクリックすると

20160410_RetargetableDecompiler_fig3.png

おぉ・・・左がアセンブラ、右がC言語ですね。鼻血出そう。
次はCall Graphを見てみる。
⑥の所をクリック

20160410_RetargetableDecompiler_fig4.png

グレートですよ・・・こいつぁ・・・
各関数ごとにこれが参照できます。しかもSVGとかPNGでダウンロードできる!writeup書くのすごく捗りそう。

ちなみに⑦の所クリックで全部ダウンロードできる。

20160410_RetargetableDecompiler_fig5.png

キマシタワー(n'∀')η゚・゚・

コメント

ちなみに、このデコンパイルしたC言語のソースコードをコンパイルして実行したら動かなかった。
ソースの中にメモリアドレスを直接代入している箇所があったから、当たり前っちゃー当たり前です。
世の中そんなに甘くない。でも、動作を把握するのには十分使えると思う。

オンラインでアップロードするタイプのサービスなので、提供している側に情報を渡すことになるよ。
他者に渡っても問題無いバイナリだけにしてね。
(VirusTotalで話題になったけど、うっかり秘密情報込みでアップロードしてしまうのに注意)

オープンソース化されたようだよ!!

アバストが自社のマシンコード逆コンパイラをオープンソース化
https://blog.avast.com/jp/avast-open-sources-its-machine-code-decompiler-0

A painter and a black cat: 「すべてのUNIXで20年動くプログラムはどう書くべきか」を買った

さんが約9年前に追加

シェル芸人のための本。
これから読みます。楽しみ。

20160409_usp.jpg

すべてのUNIXで20年動くプログラムはどう書くべきか デプロイ・保守に苦しむ エンジニア達へ贈るシェルスクリプトレシピ集
http://richlab.org/coterie/pfb.html

関連

恐怖!シェルショッカーの POSIX原理主義シェルスクリプト
http://www.slideshare.net/ShellShoccarJpn/posix-59780910

恐怖!シェルショッカー1号男
http://www.slideshare.net/tomoyukimatsura/1-php-con2014-40134119

A painter and a black cat: このサーバに来た怪しい通信を晒してみる

さんが約9年前に追加

面白いアクセスログがあったので、このサーバにきた怪しい通信を幾つか晒してみる。

HTTPステータスコード 404(Not Found) のアクセスログより抜粋。
ログは2015年5月~2016年3月までの範囲。

第1位 68492アクセス

/message.php

なんだか解らないが、これがめっちゃくる。
これが何なのかは調べても解らなかった。

アクセス元は、韓国、インド、リビア、ロシア、デンマーク等、様々。

第2位 885アクセス

//message.php

しつこいぐらいくる。
そうか、そんなにmessage.phpが好きか。

アクセス元は、ほぼ、台湾と香港。

なんか中華圏から来てるね。

第6位 230アクセス

/wp-login.php

WordPressのログイン画面かな?
残念!WordPressは入れてないよ。というかPHPも入れてないよ。

アクセス元は、エストニア、スウェーデン、米国 等、様々。

なんか、こっちは欧米っぽいね。

第44位 36アクセス

/gyoumu/gyoumu.asp

これは、まぁ何かの業務システムの存在を確認したいんでしょうね。
asp動かないけどね。

アクセス元は、googlebotやyandex、msnなどの検索エンジンのクローラー。
アクセス元が検索エンジンになるのはなんでだろう?
アクセス元を隠蔽するために検索エンジンを利用してたりするのかしら?

第45位 35アクセス

/gyoumu/gyoumu.aspと入力する。

これが一番ウケたwww
/gyoumu/gyoumu.asp ではない。
/gyoumu/gyoumu.aspと入力する。 だ!wwwwwwwwww

これアレですね。推測の域を出ませんけど

  • 怪しいマニュアル(「脆弱なサーバを探す方法」みたいな?)がありそう。

  • 怪しいマニュアルには、「例えば、/gyoumu/gyoumu.aspと入力する。」 とか書いてある。

  • 怪しいツールがありそう。

  • 怪しいツールの設定ファイルに「/gyoumu/gyoumu.aspと入力する。」と、間違ってコピペしちゃったw

かしらね。こういう事する人のドジっ娘属性が垣間見れて草。

アクセス元は、googlebotやyandex、msnなどの検索エンジンのクローラー。謎。

A painter and a black cat: 産学連携セミナー インシデントレスポンス概論 を受講してきました

さんが約9年前に追加

産学連携セミナー インシデントレスポンス概論 を受講してきました
http://connpass.com/event/24282/

マルウェア感染によるインシデントが発生した際に、マルウェアがどのように動作し、どのような被害を及ぼすのかなどを調査するために必要となるマルウェア動的解析技術を座学、演習を通して学習します。

沢山ツール教えてもらった!
案外、CTFにも役に立つかもしれないから、「お、これは」と思ったものを以下に紹介しますね。

ツール名 概要 ダウンロードURL
Bintext バイナリビューア http://www.mcafee.com/jp/downloads/free-tools/bintext.aspx
PDF Stream Dumper PDFの解析 http://sandsprite.com/blogs/index.php?uid=7&pid=57
OfficeMalScanner Ofiice形式のファイル解析 http://www.reconstructer.org/
CaptureBAT ファイル、レジストリ、ネットワークの挙動を記録。削除されたファイルの保存などが可能 http://www.honeynet.org/node/315
API Monitor WindowsAPIの呼び出し状況を確認。プログラムの挙動を調べる。 http://www.rohitab.com/apimonitor
REMnux マルウェア解析を支援するためのツールが内包されたLinuxディストリビューション https://remnux.org/

大変勉強になりました!
スタッフの皆様、講師のお二方、ありがとうございました。

ノートとマウスパットを頂いております。
ありがたやありがたや。

ちな、食堂
20160227_tuis.JPG

A painter and a black cat: シェルスクリプトの平文パスワードをセキュアにする方法(別解)

さんが約9年前に追加

余白の書きなぐり - シェルスクリプトの平文パスワードをセキュアにする方法
http://auewe.hatenablog.com/entry/2014/04/14/213319

余白の書きなぐり - シェルスクリプトの平文パスワードをセキュアにする方法(続き)
http://auewe.hatenablog.com/entry/2015/08/03/234325

を拝見して大変感銘を受けました。
昔、似たようなことをしてたので晒してみる。
いや、Linuxのログイン認証の機能を、そのままシェルスクリプトで実現しただけなんだけど。

当時たしか、Webインタフェースから、コマンド実行させるCGIを作ったんだけど、認証をどうするか考えて、こんな感じにしてた。

まず、これだと平文だよね。

#!/bin/sh
PASSWORD="hoge"

平文のまま記録したくないのでハッシュにしてみる。
当時はMD5にしてたんだけど、このご時世なら sha512 がいいでしょう。

$ echo -n "hoge"|md5sum 
ea703e7aa1efda0064eaa507d9e8ab7e  -
$ echo -n "hoge"|sha512sum 
dbb50237ad3fa5b818b8eeca9ca25a047e0f29517db2b25f4a8db5f717ff90bf0b7e94ef4f5c4e313dfb06e48fbd9a2e40795906a75c470cdb619cf9c2d4f6d9  -

md5sumやsha512sumは、一般的なLinuxディストリビューションにはインストールされているので、普通に使えます。
これを比較するだけ

#!/bin/sh
PASSWORD="dbb50237ad3fa5b818b8eeca9ca25a047e0f29517db2b25f4a8db5f717ff90bf0b7e94ef4f5c4e313dfb06e48fbd9a2e40795906a75c470cdb619cf9c2d4f6d9"

USER_INPUT_HASH=`echo -n "${1}"|sha512sum|awk '{print $1}'`

if [ "${PASSWORD}" == "${USER_INPUT_HASH}" ]
then
  echo "認証OK"
else
  echo "認証NG"
  exit 1
fi

さらにここを参照して、パスワード部分を別のテキストファイルに分離すると、よりセキュアに!!!1
(Linuxは昔、/etc/passwordにハッシュされたパスワードが書かれてたんだけど、/etc/shadowに分離した…という同じ歴史を辿ってて草)

同じパスワードなら、同じハッシュ値になって類推できちゃうんじゃないかって?辞書攻撃に弱い?
よろしい、ではソルトを加えましょう!

準備

0から99までのランダムな値をソルトとして指定し、ハッシュを得る。
(ソルトの値の範囲は、もっともっと大きくしてもいいと思う。)

$ echo -n "$(( $RANDOM % 99 ))hoge"|sha512sum 
3ea3e82f7a6ebf35765d098e53a5bea1eba590ee2c04e9dec6c6fdcf57eecfd2d5c3921108e02cb84a33519cefac4a2d627fd2cd085dbab8d9bcddb75457f2aa  -

認証ソースのサンプル

#!/bin/sh
PASSWORD="3ea3e82f7a6ebf35765d098e53a5bea1eba590ee2c04e9dec6c6fdcf57eecfd2d5c3921108e02cb84a33519cefac4a2d627fd2cd085dbab8d9bcddb75457f2aa"

for SALT in `seq 0 99`
do
  USER_INPUT_HASH=`echo -n "${SALT}${1}"|sha512sum|awk '{print $1}'`
  if [ "${PASSWORD}" == "${USER_INPUT_HASH}" ]
  then
    echo "認証OK"
    break
  fi
  if [ "${SALT}" == "99" ]
  then
    echo "認証NG"
    sleep 10 # sleepするのは、ブルートフォース対策
    exit 1
  fi
done

exit 0

結果

$ ./sample.sh fuga
認証NG
$ ./sample.sh hoge
認証OK

A painter and a black cat: 場阿忍愚CTF Writeup (1コメント)

さんが9年以上前に追加

マクロ include の実行中にエラーが発生しました (ページが見つかりません)

コメント

はせがわようすけさん(@hasegawayosuke)巡回済み。神。あんな解き方して恐縮でございます。

(101-110/155)

他の形式にエクスポート: Atom