記録は作業の証

鉄道とコンピュータ

picoCTF Write-up ARMssembly 0

問題文

https://play.picoctf.org/practice/challenge/160

What integer does this program print with arguments 4134207980 and 950176538? File: chall.S Flag format: picoCTF{XXXXXXXX} -> (hex, lowercase, no 0x, and 32 bits. ex. 5614267 would be picoCTF{0055aabb})

考えたこと

AArch64のアセンブリプログラムを読み、実行結果が何であるかを問うもの。

最初は、アルゴリズムを理解する必要があると考え律儀に読んでいた。

そうしているうちに、ふと、実行環境を用意して実行すればいいだけなのではないかと気がついた。

解答

AArch64のGCCQEMUを用意して実行する。

$ aarch64-linux-gnu-gcc chall.S
$ qemu-aarch64-static -L /usr/aarch64-linux-gnu/ ./a.out 4134207980 950176538