小编pre*_*ode的帖子

我的函数使用了多少字节?(C#)

我想计算我的函数填充多少字节,以便我可以使用CreateRemoteThread()将其注入另一个进程.一旦我知道了字节数,我就可以使用函数指针将它们写入远程进程.我在网上找到了一篇文章(参见http://www.codeproject.com/KB/threads/winspy.aspx#section_3,第三章),他们在C++中执行以下操作:

// ThreadFunc
// Notice: - the code being injected;
//Return value: password length
static DWORD WINAPI ThreadFunc (INJDATA *pData)
{
//Code to be executed remotely
}
// This function marks the memory address after ThreadFunc.
static void AfterThreadFunc (void) {
}
Run Code Online (Sandbox Code Playgroud)

然后他们使用以下方法计算ThreadFunc填充的字节数:

const int cbCodeSize = ((LPBYTE) AfterThreadFunc - (LPBYTE) ThreadFunc);
Run Code Online (Sandbox Code Playgroud)

使用cbCodeSize它们在远程进程中为注入分配内存ThreadFunc并写入ThreadFunc已分配内存的副本:

pCodeRemote = (PDWORD) VirtualAllocEx( hProcess, 0, cbCodeSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE );       
if (pCodeRemote == NULL)
__leave;
WriteProcessMemory( hProcess, …
Run Code Online (Sandbox Code Playgroud)

c# multithreading

4
推荐指数
1
解决办法
447
查看次数

标签 统计

c# ×1

multithreading ×1