Feed_me

150

Can you cook the most delicious recipe?

nc 159.89.166.12 9800

objdumpコマンドで逆アセンブルします。
$ objdump -s -D -M intel challenge1 >aaa.txt
下記の箇所で入力文字列の0文字目から、10文字目から、20文字目から数値に変換しています。
 bc1: 48 8d 45 92          lea    rax,[rbp-0x6e]
 bc5: 48 89 c7              mov    rdi,rax
 bc8: e8 f3 fc ff ff        call   8c0 <atoi@plt>
 bcd: 89 85 7c ff ff ff    mov    DWORD PTR [rbp-0x84],eax #変数a
 bd3: 48 8d 45 9c          lea    rax,[rbp-0x64]
 bd7: 48 89 c7              mov    rdi,rax
 bda: e8 e1 fc ff ff        call   8c0 <atoi@plt>
 bdf: 89 45 80              mov    DWORD PTR [rbp-0x80],eax #変数b
 be2: 48 8d 45 a6          lea    rax,[rbp-0x5a]
 be6: 48 89 c7              mov    rdi,rax
 be9: e8 d2 fc ff ff        call   8c0 <atoi@plt>
 bee: 89 45 84              mov    DWORD PTR [rbp-0x7c],eax #変数c
次に以下の箇所でa+bと表示された最初の数値を比較、b+cと2番目の数値を比較、c+aと3番目の数値を比較しています。
 bf1: 8b 95 7c ff ff ff    mov    edx,DWORD PTR [rbp-0x84]
 bf7: 8b 45 80              mov    eax,DWORD PTR [rbp-0x80]
 bfa: 01 d0                add    eax,edx
 bfc: 39 85 70 ff ff ff    cmp    DWORD PTR [rbp-0x90],eax ###
 c02: 0f 85 b6 00 00 00    jne    cbe <main+0x281>
 c08: 8b 55 80              mov    edx,DWORD PTR [rbp-0x80]
 c0b: 8b 45 84              mov    eax,DWORD PTR [rbp-0x7c]
 c0e: 01 d0                add    eax,edx
 c10: 39 85 74 ff ff ff    cmp    DWORD PTR [rbp-0x8c],eax ###
 c16: 0f 85 96 00 00 00    jne    cb2 <main+0x275>
 c1c: 8b 55 84              mov    edx,DWORD PTR [rbp-0x7c]
 c1f: 8b 85 7c ff ff ff    mov    eax,DWORD PTR [rbp-0x84]
 c25: 01 d0                add    eax,edx
 c27: 39 85 78 ff ff ff    cmp    DWORD PTR [rbp-0x88],eax ###
処理が分かったところで接続します。
$ nc 159.89.166.12 9800
Can you cook my favourite food using these ingredients :)
-3650 ; -19008 ; -5836 ;
次の式を満たすa,b,cを求めます。
a+b=-3650
b+c=-19008
c+a=-5836
a=4761、b=-8411、c=-10597となるので次のとおり入力します。
0000004761-000008411-000010597
That's yummy.... Here is your gift:
pctf{p1zz4_t0pp3d_w1th_p1n34ppl3_s4uc3}
フラグは、
pctf{p1zz4_t0pp3d_w1th_p1n34ppl3_s4uc3}
です。