付近を見てみると、またもや条件分岐でFlagを表示させるルートが。今回は、IDAのデモ版を使って書き換えてみる(深い意味はない。Stirlingでやるより楽だった)。"jnz"命令(0x75)に書き換える。NOP(0x90)にしてもOK.書き換えたファイルを実行すると、Flagが表示される。"Salamander"入力値をどうにかしているのか、と思ったらそうでもなさそうなので、ここを書き換えるのが解法なんかなーと思った。単純にreversing力不足で見つけられていないだけかもしれないけど。Flag生成部分を見てみる。この処理をしている関数"sub_401000"が呼ばれた際に、値を格納しまくっている。1byteなのでchar型と推測したけど、たまにバイナリも入ってるな...。この宣言したやつが、どんどんスタックに積まれていく。ここで宣言しまくった値を、11byteおきに参照して、20x20とxor(アルファベットの大文字/小文字逆転)して、3変数(byte*)に入れる処理をしているようだ。1で"sALAMANDER"を参照し、2"Salamander"に変換して、3答えの変数に入れてる。以下はOllyDbgで追ってみたもの。文字列がSalamanderの16進数(リトルエンディアン)になってる。バイナリファイルをひととおり見てみた。バイナリ力まだまだ足りないけど、IDAとOllyDBGは少しずつ使えるようになってきた感触がある。実際にアセンブラから脆弱性を探してPwnできるようになるのは、まだ先かもしれない。modeの暗号文解読と改ざん現在、ブロック暗号ではAESが広く使われている。~夏の陣~昨日まで、都内某所でpwn合宿に参加してきたのでその感想を。ropasaurusrex7/5(日)に、katagaitaiCTFに参加してきた。feedme月別アーカイブ参加グループテクノロジーセキュリティはてなブログをはじめよう!f_rinさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。