首頁
社區(qū)
課程
招聘
shellcode編寫問題

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

 

圖片描述
代碼是這樣

 

然而執(zhí)行后啥事也沒發(fā)生,接著我用32位的_asm試著去用了一下,發(fā)現(xiàn)也不能執(zhí)行,我推測是因為我的shellcode寫的有問題,請各位大俠看一下,指點迷津,謝謝

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

要執(zhí)行shellcode的話,存放shellcode的頁面必須包含PAGE_EXECUTE屬性,調用VirtualAlloc時,最后一個參數(shù)可以使用PAGE_EXECUTE_READWRITE,另外我自己也測試了下這段代碼,發(fā)現(xiàn)拷貝后,這段shellcode有點問題,
圖片描述
另外因為我的是一個控制臺程序,所以默認情況下沒有加載User32.dll,除非在之前調用了界面函數(shù),所以調用User32!MessageBoxW函數(shù)是不可以的,因為沒有加載動態(tài)庫。
圖片描述

回復 已采納
Bad_Dream: 感謝,之后會慢慢改的
回復 2022-3-21