ку, снова обращаюсь за помощью, подскажите пожалуйста как найти объект по айдишнику, и как проверить в зоне он стрима или нет)
sampapi + pluginsdk
if (sampapi::v037r1::RefNetGame()->GetObjectPool()->Get(ObjectID) != NULL)
// в зоне стрима
Простым консольным приложением , менять не получится, так как по факту оно не инжектится в игру, а значит и память ее менять не может, но есть другое решение, создание экстернал чита, https://www.blast.hk/threads/156284/Можно ли как-то в realtime хукать функции и вообще работать с памятью? Пробовал консольным приложением менять че-то (используя SAMP-API c++), но не получалось, хотя с длл все норм. Можете, пожалуйста, обьяснить, что я делаю не так?
а как то можно не в "realtime"?Можно ли как-то в realtime хукать функции и вообще работать с памятью? Пробовал консольным приложением менять че-то (используя SAMP-API c++), но не получалось, хотя с длл все норм. Можете, пожалуйста, обьяснить, что я делаю не так?
Дигерман сверху правильно меня понял, хотел сделать external processа как то можно не в "realtime"?
вероятно ты писал в память своей проги а не игры
А может есть что-то в стиле c++?Простым консольным приложением , менять не получится, так как по факту оно не инжектится в игру, а значит и память ее менять не может, но есть другое решение, создание экстернал чита, https://www.blast.hk/threads/156284/
а это стиль д++ что ли?А может есть что-то в стиле c++?
Что ты хочешь написать?А может есть что-то в стиле c++?
Читать и писать память достаточно легко, для этого есть ReadProcessMemory и WriteProcessMemory. С хуками сложнее, тут надо ставить брейкпоинты, либо инжектить код с установкой хуков и пробросом сообщений в твоё приложение (например через сокеты). Это будет работать достаточно медленно, так что не рекомендую ставить хуки из внешнего приложения. Напомню что External приложения не должны редактировать память процесса, чтобы не быть обнаруженными.Можно ли как-то в realtime хукать функции и вообще работать с памятью? Пробовал консольным приложением менять че-то (используя SAMP-API c++), но не получалось, хотя с длл все норм. Можете, пожалуйста, обьяснить, что я делаю не так?
сейчас проверил, не работает, как я понимаю, в хэндлрпц кидается не интерфейс ракпира, а он сам из-за чего вмп не хочет работать (тестил на 14 методе)можно получить его с, например, RakPeer::HandleRPCPacket (https://github.com/imring/RakHook/blob/master/src/RakHook/rakhook.cpp#L30)
или с RakClientInterface, поскольку он является родительским для RakClient (https://github.com/dashr9230/SA-MP/blob/master/raknet/RakClient.h#L31)
RakClientInterface - sizeof(RakPeer)
Посмотреть вложение 206717
virtual bool Send( RakNet::BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, PlayerID playerId, bool broadcast )=0;
Ой , что-то я оглянулся и в статье мне показалось, что автор использовал С99, а сам код пока глянуть не удосужилсяПосмотреть вложение 207793
Это хорошая C++ библиотека для взаимодействия с внешними процессами. Там как раз есть то что тебе нужно - инжект кода:
Посмотреть вложение 207794
Если ты имел в виду из чего-то нативного, то такого нет.
Единственная библиотека которая поставляется, это STL и она мультиплатформенная, поэтому там не предусмотрена работа с WINAPI.