亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

炸彈實驗室phase_4

炸彈實驗室phase_4

倚天杖 2020-02-02 15:09:13
Dump of assembler code for function func4    <+0>: mov %rbx,-0x18(%rsp)    <+5>: mov %rbp, -0x10(%rsp)    <+10>: mov %r12,-0x8(%rsp)    <+15>: sub $0x18,%rsp    <+19>: mov %edi,%ebx    <+21>: mov %esi,%ebp    <+23>: test %edi, %edi    <+25>: jg 0x400fb2<func4+34>    <+27>: mov $0x0,%ebp    <+32>: jmp 0x400fd2<func4+66>    <+34> cmp $0x1, %edi    <+37>: je 0x400fd2<func4+66>    <+39>: lea -0x1(%rbx),%edi    <+42>: callq 0x400f90 <func4>    <+47>: mov %eax,%r12d    <+50>: lea -0x2(%rbx),%edi    <+53>: mov %ebp,%esi    <+55>: callq 0x400f90 <func4>    <+60>: lea (%r12,%rax,1),%eax    <+64>: add %eax,ebp    <+66>: mov %ebp, %eax    <+68>: mov (%rsp),%rbx    <+72>: mov 0x8(%rsp), %rbp    <+77>: mov 0x10(%rsp),%r12    <+82>: add $0x18,%rsp    <+86>: retq這是func4的反匯編代碼。而且我不確定我是否正確理解此功能。我沒有在這里編寫phase_4的反匯編代碼,但是它需要“%d%d”輸入,并且第一個整數應該在1 <= x <4的范圍內。因此它應該是1,2或3。寄存器%edi首先具有值7。調用func4之后,代碼將0x10(%rsp)和%eax的值進行比較,因此我應該知道調用func4之后的%eax值。我以為,反匯編的func4代碼意味著put the stackebx = ediebp = esiif edi is not zero    if edi is one: then eax=ebp.                   rearrange the stack                   return.    else: edi = -0x1(rbx)          func4          r12d = eax          edi = -0x2(rbx)          esi = ebp          func4          eax = rax+r12+ebp          rearrange the stack and return.else    ebp=0    eax=ebp    return但是據我了解,我無法解決。例如,如果%rsp的原始地址為0x7fffffffd5a8,則該地址將變小,直到edi的值變為0。我發現0x7fffffffd56f的值為0-并且第一個func4調用結束-但之后的值為0x7fffffffd56e為也為0-因此第二個func4調用結束-并且所有寄存器都變為0,包括eax。所以我認為第二個數字的答案是零,但是(1,0),(2,0),(3,0)總是爆炸。你猜我在哪里錯了,能幫上忙嗎?
查看完整描述

3 回答

?
qq_慕圣0414050

TA貢獻1條經驗 獲得超0個贊

我也是像上面那樣理解的,可就是不對。請問最后解出來了嗎?
查看完整回答
反對 回復 2021-04-24
?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

在phase_4的反匯編代碼中,esi設置為0x14(%rsp),這是phase_4的第二個輸入,而edi設置為7。根據您的解釋,func4(edi,esi)返回func4(edi-1,esi) )+ func4(edi-2,esi)+ esi。因此func4(7,esi)返回33 * esi。和phase_4比較0x10(%rsp)和eax。因此,phase_4的第一輸入應為33 *(phase_4的第二輸入)。我理解正確嗎?

查看完整回答
反對 回復 2020-02-02
  • 3 回答
  • 0 關注
  • 892 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號