This challenge is very easy to solve however, for a beginner it provides a lot of options to learn quickly several different concepts. To improve the learning options the challenge is available for 4 different architectures as stripped and non-stripped binary
Hashes calculated with sha1sum- ARM (64 bits)
a6864a2d717a1276ec66695601b7861c40ed3e74 ./code/challenge03/challenge03.aarch64.bin
9b9c890b7007d12a2fb7c1dc416298242d05ea8a ./code/challenge03/challenge03.aarch64.bin.strip
- ARM (32 bits)
4dfed4bf18f1baeb45f07c02d4fb1148e86ed242 ./code/challenge03/challenge03.arm.bin
aa353a0d1e790c095d4fe7bd22170b4fb9484721 ./code/challenge03/challenge03.arm.bin.strip
MIPS (32 bits)
e40eac6282dd06e796c640baf032937aa26a6b1e ./code/challenge03/challenge03.mips.bin
7049d296d3f20282d92ddc23c1085112b2b20c22 ./code/challenge03/challenge03.mips.bin.strip
MIPS (64 bits)
3b3c80bd5f2665a520937a17090c982517b618a0 ./code/challenge03/challenge03.mips64.bin.strip
e9e2f4feeab98796c67ab3e567d76e1975f2ce41 ./code/challenge03/challenge03.mips64.bin
RISCV (64 bits)
fa258b1ac3b72b2f904376ca55697bb736b3a412 ./code/challenge03/challenge03.riscv64.bin
68e057e892504b44daf6e4a5f1236f6485b045bd ./code/challenge03/challenge03.riscv64.bin.strip
X86 (64 Bits)
e68caf557ff0c0c522d3453c7eb8602921c2da59 ./code/challenge03/challenge03.x86_64.bin.strip
6507485b8080539fd924e25a4b156199614f9b81 ./code/challenge03/challenge03.x86_64.bin
The recommended learning path for a beginner is:
- Solve it using stand-alone tools
- Solve the non-stripped version using static analysis (objdump)
- Solve the stripped version using static analysis (objdump). Will be much easier after doing the non-stripped version
- Solve the stripped version using dynamic analysis (gdb)
- Repeat for a different platform