Локализуем ZoneAlarmPro v3.7.159Эта критическая ошабка вызвана алгоритмом проверки файла от изменений, чтобы его обойти, нужно "занопить" условный переход по аадресу 0041B019h 0041B014 mov al, [ebp+0Ch] 0041B017 test al, al 0041B019 jnz short loc_41B031 0041B01B mov esp, [ebp-18h] 0041B014 mov al, [ebp+0Ch] 0041B017 test al, al 0041B019 nop 0041B01A nop 0041B01B mov esp, [ebp-18h]Или вот так, если смотреть на файл как на бинарный массив (Первая колонка - смещение от начала файла, вторая - данные до изменения, третья - данные после изменения) 0001B019: 75 90 0001B01A: 16 90Но если мы собрались локализовать данную программу, то есть способ куда лучше, в самой программе предусмотрена возможность подгрузки библиотек с переводом. Данная библиотека представляет из себя обычную DLL скомпилированную без исполняемого кода (ResourceOnly) и содержущую переведенную ресурсную часть. Имя данной библиотеки формируеться из сложения двух строк "ZAProLang" + код_языка.
Код языка можно получать автоматически с помощью функции API WINDOWS
GetUserDefaultLangID переведя возвращаемое значение в строку HEX с 4 символоми,
в моем случае получилось "0419" (WinXP PROF SP1 RUS), либо укаазать явным
образом по ветке реестра (строковый параметр) В этом случае имя подгружаемой библиотеки получаеться "ZAProLang0419", расширение файла, я так понял, указываать не нужно.
Теперь осталось самое простое с помощью ResourceHacker вытащить ресурсы
из программы, перевести их, и собрать библиотеку с ключами
--
|