u-ryo's blog

various information for coding...

How Secure Is My Password

| Comments

いますぐ実践! Linux システム管理 / Vol.186に載ってたものなので、何を今更、ですが。

How Secure Is My Password?、 自分の常用passwordは1 Dayでした。 色々試してみると、 「長いことはいいことだ(10文字以上はないと)」 「最後に大文字アルファベットでも足すと劇的に良くなる」 みたいです。 でも多分これ、localにhashか何かがあってbrute forceを試せる、 という前提での解読時間かなと思います。 今はjs fileはugrifyされてて具体的にどう計算しているのかlogic(簡単には)追えないです。

Extract Recent Initramfs

| Comments

よその会社に用意して貰ったLinux(ubuntu)のSSDがあって、 ちょっとhappy hackingしてみようと。 initramfsを展開しようとzcat initrd.img|cpio -diとかってやってみたところ、 「not in gzip format」と。 file initrd.imgとすると「ASCII cpio archive (SVR4 with no CRC)」です。 圧縮fileじゃないのかとそのままcpio -idしても、 何かkernel/x86/microcode/AuthenticAMD.binしか出て来ません。 えー!? どうなってんのー?! 調べてみると、lsinitramfsというのでlistは出るらしい、です。 試してみると、確かに色々入ってそうです。 なのに出て来ません。えー。 FedoraやCentOS 6/7、RHEL 6/7のinitramfsを展開するRHEL7 initramfsの展開方法を見ると、 きょうびのinitramfsは違うんですねー。 びっくりです。

ちなみに、skipcpioapt install dracutで入ります。 使うには、/usr/lib/dracut/skipcpioとfull path指定が必要です。 binwalkapt install binwalkでした。

早速試したところ、上手く行くもの(/boot/initrd.img-4.15.0-33-generic)もありましたが、 下記のように上手く行かないものもありました。 そして、目的のものは上手く行かない方のものでした。

1
2
$ /usr/lib/dracut/skipcpio ~/initrd.img-4.15.0-33-generic|file -
/dev/stdin: ASCII cpio archive (SVR4 with no CRC)

binwalkで見てみると、全く同じ位置にあるのに。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$ binwalk ~/initrd.img-4.15.0-33-generic

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             ASCII cpio archive (SVR4 with no CRC), file name: ".", file name length: "0x00000002", file size: "0x00000000"
112           0x70            ASCII cpio archive (SVR4 with no CRC), file name: "kernel", file name length: "0x00000007", file size: "0x00000000"
232           0xE8            ASCII cpio archive (SVR4 with no CRC), file name: "kernel/x86", file name length: "0x0000000B", file size: "0x00000000"
356           0x164           ASCII cpio archive (SVR4 with no CRC), file name: "kernel/x86/microcode", file name length: "0x00000015", file size: "0x00000000"
488           0x1E8           ASCII cpio archive (SVR4 with no CRC), file name: "kernel/x86/microcode/AuthenticAMD.bin", file name length: "0x00000026", file size: "0x00006B2A"
28072         0x6DA8          ASCII cpio archive (SVR4 with no CRC), file name: "TRAILER!!!", file name length: "0x0000000B", file size: "0x00000000"
28672         0x7000          ASCII cpio archive (SVR4 with no CRC), file name: "kernel", file name length: "0x00000007", file size: "0x00000000"
28792         0x7078          ASCII cpio archive (SVR4 with no CRC), file name: "kernel/x86", file name length: "0x0000000B", file size: "0x00000000"
28916         0x70F4          ASCII cpio archive (SVR4 with no CRC), file name: "kernel/x86/microcode", file name length: "0x00000015", file size: "0x00000000"
29048         0x7178          ASCII cpio archive (SVR4 with no CRC), file name: "kernel/x86/microcode/.enuineIntel.align.0123456789abc", file name length: "0x00000036", file size: "0x00000000"
29212         0x721C          ASCII cpio archive (SVR4 with no CRC), file name: "kernel/x86/microcode/GenuineIntel.bin", file name length: "0x00000026", file size: "0x00180C00"
1605296       0x187EB0        ASCII cpio archive (SVR4 with no CRC), file name: "TRAILER!!!", file name length: "0x0000000B", file size: "0x00000000"
1605632       0x188000        gzip compressed data, from Unix, last modified: 2018-08-30 06:15:36

