(08.07.2023 15:42)Elmore Wrote: (08.07.2023 12:23)MOP Wrote: (08.07.2023 11:57)Elmore Wrote: У меня просьба: либо изменить способ смены языка, либо убрать полностью.
Распространяя MoP через Лаунчер часто сталкивались с проблемой блокировки игры антивирусами на разном этапе, и метод смена языка одна из причин.
Лучше уж пусть будет две чистые раздельные версии ru/en, зато антивири не будут наводить панику и негатив на неразберающихся игроков.
К сожалению, думаю, это мало что решит, если решит вообще. MoP целиком состоит из ассемблерного кода, так что мне приходилось прибегать к таким извращениям, дабы обмануть антивирусы, что страшно вспоминать... Особенно гнобят они самое сердце мода - Werd.dll.
Да и выбор языка происходит лишь при первом запуске свежеустановленной игры, хотя его потом и можно поменять в любом из редакторов - существ, заклинаний или городов. То есть, предложение подразумевает, что, помимо игры, придётся ещё и убрать двуязычность из всех редакторов.
(08.07.2023 12:23)MOP Wrote: То есть, предложение подразумевает, что, помимо игры, придётся ещё и убрать двуязычность из всех редакторов.
Именно так. Я сужу по своей практике:
На чистой виртуалке win10 при выборе языка defender блокировал MoP. И на сколько мне помнится, разблокировать потом крайне не просто 
В то время как на exe набирается репутация и со временем проблема сглаживается, действия с изменением файла остаются опасным сценарием навсегда.
Если есть возможность, предлагаю еще раз проверить на чистой win10-11 (виртуалка) актуальную реакцию встроенного антивируса.
Цель именно максимально уменьшить негативный опыт для пользователей при установки и использования MoP.
Как мне кажется, двумя языками простые игроки пользовать не будут, а кому понадобится для модинга - сможет установить и версию с другим языком.
Не согласен. Разделение версии ru\en, автору мода, очень удлинит время разработки, как следствие вызовет неэффективность разработки, объем файлов в архиве увеличиться в 2 раза.
У меня в другой игре, был опыт бороться с данной проблемой антивируса Майкрософта, ушло примерно полгода. В форуме пишут "Windows Defender" жалоба на файл DLL, я проверил сайт VirusTotal - действительно надпись красный детект. Немножко изменил ассемблер и компиляции, отправил в VirusTotal, и ура, в "Windows Defender" нет красной надписи. Опубликовал ссылку в форуме, а потом, опять пользователь пишет, что проблема с "Windows Defender", но другое название "Trojan", раньше был "Virus". То есть, "Windows Defender" всегда напридумывает, как похоже случайное генерирование названий вирусов.
Нашел решение, проверка кода на совпадение в экзешнике. Например, как в игре Wizardry 8 фан-патч 1.28, если другой экзешник, то вызывается MessageBox - всплывает диалог с заголовком "Установка\Setup", с текстом "Фан-Патч 1.28 требует наличия установленной русской версии игры Wizardry 8 (Бука)!
This Fan-Patch 1.28 requires an installed English version of Wizardry 8 by Sir-Tech!"
Отображается два текста на русском и английском, а потом вызывает Exit из msvcrt. Антивирус анализирует и понимает, что файл DLL безопасен.
В начале инициализации DLL, мой код, как пример:
Code:
proc Wiz8
.if ebp <> 0
xor eax,eax
.if dword[closeMainDLL]
inc eax
ret 0Ch;
.endif
push eax
;mov eax,0
add eax,400000h
add eax,1000h
.if dword[eax] = 6AEC8B55h;55 8B EC 6A
.if dword[eax+4] = 0BB1068FFh;FF 68 10 BB
.if dword[eax+8] = 0C068005Eh;5E 00 68 C0
.if dword[eax+0Ch] = 64004011h;11 40 00 64
.if dword[eax+10h] = 0A1h
.if dword[eax+14h] = 89645000h;00 50 64 89
.if dword[eax+18h] = 25h;25 00 00 00
.if dword[eax+1Ch] = 68EC8300h;00 83 EC 68
.if dword[eax+20h] = 89575653h;53 56 57 89
.if dword[eax+24h] = 0DB33E865h;65 E8 33 DB
.if dword[eax+28h] = 6AFC5D89h;89 5D FC 6A
pop eax
mov eax,dword[549261h+3]
.if eax <> 644CC8h
invoke MessageBox,0,mes1,wName1,10h ; даём о себе знать!
jmp .err1213
.endif
jmp .OKEIsetup2020
.endif
.endif
.endif
.endif
.endif
.endif
.endif
.endif
.endif
.endif
.endif
invoke MessageBox,0,mes0,wName,10h ; даём о себе знать!
pop eax
.err1213:
invoke exit,0
inc byte[Wiz8DLL_OFFGames]
;xor eax,eax
inc eax
ret 0Ch
.OKEIsetup2020:
.endif
inc eax
ret 0Ch
endp
Обязательно MessageBox из импорт библиотеки user32, exit из импорт msvcrt.
Никогда не отправлять файл в VirusTotal, пока идёт начало распространения файлов по всему миру.
Бизнес Антивирус берёт образец файла у людей, добавляет в статистику. Устанавливает происхождение. Потом, только добавляет в белый список.
А если отправить в VirusTotal, то неизвестные фирмы Антивирусов ничего не понимают, откуда взялся файл, который в мире не существует. Неизвестные фирмы Антивирусов решают генерировать случайные названия "Вирус" или "Троян". Почему? Потому что очень малопопулярные фирмы Антивирусов не могут победить очень сильный конкурент "Касперский", "NOD32", "Dr.Web". Все хотят выдвинуть свой антивирус на 1 место.
Советую почитать тему "Сообщения антивирусов о вирусах"
http://wforum.heroes35.net/showthread.ph...824&page=2 , это отчеты пользователей в официальный антивирус "Era%203.X.exe", затем "Era.dll". Наконец, больше нет ложных срабатываний.
_
В 3.14 и 3.15 - пользователь никогда не жаловался на красную надпись. Потому что я никогда не отпрвлял в VirusTotal. Также в MoP фан-патч 3.15 не был внедрен вызов MessageBox.......