RE for 50 plz

50

Can you guess the key to this file??

fileコマンドでファイルタイプを確認します。MIPSの32bitバイナリのようです。
$ file e7453ba07805c6bab5a0b95f57aaeb6e70af76b1 
e7453ba07805c6bab5a0b95f57aaeb6e70af76b1: ELF 32-bit LSB  executable, MIPS, MIPS-II version 1 (SYSV), statically linked, for GNU/Linux 2.6.32, BuildID[sha1]=1d5c00adcd4cbb883fea12bc860f827d023e416f, not stripped
MIPSアーキテクチャであるため、逆アセンブルするにはクロスコンパイラ環境が必要になります。次の「熱血!アセンブラ入門」のサイトからCentOSのクロスコンパイラ環境のOVAイメージをダウンロードしてきます。
http://kozos.jp/vmimage/burning-asm.html 

VirtualBoxで仮想環境を立ち上げて、次のコマンドで逆アセンブルします。
# mips-elf-objdump -s -D e7453ba07805c6bab5a0b95f57aaeb6e70af76b1 > aaa.txt
ザーッとみて以下の部分が怪しいです。
Contents of section .data:
 4a3710 00000000 00000000 00000000 00000000  ................
 4a3720 63627463 714c5542 43684552 565b5b4e  cbtcqLUBChERV[[N
 4a3730 68405f58 5e445d58 5f595056 5b434a00  h@_X^D]X_YPV[CJ.
  4013cc: 24433720 addiu v1,v0,14112 #0x3720
  4013d0: 8fc20018 lw v0,24(s8)
  4013d4: 00621021 addu v0,v1,v0
  4013d8: 80430000 lb v1,0(v0)
  4013dc: 8fc2002c lw v0,44(s8)
  4013e0: 24420004 addiu v0,v0,4
  4013e4: 8c440000 lw a0,0(v0)
  4013e8: 8fc20018 lw v0,24(s8)
  4013ec: 00821021 addu v0,a0,v0
  4013f0: 80420000 lb v0,0(v0)
  4013f4: 38420037 xori v0,v0,0x37
復号するプログラムを、Pythonで書きます。
s = "cbtcqLUBChERV[[Nh@_X^D]X_YPV[CJ"
t = ""
for c in s:
t = t + chr(ord(c) ^ 0x37)
print t
フラグは、 
TUCTF{but_really_whoisjohngalt}
です。

熱血! アセンブラ入門
坂井弘亮
秀和システム
2015-06-12