challenge3 - Bank account?500 Walkthrogh

Bank account?

事前準備

解答方法

  • ファイル名「reverse2.7z.enc」から、7-Zipアーカイブに何らかの細工がされたファイルだと推測される。
  • ヘキサエディタで、「reverse2.7z.enc」と、7-Zip形式で圧縮した適当なファイル「sample.7z」を比較してみる。
    • ファイル構造を比較するため

  • sample.7zでは、0x10から4バイト、0x18から4バイト 0 が並んでいる。(画面上)
  • reverse2.7z.encでは、0x10から「7A 34 12 90」、0x18から「7A 34 12 90」となっている。(画面下)
  • 連続した0の箇所に同一の値が入っているので、この値でXORされていると推測される。
    • 0と何らかの値(今回はkey)をXORすると、必ずkeyとなるため
  • xortoolsを使用して、reverse2.7z.encをkeyと思われる値(7A 34 12 90)でXORしてみる。
  • 以下コマンドを、reverse2.7z.enc、xortools.pyが保存されているディレクトリで実行する。
# python
Python 2.6.7 (r267:88850, Feb  2 2012, 23:50:20) 
[GCC 4.5.3] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 
>>> from xortools import four_byte_xor
>>> in_buf = open('reverse2.7z.enc', 'rb').read()
>>> out_buf = open('reverse2.7z', 'wb')
>>> out_buf.write(four_byte_xor(in_buf, 0x9012347A))
>>> out_buf.close()
>>> 
  • 作成されたファイル「reverse2.7z」をアーカイバで開くと、以下2つのファイルが格納されている。

以下、未完成・・・

ctf/challenge3.txt · 最終更新: 2012/02/23 08:15 by kikuzou
 
特に明示されていない限り、本Wikiの内容は次のライセンスに従います: CC Attribution-Share Alike 4.0 International
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki