IPB

Здравствуйте, гость ( Вход | Регистрация )

> patсher_x86
baratorch
сообщение 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, тебе это интересно?
Просто у меня весьма ограничено свободное время и совершенно не хочется его тратить впустую.

На вог-форуме есть тема по патчеру, но, к сожалению, цель с которой я эту тему там создавал - не достигнута.
Эра так и не встала на рельсы патчера. Берсу не до эры и тем более не до патчера, поэтому писать туда смысла не вижу.


--------------------
HoMM 3 HD:
http://sites.google.com/site/heroes3hd
последняя версия - 3.61f


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
 
Start new topic
Ответов
Berserker
сообщение 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 попадает и список патчей.


--------------------


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post

Сообщений в этой теме
- 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
- - Berserker   Бара, зацени: http://rgho.st/7pBPttP9k Кодinstanc...   24 Nov 2017, 23:36
- - 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 13 May 2026 - 04:03
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика