Здравствуйте, гость ( Вход | Регистрация )
21 Oct 2016, 13:41
(Сообщение отредактировал baratorch - 21 Oct 2016, 13:43)
Сообщение
#1
|
|
|
Immortal Сообщений: 2 414 Спасибо сказали: 4621 раз |
Патчер - это инструмент для модификации любого исполняемого кода (не только героев). Патчер делает модинг максимально стандартизованным, удобным и безопасным. А так же помогает достичь максимальной совместимости между несколькими независимо разрабатываемыми модификациями одного кода (пример - Хд, Хота и ХВ-рулз).
С хд и хотой поставляется уже патчер версии 4.2.2 в нем теперь нет понятия неотменяемого патча. появились методы WriteAsmPatch и WriteAsmHook, которые позволяют писать конструкции типа: Код _PI->WriteAsmHook(0x4F8662, "push 1", "call %d", Sleep, "_ExecDefault", 0); Код _PI->WriteAsmPatch(0x59D715, "MOVZX ESI,BYTE PTR DS:[EAX + EBX - 0x159]", "MOV EAX, DWORD PTR DS:[EBX + 0x60]", "TEST EAX,EAX", "JNZ SHORT 0x59D72A", "CMP DWORD PTR DS:[EBX + 0x74], 1", "JE SHORT 0x59D735", "CMP EAX, 1", "JNZ SHORT 0x59D7A9", "CMP DWORD PTR DS:[EBX + 0x74], 2", "JNZ SHORT 0x59D7A9", "PUSH DWORD PTR DS:[EBX + 0x6C]", "PUSH DWORD PTR DS:[EBX + 0x68]", "MOV ECX, DWORD PTR DS:[EBX + 0x64]", "PUSH ESI", "CALL 0x4E54B0", "MOV ECX, DWORD PTR DS:[EBX + 0x64]", "MOVSX ECX, WORD PTR DS:[ECX + 0x18]", "CMP EAX, ECX", "JG SHORT 0x59D762", "MOV EDX, DWORD PTR DS:[EDI + 0x8]", "MOVZX EAX, BYTE PTR DS:[EDX + EBX - 0x159]", 0); Так же в новом патчере практически устранена разница между Code и Data патчами. Т.е. Code патч всегда пишет код именно так как мы задумали, без неочевидных конвертаций относительных адресов. И еще ряд мелких правок и багфиксов. *** Кому-нибудь это вообще интересно? Расписывать ли мне здесь общую документацию, изменения и документацию к новому функционалу? Кто-нибудь, кроме меня, Сава и феанора еще пользуется патчером? feanor, тебе это интересно? Просто у меня весьма ограничено свободное время и совершенно не хочется его тратить впустую. На вог-форуме есть тема по патчеру, но, к сожалению, цель с которой я эту тему там создавал - не достигнута. Эра так и не встала на рельсы патчера. Берсу не до эры и тем более не до патчера, поэтому писать туда смысла не вижу. -------------------- |
|
|
|
![]() |
24 Nov 2017, 23:36
Сообщение
#2
|
|
![]() Immortal Сообщений: 1 468 Спасибо сказали: 1153 раза |
Бара, зацени: http://rgho.st/7pBPttP9k
Код instances(44): 'D:\Heroes 3\era.dll', 'MonDescription', 'HD.Plugin.QuicksandMines', 'D:\Heroes 3\Mods\WoG\EraPlugins\erm_hooker.era', 'WoG Patcherizer', 'WoG', 'remove exe protection.bin', 'New_NPC_Dlg', 'adventure menu button.bin', 'always summon ship.bin', 'disable dracolich block.bin', 'dismiss last stack.bin', 'display primary skills over 99.bin', 'dl buttons fix.bin', 'hero screen button.bin', 'inferno gates teleports to any town.bin', 'magic button fix.bin', 'no gifts from allies.bin', 'no load game confirmation.bin', 'no real time trigger.bin', 'no retreat request.bin', 'no secondary skills limit.bin', 'phoenix buttons.bin', 'skin.bin', 'transfer last stack.bin', 'spellbook.bin', 'acredit.bin', 'ai sod radius.bin', 'enable next hero button.bin', 'enable town info.bin', 'fix erm ca b2 command.bin', 'fix erm check syntax.bin', 'fix erm ss a command.bin', 'fix erm tr r roads.bin', 'fix towers damage.bin', 'mp3 44khz patch.bin', 'no erm he f redraw.bin', 'no erm ow r redraw.bin', 'no erm scripts turning off.bin', 'no memory and hdd checks.bin', 'no multiplayer notes.bin', 'remove black screens.bin', 'skeleton transformer fix.bin', 'zvslib.bin', places count: 1433 patches count: 1460 Все патчи создаются через патчер. Бинарные патчи применяются с созданием уникального экземпляра патчера для каждого файла. По F11 или вылету в папку Debug\Era попадает и список патчей. -------------------- |
|
|
|
baratorch patсher_x86 21 Oct 2016, 13:41
Etoprostoya А patcher_x64 сложно будет сделать? 21 Oct 2016, 14:10
baratorch Цитата(Etoprostoya @ 21 Oct 2016, 16:10) ... 21 Oct 2016, 16:43
igrik Я пользуюсь патчером. И да - мне это интересно.
Н... 21 Oct 2016, 14:18
XEPOMAHT Теоретически не представляю как пользоваться patсh... 21 Oct 2016, 16:44
baratorch XEPOMAHT, да, pather_x86 - это инструмент именно д... 21 Oct 2016, 16:55
t800 Цитата(baratorch @ 21 Oct 2016, 19:55) XE... 21 Oct 2016, 17:39
baratorch Цитата(t800 @ 21 Oct 2016, 19:39) Здравст... 25 Oct 2016, 08:05
t800 Цитата(baratorch @ 25 Oct 2016, 11:05) Ци... 25 Oct 2016, 21:43
tolich Цитата(t800 @ 25 Oct 2016, 21:43) Может я... 25 Oct 2016, 23:39
Etoprostoya В составе Object File Converter есть дизассемблер ... 21 Oct 2016, 17:42
feanor Цитатаfeanor, тебе это интересно?
В принципе, инте... 21 Oct 2016, 17:52
baratorch Положил на дропбокс патчер 4.2.3 (отличается от 4.... 22 Oct 2016, 00:53
feanor Лямбды, ня! 22 Oct 2016, 03:15
igrik А в чем принципиальная разница Hi и Lo хуков?
И ещ... 25 Oct 2016, 17:55
baratorch ЦитатаА в чем принципиальная разница Hi и Lo хуков... 26 Oct 2016, 08:57
igrik Цитата(baratorch @ 26 Oct 2016, 08:57) Ци... 26 Oct 2016, 10:24
AlexSpl ЦитатаПатчер - это инструмент для модификации любо... 17 Sep 2017, 20:25
baratorch Цитата(AlexSpl @ 17 Sep 2017, 22:25) Цита... 17 Sep 2017, 22:09
AlexSpl Было бы очень здорово! Патчить вручную не само... 17 Sep 2017, 22:28
Berserker ЦитатаНа вог-форуме есть тема по патчеру, но, к со... 08 Nov 2017, 16:38
baratorch в патчере в мосте лоу-хука до сих пор портянка ком... 09 Nov 2017, 22:23
Berserker Спасибо, старого файла хватит вполне, сам добавлю ... 10 Nov 2017, 23:33
baratorch озадачился я вопросом скорости выполнения моста
со... 11 Nov 2017, 16:13
Berserker Привет, спасибо за тест . Удивлён несколько. Хотя ... 11 Nov 2017, 16:18
baratorch Цитата(Berserker)Самый простой переходник:...
Ну т... 11 Nov 2017, 16:49
Berserker Странно, что я pushfd/popfd не добавил раньше. Есл... 11 Nov 2017, 18:08
Berserker Пока что вылеты. Я так понимаю, как LoHook нет мет... 11 Nov 2017, 18:57
Berserker Поскольку у Эры с плагинами тоже вопрос обратной б... 11 Nov 2017, 19:19
baratorch Цитата(Berserker)Я так понимаю, как LoHook нет мет... 11 Nov 2017, 21:01
baratorch переделал свой тест
добавил в тестируемый код pus... 11 Nov 2017, 21:21
Berserker Цитатаесли да, то такое нельзя сделать.
Именно так... 11 Nov 2017, 23:35
baratorch Цитатаадрес затёртого кода, хранимого в мосте:
[за... 12 Nov 2017, 06:48
Ben Berserker, вы могли бы подсказать, как использоват... 12 Nov 2017, 10:11
Berserker Бара, поделишься самой последней версией патчера, ... 12 Nov 2017, 12:32
Ben Цитата(Berserker @ 12 Nov 2017, 12:32) Вы... 12 Nov 2017, 13:34
Berserker У Вас должна быть возможность подгружать свои библ... 12 Nov 2017, 14:40
Ben Спасибо ! Очень интересно ! 12 Nov 2017, 14:56
Ben Цитата(Berserker @ 12 Nov 2017, 14:40) Да... 12 Nov 2017, 17:08
Ben Цитата(Berserker @ 12 Nov 2017, 14:40) Во... 13 Nov 2017, 10:22
Berserker На здоровье! Успехов Вам ) 12 Nov 2017, 15:55
feanor ЦитатаСами плагины, видимо, могут загружаться либо... 13 Nov 2017, 14:08
Berserker Ben, если речь идёт о системе плагинов, то использ... 13 Nov 2017, 16:08
baratorch Здесь последний патчер версии 4.2.9.1, хэдер для C... 14 Nov 2017, 11:23
Berserker Бара, есть возможность скомпилировать ту же DLL с ... 16 Nov 2017, 22:46
Ben Цитата(Berserker @ 16 Nov 2017, 22:46) Ба... 18 Nov 2017, 18:42
Berserker В дополнение к предыдущему посту. Бара, ты использ... 19 Nov 2017, 13:51
baratorch Berserker, в патчере целиком и полностью забито на... 19 Nov 2017, 21:25
Berserker Понял, спасибо за разъяснения. Думаю, стоит это ук... 19 Nov 2017, 22:26
baratorch ЦитатаА как насчёт map-файла? Можешь скомпилироват... 20 Nov 2017, 03:12
Berserker Если что, как работает DIRECT_ не ясно из доков:
D... 20 Nov 2017, 13:10
baratorch В DIRECT_ HiHook наша замещающая функция должна 10... 20 Nov 2017, 15:09
baratorch Патчер версии 4.3 + map-файл: скачать 22 Nov 2017, 16:07
hippocamus Не вполне понимаю, что это значит, но ты, Берс, ви... 25 Nov 2017, 00:08
Berserker Зачем же, если Эра их и так кушает? )) Скорее тепе... 25 Nov 2017, 03:13
igrik baratorch, а как вообще отменять патчи/хуки, созда... 26 Sep 2018, 09:13
VAS_SFERD А где найти исходники патчера? 15 Jan 2026, 00:00![]() ![]() |
| Текстовая версия | Сейчас: 13 May 2026 - 04:03 |
|
Copyright by Алексей Крючков
Programming by Degtyarev Dmitry |
|