【发布时间】:2015-03-28 13:55:42
【问题描述】:
我正在用 C++ 编写优化的基于 Windows 的 shellcode,但在将 C++ 中的硬编码地址传递给函数时,我遇到了问题。
例如:
My_CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)&thread_callback, NULL, NULL, NULL);
DWORD WINAPI thread_callback(LPVOID lpParam)
{
// stuff..
}
在反汇编中,它显示 CreateThread(..., cardcoded_address, ..); 相反,我想将这个地址传递给“从这个位置到 thread_callback”
有什么办法可以避免吗? (因为shellcode应该是地址无关的?)
问候。
【问题讨论】:
-
如果您使用的是 gcc 系列编译器,请使用 -fPIC
-
我正在使用 Visual Studio 2012。编辑:为什么我应该投反对票?