Инструкция по портированию патчей
Софт который нам понадобится:
SHXCoDec и какой-нибудь hex редактор, я использую русифицированный WinHEX
И так:
1) Нам понадобятся две прошивки: та под которую уже существует патч, назовём её firm1 и вторая та, под которую мы портируем патч, назовём её firm2
2) Разбираем обе прошивки на кодовые группы в SHXCoDec, нам понадобятся только CG1, остальные файлы можно удалить
3)Возьмём для примера такой патч под firm1
[Patch_Code]
003D5510: 12AB
т.е. по адресу 0065C730 мы записываем два байта 12AB
Открываем firm1_cg1.smg в winhex, нажимаем Alt+G, вводим адрес 003D5510, мы попали в то место где меняет данные патч. Мы видим, что раньше там находились байты 9A0F. Теперь нам надо найти где эти байты находятся в firm2. Открываем firm2_cg1.smg в winhex, если мы будем искать байты 9A0F то мы найдём тысячи адресов, поэтому надо выбрать паттерну побольше, выделяем в firm1_cg1.smg около 10 байт начиная с 9A0F, это 9A0F90039205889A21001C, теперь ищем эту паттерну в firm2_cg1.smg, для этого нажимаем alt+ctrl+f и копируем туда нашу паттерну и жмём ОК, мы нашли её по адресу 003D5798 это и есть наш новый адрес.
4) Исправляем патч на
[Patch_Code]
003D5798: 12AB
Всё патч портирован!
В качестве firm1 использовалась 6fr, а вместо firm2 - 70r. Gfnx был написан произвольно, чисто для примера.
Прошу не судить строго.
Софт который нам понадобится:
SHXCoDec и какой-нибудь hex редактор, я использую русифицированный WinHEX
И так:
1) Нам понадобятся две прошивки: та под которую уже существует патч, назовём её firm1 и вторая та, под которую мы портируем патч, назовём её firm2
2) Разбираем обе прошивки на кодовые группы в SHXCoDec, нам понадобятся только CG1, остальные файлы можно удалить
3)Возьмём для примера такой патч под firm1
[Patch_Code]
003D5510: 12AB
т.е. по адресу 0065C730 мы записываем два байта 12AB
Открываем firm1_cg1.smg в winhex, нажимаем Alt+G, вводим адрес 003D5510, мы попали в то место где меняет данные патч. Мы видим, что раньше там находились байты 9A0F. Теперь нам надо найти где эти байты находятся в firm2. Открываем firm2_cg1.smg в winhex, если мы будем искать байты 9A0F то мы найдём тысячи адресов, поэтому надо выбрать паттерну побольше, выделяем в firm1_cg1.smg около 10 байт начиная с 9A0F, это 9A0F90039205889A21001C, теперь ищем эту паттерну в firm2_cg1.smg, для этого нажимаем alt+ctrl+f и копируем туда нашу паттерну и жмём ОК, мы нашли её по адресу 003D5798 это и есть наш новый адрес.
4) Исправляем патч на
[Patch_Code]
003D5798: 12AB
Всё патч портирован!
В качестве firm1 использовалась 6fr, а вместо firm2 - 70r. Gfnx был написан произвольно, чисто для примера.
Прошу не судить строго.