ctf4b networks社のページからファームウェアをダウンロードしてきました。

このファイルの中からパスワードを探してください。

問題

firmware.binというファイルが配布されます

解説

配布されたfirmware.bin\xffELFで検索すると0x161e2に該当するアドレスがあります
そこから下にデータを見ていくと0x1943dにff d8 ff e0 e0 00 10 4a 46 49 46とJPEGのヘッダっぽいデータがあります
この0x161e2~0x1943d区間を取り出してGhidraに投げたところarmのアセンブリとして読むことができました

main関数を見ると0x10ea4をint32_t型の配列として解釈したデータを入力に0x53でxorをかけた値と比較しています。
なので0x10ea4からのデータに0x53でxorをかけたデータを出力すればflag

ソルバ

l = [0x30, 0x27, 0x35, 0x67, 0x31, 0x28, 0x3a, 0x63, 0x27, 0x0c, 0x37, 0x36, 0x25, 0x62, 0x30, 0x36, 0x0c, 0x35, 0x3a, 0x21, 0x3e, 0x24, 0x67, 0x21, 0x36, 0x0c, 0x32, 0x3d, 0x32, 0x62, 0x2a, 0x20, 0x3a, 0x60, 0x0c, 0x21, 0x36, 0x25, 0x60, 0x32, 0x62, 0x20, 0x0c, 0x32, 0x0c, 0x3f, 0x63, 0x27, 0x0c, 0x3c, 0x35, 0x0c, 0x66, 0x36, 0x30, 0x21, 0x36, 0x64, 0x20, 0x2e, 0x59]

flag = ''

for i in l:
  flag += chr(i ^ 0x53)

print(flag)

ctf4b{i0t_dev1ce_firmw4re_ana1ysi3_rev3a1s_a_l0t_of_5ecre7s}