Всем привет. Буду краток.
Подскажите, если подложить самописный dll в архив mpq, то можно ли как-то использовать его функции внутри war3map.j?
И запустится ли вообще карта?
Версия игры 1.27b.

Принятый ответ

Нужна функция ExportAndInjectDLL (название примерное), она есть в первом и втором мемхаке расчитанным на 126, не осведомлён о возможностях 127b, если там только чтение памяти без записи, то ничего не получится.
Так что если вы думаете, что мемхаки одинаковые то это не так. Хотя могу использовать одну и ту же библиотеку
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
32
3 года назад
0
Нужна функция ExportAndInjectDLL (название примерное), она есть в первом и втором мемхаке расчитанным на 126, не осведомлён о возможностях 127b, если там только чтение памяти без записи, то ничего не получится.
Так что если вы думаете, что мемхаки одинаковые то это не так. Хотя могу использовать одну и ту же библиотеку
Принятый ответ
0
32
3 года назад
0
Ну в теории возможно, на практике - нужно найти LoadLibraryA c помощью мемхака, а также найти функции для работы с мпк, нужно выгрузить библиотеку из архива карты, проверить есть ли она, потом если процесса с этой либой в варе нету, загрузить, ну а потом еще и найти в потоке либы эти функции которые ты там хочешь юзать, это все должно быть рассчитано на 1.27б ибо твоей либе без знаний оффсетов на функции Game.dll делать нечего. Вариант не очень то надежный, да и может напоротся на
  1. библиотека не найдена
  2. не удалось распаковать библиотеку
  3. процесс не отвечает.
Ну и твоя библиотека будет мозолить глаза юзерам в папке с варом...
Там вроде были пути покруче, как полностью код карты в дллке, а wa3map,j имеет урезаный мемхак как у китайцев и альтернативный вариант запуска либы. Ну и работает, там решают проблемы чтобы твои патчи и либы не мешали работать другим картам, ибо просто так ты их не выгрузишь и до перезапуска игры они висят в памяти игры.
0
32
3 года назад
0
ибо просто так ты их не выгрузишь и до перезапуска игры они висят в памяти игры
с выгрузкой всё хорошо, даже на 1 мемхаке я делал когда подшивал wfe в карту, я выгружал библиотеку при наведении на инвентарь, и обратно загружал, кароче туда сюда дёргал, вообще не было проблем даже в мультиплеере

Вспомнил, по моему для выгрузки из памяти мне отдельно Алексей делал функцию, это не коробочное решение
0
2
3 года назад
Отредактирован Rejuvenation
0
Да я просто все про античит для 1.27b парюсь, уже весь xgm наверное вкурсе)
Анрайз же выкатил свой мемхак 1.5 версии, там добавил поддержку для 1.27b и 1.28f и ушел в закат. У меня не получилось все это сделать для своей карты, а помочь пока что никто не может.
Думал может как-то можно без мемхака обойтись и через самописный dll это проверять с WinAPI. Но если без мемхака никак не подружить dll с jass, то понятно.
Спасибо за советы, я нашел и ExportAndInjectDLL, и LoadLibraryA
0
32
3 года назад
0
Rejuvenation, ну вот ты их нашел, они не работают или не знаешь как использовать?
0
2
3 года назад
0
Не получается настроить, они так или иначе используют std_call, а там в свою очередь идет WriteRealMemory. Это чистой воды мемхак уже.
Но у меня не получается его засэтапить для 27 версии.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.