Cordovaアプリでline-heightの値がおかしかった

環境はGalaxy S6 edge.

ionic-frameworkを使ってアプリを作成中のこと.
line-heightの値が56pxに指定されているのに,実際は44.8pxになっていた.
f:id:oboenikui:20161103022945p:plain

他の値に設定した感じ,常に0.8倍されていた.

おかげでアイコンがズレる.
f:id:oboenikui:20161103023218p:plain

原因

システム設定のフォントサイズを最小にしていたのが原因.(極小も同じになった)
メーカーカスタマイズされていないAndroid 6.0では小・中・大・極大しか選べないようなので,サムスンのカスタマイズが悪さをしていた.
恐らくフォントサイズを「小」よりも小さくするとスパースになるためにそのような仕様にしていたようだ.(本来の意味でのline-heightを指定するときは倍率で指定すべきらしいので,デフォルト値のみを変えるようにして欲しいものだが)

しかし,CSSのline-heightで中央指定することによって図形や文字を中央に配置するのは,本来のline-heightの目的と違うのではないかとも思う.(楽なので結構やってしまうが)
この場合悪いのはカスタマイズなのだろうか,それともそのような指定なのだろうか…

Google CTF 2016 Mobile Write-up

1問目はまずAPKをデコンパイルするとstrings.xmlgithubのアカウント名が書いてあるのでそのユーザーのリポジトリをcloneする.
この人.
github.com

gitのログを見ると間違えてkeystoreを上げてしまっているコミットがあるのでそこまで戻す.

デコンパイルしたソースを読むとBroadcastReceiverでリクエストを受け取り結果を送ってくれるようなので,他のアプリからリクエストを送る.
同じkeystoreでコンパイルされたアプリからのBroadcastしか受信しないようになっているので,testAppをBroadcast発行アプリに書き換えて実行すれば,3つあるActivityの中の1つがFlagを返してくれるようになっている.

3問目はこのkeystoreのパスワードの文字列がそのままFlag.

2問目はkeystoreは関係していないが同じくBroadcastで通信を行う.単純ななSQLインジェクションが存在するので,flagカラムの文字列をLIKEを使って割り出してLog.dなどで出力するようにし,指定されたサーバーにアプリをアップロードすれば数分~数十分後にアプリをインストールするちょっと前から一定時間のログが吐き出されるので,出力したFlagを探せば良い.

CTF開始直後はアップロードしてサーバー側でログを出力する部分にバグが有り,アップロードしたものの最初の数分間はメッセージを含め何も出力されず混乱させた後,10分くらい後にログが吐かれていた.
しかしそのログが,アプリをインストールしてからBobbyApplicationを起動したちょっと後までのログのみで,自分のアプリは起動されておらず何かもうひと工夫必要なのかと考えさせられた.
実はただのバグだったようで,日本時間の昼頃には直っていた.キレた.

GitBucketのDBが壊れたので直した

Tomcatのプロセスが予期せず終了したのが原因でGitBucketのデータベースが壊れた.
状況としてはこの記事と同じ.

rela1470.hatenablog.jp

この記事では最後に

$ mv data.mv.db data.h2.db

をしているが,それをしなければ一応は動くはず.
ただ,READ_CLOB_DBがある行を全て削除しているので,SSHキーの設定などが消えてしまう.ここをなんとかしたのでそのメモ.

続きを読む