これをインラインasmでどのように書くことができますか? インライン asm の洞窟のメモリ位置に packet の値を書き込みたいのですが、どうすればよいですか? 私は WriteProcessMemory でそれを行うことができますが、それを取り除き、asm に置き換えたいです
int SendToClient(BYTE *packet, int Length)
{
int cave = (int)VirtualAllocEx(hProcess, NULL, Length, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
if (WriteProcessMemory(hProcess, (void*)cave, packet, Length, NULL))
{
}
__asm
{
//how?
}
}
たとえば、senderOffset というアドレスから読み取りたい場合は、次のようにします。
int GetSenderID()
{
int value;
__asm
{
mov eax, senderOffset
mov value, eax
}
return *(int*)value;
}
これは、「ReadProcessMemory(GetCurrentProcess(), (VOID*)senderOffset, &value, 0)」が行うことを行っています。インライン asm を使用して「WriteProcessMemory」を行うのと同じ方法を探しています。