首页
社区
课程
招聘
shellcode编写问题

为了实现x64的汇编,我使用了VirtualAlloc申请了一段内存,然后用RtlMoveMemory把shellcode放到内存里,最后用CreateThread去执行这一段机令
汇编的内容我写的是这样:
push 0
push 0
push 0
push 0
call MessageBoxW

 

图片描述
代码是这样

 

然而执行后啥事也没发生,接着我用32位的_asm试着去用了一下,发现也不能执行,我推测是因为我的shellcode写的有问题,请各位大侠看一下,指点迷津,谢谢

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

要执行shellcode的话,存放shellcode的页面必须包含PAGE_EXECUTE属性,调用VirtualAlloc时,最后一个参数可以使用PAGE_EXECUTE_READWRITE,另外我自己也测试了下这段代码,发现拷贝后,这段shellcode有点问题,
图片描述
另外因为我的是一个控制台程序,所以默认情况下没有加载User32.dll,除非在之前调用了界面函数,所以调用User32!MessageBoxW函数是不可以的,因为没有加载动态库。
图片描述

回复 已采纳
Bad_Dream: 感谢,之后会慢慢改的
回复 2022-3-21