我在Windos 10 x64上使用VS2017。
运行((void(*)(LPVOID))pAddress)(pParamData);
后,我总是缓冲区溢出。
我有两个问题。
1.我的“使用参数运行shell代码”的实现。是对的吗?
2.还有另一种运行Shell代码的方法吗? (CreateThread
除外)
void *pAddress = VirtualAlloc(0, dwCodeSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
memcpy_s(pAddress, dwCodeSize, pCodeData, dwCodeSize);
((void(*)(LPVOID))pAddress)(pParamData);
VirtualFree(pAddress, 0, MEM_RELEASE);
我认为这个问题对您来说可能太容易了,但是我不太了解如何运行Shell代码以及反汇编。
请用详细评论回答我的问题。