我與C和彙編代碼初學者,我們有一個「炸彈」分配(用C語言編寫),其中要求方法需要某些密碼,但代碼不可見,我需要通過查看彙編代碼來確定正確的密碼。
該代碼指示此方法的密碼是6個數字,它作爲「輸入」傳遞給方法puzzle_1(我試圖避免觸發)。
我無法理解彙編代碼。
這個問題的答案是什麼?
我覺得這個puzzle_1的關鍵字是數組。
08048db4 <puzzle_1>:
8048db4: push %ebp
8048db5: mov %esp,%ebp
8048db7: sub $0x38,%esp
8048dba: lea -0x24(%ebp),%eax
8048dbd: mov %eax,0x4(%esp)
8048dc1: mov 0x8(%ebp),%eax
8048dc4: mov %eax,(%esp)
8048dc7: call 804897e <read_six_numbers>
8048dcc: movl $0x1,-0xc(%ebp)
8048dd3: jmp 8048df9 <puzzle_1+0x45>
8048dd5: mov -0xc(%ebp),%eax
8048dd8: mov -0x24(%ebp,%eax,4),%eax
8048ddc: mov -0xc(%ebp),%edx
8048ddf: sub $0x1,%edx
8048de2: mov -0x24(%ebp,%edx,4),%edx
8048de6: add $0xbf,%edx
8048dec: cmp %edx,%eax
8048dee: je 8048df5 <puzzle_1+0x41>
8048df0: call 8048d93 <denied_nextstep>
8048df5: addl $0x1,-0xc(%ebp)
8048df9: cmpl $0x5,-0xc(%ebp)
8048dfd: jle 8048dd5 <puzzle_1+0x21>
8048dff: call 8048d73 <allow_nextstep>
8048e04: leave
8048e05: ret
瞭解程序集的技巧就是學習它。 – alex
並學習如何使用調試器... –
如果問題已關閉,再次提出問題並不禮貌。社區已經告訴你在這個問題上多加一些努力。 – alex