【雑記(分類不可)】前回の続きと本棚がにぎやかになった話

前回の投稿からだいぶ時間がたってしまったが、この前配布した問題のwriteup的なものを書いていこうと思う。個人的には非常に簡単な問題だったと思っているのでもっと難易度の高い問題が作れるようになりたいと思っている。

さて、今回もGhidra君に活躍してもらうことになる。まず、Ghidra君にプログラムを投げてみよう。ソースコードを表示してくれるはずだ。

f:id:yamanobori_programing:20190321191532p:plain

ふむふむ、-0x21524111が入力されるまでループから抜け出せないようだ。実際、-0x21524111を入力するとループから抜ける事が出来るので、この問題を解くならGhidraを使えばいいということが分かった。

・・・・・

・・・・

・・・

・・

 

確かに、無料で(商用のIDAには劣るものの)デコンパイラを使えるというのは強いとも思うが、何でもかんでもGhidraにぶん投げるというのは多少乱暴な気もするので他の方法でも解決してみよう。ここでRadare2君に登場してもらう。(Radare2というまあまあ優秀なツールを使ってる時点で乱暴さが核爆弾級からM.O.A.B.級に落ちただけな気もするが...)

f:id:yamanobori_programing:20190321192539p:plain

ふむふむ、入力として0xdeadbeefを与えるとループから抜けられるようだ。

・・・・・

・・・・

・・・

・・

まぁ問題が簡単すぎたので、objdumpに投げてもほぼ脳死状態で解決する事が出来たと思うが、やはりツールの進化はすさまじいと思い知らされた。

 

とりあえず現在もコーディングの力を養う訓練は続けているが、先日この状況を変えかねない事件を起こしてしまった。

f:id:yamanobori_programing:20190321193444j:plain

完全なる衝動買いである。(TwitterのTLでよく見かけてたのでつい...)

これ以上積ん読を増やすわけにもいかず、現在これを読み進めている。そして、コーディングの力の力を復活させるための訓練も継続していこうと思っている。しかし、両立というのは難しいもので、どうすべきか悩んでいたが、「この本の暗号化を担保するプログラムを書いていけば一石二鳥なのでは?」という天才的な考えが生まれてしまったので、今後そうしていこうと思う。(問題楽しみにしている方いらっしゃいましたらごめんなさい...)

github.com

そして、これがその結果作成されたツールである。今回は本書の最初に出てくるシーザー暗号のエンコーダーデコーダーを作成した。ソースも公開しているので是非自由に使ったり改造してみたりしていただきたいと思う。不具合や改造の結果すごいことになった等あったらTwitterのほうで報告していただけると幸いです。

twitter.com