Ini adalah soal reversing paling sederhana (dan nilainya memang hanya sepuluh point). Executable yang diberikan akan memprint “Baby Crackme”, dalam loop. Untuk menyelesaikan ini tidak perlu IDA, hanya perlu objdump saja. Bisa dilihat bahwa program ini mengecek apakah dijalankan dengan parameter atau tidak (membandingkan [$ebp+8] ==1). Dengan menjalankan program dengan parameter sembarang, kita mendapatkan flagnya: G00d_B0y.
08048454 <main>:
8048454: 55 push %ebp
8048455: 89 e5 mov %esp,%ebp
8048457: 83 e4 f0 and $0xfffffff0,%esp
804845a: 83 ec 10 sub $0x10,%esp
804845d: 83 7d 08 01 cmpl $0x1,0x8(%ebp)
8048461: 7f 0e jg 8048471 <main+0x1d>
8048463: c7 04 24 b0 85 04 08 movl $0x80485b0,(%esp)
804846a: e8 15 ff ff ff call 8048384 <puts@plt>
804846f: eb f2 jmp 8048463 <main+0xf>
8048471: c7 04 24 47 00 00 00 movl $0x47,(%esp)
8048478: e8 d7 fe ff ff call 8048354 <putchar@plt>
804847d: c7 04 24 30 00 00 00 movl $0x30,(%esp)
8048484: e8 cb fe ff ff call 8048354 <putchar@plt>
8048489: c7 04 24 30 00 00 00 movl $0x30,(%esp)
8048490: e8 bf fe ff ff call 8048354 <putchar@plt>
8048495: c7 04 24 64 00 00 00 movl $0x64,(%esp)
804849c: e8 b3 fe ff ff call 8048354 <putchar@plt>
80484a1: c7 04 24 5f 00 00 00 movl $0x5f,(%esp)
80484a8: e8 a7 fe ff ff call 8048354 <putchar@plt>
80484ad: c7 04 24 42 00 00 00 movl $0x42,(%esp)
80484b4: e8 9b fe ff ff call 8048354 <putchar@plt>
80484b9: c7 04 24 30 00 00 00 movl $0x30,(%esp)
80484c0: e8 8f fe ff ff call 8048354 <putchar@plt>
80484c5: b8 bd 85 04 08 mov $0x80485bd,%eax
80484ca: c7 44 24 04 79 00 00 movl $0x79,0x4(%esp)
80484d1: 00
80484d2: 89 04 24 mov %eax,(%esp)
80484d5: e8 9a fe ff ff call 8048374 <printf@plt>
80484da: b8 00 00 00 00 mov $0x0,%eax
80484df: c9 leave
80484e0: c3 ret
No comments:
Post a Comment