首頁(yè)
社區(qū)
課程
招聘
shellcode編寫(xiě)問(wèn)題

為了實(shí)現(xiàn)x64的匯編,我使用了VirtualAlloc申請(qǐng)了一段內(nèi)存,然后用RtlMoveMemory把shellcode放到內(nèi)存里,最后用CreateThread去執(zhí)行這一段機(jī)令
匯編的內(nèi)容我寫(xiě)的是這樣:
push 0
push 0
push 0
push 0
call MessageBoxW

 

圖片描述
代碼是這樣

 

然而執(zhí)行后啥事也沒(méi)發(fā)生,接著我用32位的_asm試著去用了一下,發(fā)現(xiàn)也不能執(zhí)行,我推測(cè)是因?yàn)槲业膕hellcode寫(xiě)的有問(wèn)題,請(qǐng)各位大俠看一下,指點(diǎn)迷津,謝謝

收藏
1條回答
0346954 2022-3-17

要執(zhí)行shellcode的話(huà),存放shellcode的頁(yè)面必須包含PAGE_EXECUTE屬性,調(diào)用VirtualAlloc時(shí),最后一個(gè)參數(shù)可以使用PAGE_EXECUTE_READWRITE,另外我自己也測(cè)試了下這段代碼,發(fā)現(xiàn)拷貝后,這段shellcode有點(diǎn)問(wèn)題,
圖片描述
另外因?yàn)槲业氖且粋€(gè)控制臺(tái)程序,所以默認(rèn)情況下沒(méi)有加載User32.dll,除非在之前調(diào)用了界面函數(shù),所以調(diào)用User32!MessageBoxW函數(shù)是不可以的,因?yàn)闆](méi)有加載動(dòng)態(tài)庫(kù)。
圖片描述

回復(fù) 已采納
Bad_Dream: 感謝,之后會(huì)慢慢改的
回復(fù) 2022-3-21
  參與學(xué)習(xí)     人
  提問(wèn)次數(shù)     100 個(gè)
我的問(wèn)答 領(lǐng)取收益
0
我的提問(wèn)
0
我的回答
0
學(xué)習(xí)收益