//Write To Memory
DWORD OldProtection;
void WriteToMemory(DWORD Offset, DWORD Pointer, DWORD Length){
VirtualProtect((void *)Offset, Length, PAGE_EXECUTE_READWRITE, &OldProtection);
RtlMoveMemory((void *)Offset, (const void*)Pointer, Length);
VirtualProtect((void *)Offset, Length, OldProtection, &OldProtection);
}
//------------------------------
//Modify Memory
void ModifyMemory( BYTE *Offset, BYTE *ByteArray, DWORD Length){
for(DWORD i = 0; i < Length; i++)
WriteToMemory((DWORD)Offset + i, (DWORD)ByteArray + i, 1);
}
ModifyMemory((BYTE*)[Address],[Bytes to write with], [amount of bytes]);
#define Address1 0xFFFFFF //Address
BYTE AddressBytes[] = {0x90,0x90,0x90};//3 Byte NOP
ModifyMemory((BYTE*)Address1,AddressBytes,3); //Call Function