如何在內聯asm中編寫此代碼?我想把數據包的值寫入inline asm的洞穴內存位置,怎麼樣?我可以用WriteProcessMemory的做,但我想擺脫這一點,並與ASM內聯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,&值,0)會這樣做,我只是尋找同樣的方法來」內存asme的「WriteProcessMemory」
你正在使用哪種編譯器和操作系統? –
VC++ Windows 8. – Dean
爲什麼內聯asm?爲什麼不簡單地'memcpy((void *)洞穴,(void *)數據包,長度* sizeof(BYTE))' – log0