категории | RSS

В этой статье хочу рассказать как самостоятельно пропатчить exe или dll файл,чтобы не ждать когда это сделает для вас кто-то другой.
Автор-Я.Статья не открывает Америку,просто поможет новичкам освоить самостоятельный патчинг бинарных файлов.

Зачем нужен этот патчинг?
Отвечаю - с помощью RomPatcher можно пропатчить только файлы, которые находятся в роме, то есть при старте смартфона загружаются в ОЗУ. Файлы вне рома не доступны для патчинга ROMpatcheroм, их приходится модифицировать самостоятельно. Встречаются патчи, которые патчат файлы,которые на 9.1, 9.2 находятся в роме,а на 9.3 же эти файлы вне рома. Поэтому и появляется необходимость самостоятельно модифицировать нужные файлы.

Примеры таких патчей:
- CamTime (увеличение времени бездействия камеры);
- DisableActiveDivertsNote (выключение сообщения о переадресации);
- Disable Loudspeaker Note (выключение сообщений о включении громкой связи);
- ChangeSplashScreen (изменение сплеша перед ручками)

Возьмем для примера два патча: DisableLoudspeakerNote и ChangeSplashScreen, на их основе разберем патчинг.

Вот текст патчей:

; *** Path: Disable Loudspeaker Note ***
; by CODeRUS
; in 0x7DA
SnR:sys\bin\phone.exe:196D1000:00211000.


;*** ChangeSplashScreen ***
SnR:sys\bin\SplashScreen.exe:5A003A00530050004C00410053004800530043005200450045004E002E004D00490046:63003A00530050004C00410053004800530043005200450045004E002E004D00490046


Нас интересует последняя строка. В ней указан файл,который патчится и собственно что на что меняется.

Жирным цветом выделен файл который патчится.
Красным-искомое значение в файле.
Синим-то,на что нам нужно поменять искомое значение в файле.

Exe и Dll бывают двух видов:сжатые и разжатые. Патчить нужно только разжатые файлы.
На диске Z есть как сжатые, так и разжатые файлы.
Для Symbian есть 2 утилиты для сжатия/расжатия бинарных файлов: ZntxHAN и SyUpack, но они не всегда могут работать с бинарными файлами диска Z (не распаковывают и не запаковывают их).
Поэтому лучше использовать утилиту для ПК.
Находится она Здесь .
Здесь упрощалка к ней!!
Ей и проверяем запакован файл или нет.

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

Для начала нам нужно определить в роме файл или нет,ведь патч может не работать и потому,что просто не подходит для этого файла.
Узнать можно у создателя патча или самостоятельно.
Чтобы узнать самостоятельно нужно открыть расжатый файл в hex-редакторе (MobilHex, встроенный hex-редактор в X-Plore).
Если бинарный файл вне рома,то адресам 18, 19, 1A, 1B соответствуют байты 00 00 0A 00.

Тут нужно рассказать немного о структуре хекс-редактора и принципе редактирования.
В левой стороне в основном расположены начальные адреса строки байтов. По центру-сами байты. Справа-переведенный из байтов текст.
Нумерация адресов идет в шестнадцатиричной системе. Тоесть порядок нумерации такой:

0-9,0a,0b,0c,0d,0e,0f,10,11-19,1a,1b,1c,1d,1e,1f,....

На красным выделены нужные значения.В белой табличке адреса байтов,чтобы было понятнее и нагляднее.

Начинаем редактирование файла:

1. Копируем файл Z:/sys/bin/phone.exe в любую удобную директорию (у меня он был не сжат).

2. Открываем phone.exe в любом hex-редакторе

3. Выбираем в опциях и пишем искомое значение (обозначено красным цветом).
Если поиск не даст результатов, значит патч не подходит для этого файла. Тогда вам нужно обращаться к создателю патча, самостоятельно вы ничего не сможете сделать.
Если искомое значение найдено, то меняем его на нужное значение (обозначенное синим цветом).
Для наглядности смотрим на скрины:
 1
и
 2
(со SplashScreen.exe и патчем поступаем тем же образом).

4. После замены сохраняем файл.

5. После перемещаем модифицированный файл в c:/sys/bin/.Также если это exe то нужно не забыть скопировать соответствующий ему ресурсный файлик(если он у него есть конечно) из Z:/resource/apps/ в соответствующую директорию на диске С, иначе будут вечные перезагрузки смартфона. Для phone.exe это phone.r16, а у splashscreen.exe ресурсного файлика нету (значит и копировать не чего).

6. После применяем и ставим в автозапуск домайн ромпатчера (RPDomainPlus) патч c2z4bin.

7. Перезагружаемся!

Если все сделано правильно,то модифицированый файл должен работать.

На этом все.
Удачи в патчинге!!!smile

Спасибо Molosar за помощь в написании статьи.Часть статии о редактировании сплэша его рук делоsmile))

Источник новости: dimonvideo.ru

NGAGE13
2010-02-19T12:26:47Z
Здесь находятся
всего 0. За сутки здесь было 0 человек

Комментарии 11

#11   Elektric.75    

а ты перед тем как копировать файл с диска Z патч выключил?
Наверное нет. Попробую выкл.
Всё, спасибо. Работает.


* редактировал(а) Elektric.75 10:17 24 фев 2010

0 ответить

#11   NGAGE13    

Electrik.75, а ты перед тем как копировать файл с диска Z патч выключил?
-------------
Добавлено в 00.30: После того как был применен патч, на диске Z будет модифицирнованный файлsmile))


0 ответить

#11   Elektric.75    

Если поиск не даст результатов, значит патч не подходит для этого файла.
А как же быть, если поиск не даёт результатов, а патч РАБОТАЕТ??? Почему так?


0 ответить

#11   NGAGE13    

Bikar, патчи поданы для примера.если они не работают, указан другой файл в них, то нужно обращаться к создателюsmile


0 ответить

#11   molosar    

Bikar, вообщето это не папка, а файл winked И указаные в описании патчи не совместимы с 9.4 на сколько мне помнится.


0 ответить

#11   Bikar    

на 5800 нет такой папки phone.exe, есть только PhoneServer.exe


0 ответить

#11   NGAGE13    

Спасибо вам всемsmile


0 ответить

#11   Simbarus    

Вот... настоящая статья. Вообще одна из немногих которые выкладывались за последнее время. Автору спасибо! fellow


0 ответить

#11   Eyn-steyn    

Спасибо, понадобится smile


0 ответить

#11   mb_jilin98    

Молодца, дельная статья.


0 ответить

Яндекс.Метрика