$ binwalk /boot/initrd.img-4.15.0-33-generic

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             ASCII cpio archive (SVR4 with no CRC), file name: ".", file name length: "0x00000002", file size: "0x00000000"
112           0x70            ASCII cpio archive (SVR4 with no CRC), file name: "kernel", file name length: "0x00000007", file size: "0x00000000"
232           0xE8            ASCII cpio archive (SVR4 with no CRC), file name: "kernel/x86", file name length: "0x0000000B", file size: "0x00000000"
356           0x164           ASCII cpio archive (SVR4 with no CRC), file name: "kernel/x86/microcode", file name length: "0x00000015", file size: "0x00000000"
488           0x1E8           ASCII cpio archive (SVR4 with no CRC), file name: "kernel/x86/microcode/AuthenticAMD.bin", file name length: "0x00000026", file size: "0x00006B2A"
28072         0x6DA8          ASCII cpio archive (SVR4 with no CRC), file name: "TRAILER!!!", file name length: "0x0000000B", file size: "0x00000000"
28672         0x7000          ASCII cpio archive (SVR4 with no CRC), file name: "kernel", file name length: "0x00000007", file size: "0x00000000"
28792         0x7078          ASCII cpio archive (SVR4 with no CRC), file name: "kernel/x86", file name length: "0x0000000B", file size: "0x00000000"
28916         0x70F4          ASCII cpio archive (SVR4 with no CRC), file name: "kernel/x86/microcode", file name length: "0x00000015", file size: "0x00000000"
29048         0x7178          ASCII cpio archive (SVR4 with no CRC), file name: "kernel/x86/microcode/.enuineIntel.align.0123456789abc", file name length: "0x00000036", file size: "0x00000000"
29212         0x721C          ASCII cpio archive (SVR4 with no CRC), file name: "kernel/x86/microcode/GenuineIntel.bin", file name length: "0x00000026", file size: "0x00180C00"
1605296       0x187EB0        ASCII cpio archive (SVR4 with no CRC), file name: "TRAILER!!!", file name length: "0x0000000B", file size: "0x00000000"
1605632       0x188000        gzip compressed data, from Unix, last modified: 2018-08-28 05:01:31

TRAILERが2つあるので、skipcpioを2回かけてみてもダメでした。

1
2
$ /usr/lib/dracut/skipcpio ~/initrd.img-4.15.0-33-generic|/usr/lib/dracut/skipcpio /dev/stdin|file -
/dev/stdin: data

仕方ないので、binwalkで得られたbyte数を自分でskipしてやる手法で試すと、上手く解凍されました。

1
2
3
4
5
$ tail -c +1605632 ~/initrd.img-4.15.0-33-generic|file -
/dev/stdin: data
$ tail -c +1605633 ~/initrd.img-4.15.0-33-generic|file -
/dev/stdin: gzip compressed data, last modified: Thu Aug 30 06:15:36 2018, from Unix
$ tail -c +1605633 ~/initrd.img-4.15.0-33-generic|zcat|cpio -id

binwalkで得られた1605632ではダメで、1605633でOKでした。 上記サイトには「得られたbyte数以降をddで書き出せ」とかありましたが、 別にそんなことしなくてもtail -c +NNNで十分です。

MySQL on JHipster

| Comments

これはもう書いてありますけど、 実際、これまでdevだったのをprod環境にして、 Timastampを含むTableのあるMySQLをbackendに据えてみると、 -Pdev環境ではうまく立ち上がっていたのに、 -PprodだとERROR 1067 (42000): Invalid default value for 'create_date' とかって言われて立ち上がりません。 エラーに直面すると、前書いてあったことなんて忘れてて、 改めて探し回っちゃいました。 結局、ですね、ubuntuの場合は、 /etc/mysql/mysql.conf.d/mysqld.cnf[mysqld]のところに 以下を加えてrestartすれば済みます。特に2行目ですね。

1
2
character-set-server=utf8
explicit_defaults_for_timestamp=on

Communication Between Components on Angular

| Comments

Angularでcomponent間通信しようと思いました。 これまで一つにしていたcontrol formとそれをはんえいするimage viewを 別componentにして、その間で情報伝達したり、 あるtimingで他方のfunctionを叩いたり、 とかしたくなるわけですね。 コンポーネント間のデータ授受メモとかAngular2でComponentをまたがったデータのやり取りとかコンポーネント間でデータを共有するとかちょっと調べればもう色々書いてあって、 親子だとどうとか兄弟間だとこうとかあるわけです。 今回は兄弟間だったので間を取り持つService作って兄から書いて弟で読むとかその逆とかやってたんですが、 ngx-store@SharedStorage使えば一発ですよそんなの。 最初から知ってればもっともっと簡単に済んだのに。 JHipsterでは ngx-webstorageが 予め入っているのでこれを使えればいいんでしょうけど、 this.$sessionStorage.store('key', 'value')して this.$sessionStorage.retrieve('key')取り出すというように、 ngx-storeと比べてちょっと面倒です。 っていうか、JHipsterでもngx-store使ってくれればよかったのに。 Local Storageにも保存できますし、ってそれはどちらも同じですが、 ngx-storeの方は特にstore/retrieveとかしなくても、 意識しなくても変数に@SharedStorageとか@LocalStorageとすれば 他のcomponentでも変更された値がそのまま参照できるというスグレモノです。 全部これ使えばいーんですよ。

Logging on Angular

| Comments

Angularでloggingをしようと思いました。 slf4j(Simple Logging Facade 4 Java)みたいなのないかなー、って思ってng2-logger使いました。 まぁ良かったんですけど、 logのlevel指定が、 指定level以下、とかではなく、 それぞれ指定しなくてはならないというのがちょっと不便です。 何でそんな設計にしたのかなー。 例えば、Log.create('books', Level.WARN)とすればLevel.ERRORも 出てくるというわけではなく、明示的にそれぞれ Log.create('books', Level.ERROR, Level.WARN)と指定しなくてはならない、 というわけです。 Log.setProductionMode()で全てのlogは出て来なくなります。 これは、階層関係なくどこかに1箇所書いてあれば効くようです。 使う時はフツーにlog.d('object',obj)iwですが、 errorだけはlog.er('object',obj)なので注意です。 あと出てくるlogの見た目はcolorfulできれいです。