亚洲乱码一卡二卡四卡乱码新区_亚洲乱码中文字幕小综合_亚洲人成电影在线播放_亚洲性色AV一区二区三区_亚洲一区二区三区影院_亚洲中文字幕久久精品无码A_亚洲中文字幕无码专区_伊人热热久久原色播放WWW_在线观看AV永久免费_最新欧洲大片免费在线,欧美日韩成人三级免费看,久久黄色网址,欧美激情内射喷水高潮

首頁
社區(qū)
課程
招聘
有關局部變更返值的問題

提問者:suaqer 2020-3-2

 

想請問一下就是在課程中代碼段里面:

1
2
3
4
5
6
   0x8048401  <test+11>        add        eax,  0x1bff
    0x8048406  <test+16>        mov        edx,  dword  ptr  [ebp  +  8]
    0x8048409  <test+19>        mov        eax,  dword  ptr  [ebp  +  0xc]
    0x804840c  <test+22>        add        eax,  edx
    0x804840e  <test+24>        mov        dword  ptr  [ebp  -  4],  eax
0x8048411  <test+27>        mov        eax,  dword  ptr  [ebp  -  4]

mov dword ptr [ebp - 4], eax 這里不是剛把eax的值寫入到ebp - 4么,,為什么下一步還要mov eax, dword ptr [ebp - 4],再將ebp - 4中的值返回給eax呢,,eax中不已經是3了嗎,?辛苦啦

收藏
2條回答
Roger 2023-5-23

這個問題問得好,首先eax里面存放的是計算出來的一個值,,把他放到ebp-4的意思是存放到局部變量中,,再從局部變量中取出來放回eax,這兩步是編譯器寫出來的,,編譯器不會像人類大腦那樣智能,,可能會有一些重復性的操作,具體你可以找一本編譯原理的書來看看

回復 已采納
Roger 2023-5-23

而且,,您仔細看這個語句,,我們做一個假設,假如eax里面存放的是一個字符串的地址,,那么ebp-4里面存放的就是eax這個地址所對應的字符串內容,,然后再把字符串內容的前四個字節(jié)放回到eax中,經過這兩步,,eax里面存放的數據變化為:地址→地址所對應的內容

回復
零基礎入門pwn
  參與學習     1838 人
  提問次數     36 個
《零基礎入門pwn》,,短時間內踏入漏洞利用的大門,快速成為一名合格的pwn題選手
我的問答 領取收益
0
我的提問
0
我的回答
0
學習收益