Если мне известен адрес метода, который я хочу вызвать в другом процессе (C++), как я могу это сделать на C#?Вызвать метод работающего процесса
Смещение метода всегда такое же.
Мой текущий код:
struct DataToPass
{
int field;
}
delegate void Caller(DataToPass data);
public void Call()
{
DataToPass data = new DataToPass();
data.field = 12345;
IntPtr callptr = new IntPtr(myprocess.Modules[0].BaseAddress.ToInt32() + 0x3A5582);
Caller call = (Caller)Marshal.GetDelegateForFunctionPointer(callptr, typeof(Caller));
call(data);
}
Но когда я запускаю программу, я получаю сообщение об ошибке:
An unhandled exception of type 'System.AccessViolationException' occurred in testcall.exe
Вы пытаетесь написать вирус на C#? Какую проблему ты пытаешься решить? – oleksii
@oleksii C# вирусы - последняя горячая тенденция, я думаю. –
Я написал маленького помощника клиента для игры для нашего игрового сервера. Я изменил некоторые значения (настройки автомобиля и т. Д.), Но я должен вызвать функцию в игре, чтобы пересчитать новые значения. – user2759203