NEKOPARA Anime OVA PV ネコぱらアニメOVA PV
アニメ『ネコぱらOVA』
もう一昨年前の話ですが、クラウドファンディングでたった42分で10万ドル達成ってすごいですねえ。(wikiより)
こういう話を聞くと、コツコツ貯めるのは、やはりお金ではなく、自分のスキルやセンスであるべきという気がしてきます。
いや、スキルというか、単純にかわいいが正義ってことなのかもしれません。お金を出す人たちはみんな、かわいい絵が好きなんです!
私もです!
今回もELFと戯れます。
今までは自作のa.outをバイナリ修正して、文字列置換しましたが、既存のコマンド、たとえば、/bin/catにも同じようなことができるのか試してみます。
直接/bin/catを修正すると後々支障がでるので、コピーしたファイルを使います。
catコマンドをコピーします。
takk@deb9:~/tmp$ cp /bin/cat . takk@deb9:~/tmp$
ヘルプを確認。
takk@deb9:~/tmp$ ./cat --help | head 使用法: cat [オプション]... [ファイル]... Concatenate FILE(s) to standard output. FILE の指定がなかったり, - であった場合, 標準入力から読み込みます. -A, --show-all equivalent to -vET -b, --number-nonblank number nonempty output lines, overrides -n -e equivalent to -vE -E, --show-ends display $ at end of each line -n, --number number all output lines takk@deb9:~/tmp$
ヘルプメッセージの、Concatenate~の行を他の文字列に置換することにします。
Concatenateの文字列の位置を確認。
takk@deb9:~/tmp$ strings ./cat -td | grep Concat 23632 Concatenate FILE(s) to standard output. takk@deb9:~/tmp$
次に置換する文字列のサイズを確認します。catらしく「にゃあああ」にします。
takk@deb9:~/tmp$ echo -ne "にゃあああ\x0" | hd 00000000 e3 81 ab e3 82 83 e3 81 82 e3 81 82 e3 81 82 00 |................| 00000010 takk@deb9:~/tmp$
NULL(0)を合わせて、16 Byteです。
ddでcatコマンドをバイナリ修正。
takk@deb9:~/tmp$ echo -ne "にゃあああ\x0" | dd seek=23632 bs=1 count=16 of=./cat conv=notrunc 16+0 レコード入力 16+0 レコード出力 16 bytes copied, 0.000364255 s, 43.9 kB/s takk@deb9:~/tmp$
では、修正後のcatコマンドで、ヘルプを表示してみましょう。
takk@deb9:~/tmp$ ./cat --help | head 使用法: ./cat [オプション]... [ファイル]... にゃあああ FILE の指定がなかったり, - であった場合, 標準入力から読み込みます. -A, --show-all equivalent to -vET -b, --number-nonblank number nonempty output lines, overrides -n -e equivalent to -vE -E, --show-ends display $ at end of each line -n, --number number all output lines -s, --squeeze-blank suppress repeated empty output lines takk@deb9:~/tmp$
にゃあああに置き換わりました。
コメント