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

首頁
社區(qū)
課程
招聘
在組織payload時候需要調(diào)換下順序,,沒太理解

師傅想請教一下第6步中6.ROPgadget --binary ./ret2syscall --only "pop|ret" | grep "ebx" | grep "ecx" | grep "edx",,這里您提到了一句這里我們需要的是pop ebx ; pop ecx ; pop edx ; ret ,,但是得到的結(jié)果反了是pop edx ; pop ecx ; pop ebx; ret,,您說只不過順序和我們的不同,,在組織payload時候需要調(diào)換下順序,,這里您指的調(diào)整payload就是調(diào)整后面分別對應(yīng)ebx ecx edx的參數(shù)一一對應(yīng)即可,,意思就是這里對ebx,、ecx、edx他們?nèi)齻€pop順序是沒有要求的是嗎,,我們只要保證這三項分別存入對應(yīng)的參數(shù)/bin/sh,、0、0,,然后返回到int 0x80就可以了是嗎,,我可以理解為假如這里我們尋找到的是pop ebx ; pop ecx ; pop edx ; ret,那么exp中payload應(yīng)該改成

1
payload  =  'a'*offset  +  pop_eax  +  p32(0xb+  pop_edx_ecx_ebx  +    bin_sh  +  p32(0+  p32(0)    +  int_0x80

就可以了呢,?

收藏
1條回答
Roger 2023-5-23 2023-5-23編輯

您仔細(xì)想一下就明白了,,這里我們提前在棧里覆蓋了參數(shù),這些參數(shù)是要pop到寄存器中的,,而我們在棧中存放數(shù)據(jù)的時候,,預(yù)想的彈棧順序是ebx,ecx,,edx,,而我們找到的代碼小片段只有edx,ecx,,ebx,,這就導(dǎo)致我們必須調(diào)整棧中參數(shù)的存放位置,。

 

我們找到程序小片段中的ebx,ecx,,edx的順序是無所謂的,,這無非就是設(shè)置寄存器的順序不同而已,您在設(shè)計棧中的數(shù)據(jù)時,,和指令片段的順序一致即可,。64位需要使用寄存器+系統(tǒng)調(diào)用號來實現(xiàn)調(diào)用函數(shù),32位程序使用棧傳參,,64位程序使用寄存器傳參

回復(fù) 已采納
零基礎(chǔ)入門pwn
  參與學(xué)習(xí)     1818 人
  提問次數(shù)     36 個
《零基礎(chǔ)入門pwn》,短時間內(nèi)踏入漏洞利用的大門,,快速成為一名合格的pwn題選手
0
我的提問
0
我的回答
0
學(xué)習(xí)收益