2017年11月3日の日記を表示中
2017年11月 3日 (金)
■RetroN 5ハック
DropbearなるSSHの実装があったのね。 OpenSSLを必要とせず、staticバイナリのクロスコンパイルもすごく簡単なようです。こりゃすげえ。
が、バイナリ自体は動作するも、サーバを動かしてみると外から繋がりません(´・ω・`)。調べてみると、どうもgetpwnamがきちんとした値を返していないのが原因な模様。Android環境だからですかね。どうせrootでしか入らないので、常に固定のstruct passwd *を返す my_getpwnam を用意して、getpwnam の代わりにこれを呼び出し、さらに getusershell によるシェルのチェックを回避するようソースをいじってビルドし直した上で、サーバ側で公開鍵認証でログインするように仕立ててやったら、ちゃんとログインできるようになりました。ついにTelnet卒業(笑)。
後はscpが動けば、FTPも卒業なんですが、こちらもすんなりは動きません。なぜか /usr/bin/dbclient を開こうとしてますな。ソースを見ると、 options.h で、DROPBEAR_PATH_SSH_PROGRAM が "/usr/bin/dbclient" に定義されているからっぽい。そしてよく見たら、この値、-S オプションで変えられるじゃん。というわけで、dbclientのパスを -S オプションで指定してやったらscpも動き出しました。よし、これでFTPも卒業ですw
ただ、-S による指定は、外からscpでデータを転送する際にも必要になるらしく、-S オプションで頑張るとなると、下記のような感じで、/usr/bin/scp にラッパーとなるスクリプトを用意してやらないとまずいっぽいです。
#!/system/bin/sh /mnt/scratch/bin/scp.bin -S /mnt/scratch/bin/dbclient $@
こりゃかっこ悪いので、おとなしく options.h を直した方が良さそうですね。
■Steam Link
[コメントを書く]
2017年11月3日の日記を表示中
[コメントを書く]