| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Автопатч формы из RCData в exe-файле |
| Автор: fridkaratel 21.12.2008, 20:02 | ||
| В-общем, появилась необходимость пропатчить файл приложения и изменить параметры формы в RCData. Программа не зашифрована, т.е. все данные можно просмотреть в Restorator'е. Собственно, пример данных из RCData
Необходимо изменить параметры ClientWidth и ClientHeight, а также Top и Left. Автопатчер Restorator'а не подходит - он цепляется к версии, к тому же он патчит весь ресурс, а мне необъодимо только определенные строки. Остальные же оставить без изменения... Знаю, что при просмотре Exe-файла в WinHEX'е видна эта информация... Кто-нибудь сталкивался с такими задачами? Может есть советы или рекомендации? Буду очень признателен... |
| Автор: 586 21.12.2008, 21:56 |
| Пример редактирование Width: Ищешь в WinHex строку Width. После этой строки будет идти байт 03 а потом 2-х байтовое число. Его надо исправить. 57 69 64 74 68 03 FF 00 Width.я. 0x00FF = 255 (Width) |
| Автор: GremlinProg 21.12.2008, 23:46 |
| fridkaratel, возьми PE Explorer, он прекрасно видит борланд-формы и позволяет редактировать их отдельные свойства |
| Автор: fridkaratel 22.12.2008, 06:21 |
| В WinHEX'е видел это, но вот не могу понять - как можно изменить Caption, если вдруг понадобится... получается, надо переписать весь ресурс? 2GremlinProg: я вручную смогу и ресторатором отредатировать.... меня инетесует вопрос создания патча в C++, чтобы ручками каждый раз не делать.... ;) Скажу проще, в той программе, которую надо будет патчить, около 15 форм, и на каждой форме надо изменить порядка 20 контролов... Ручками это от версии к версии делать нелегко |
| Автор: 586 22.12.2008, 07:53 | ||
Да. Существуют WinAPI функции для изменения ресурсов. http://msdn.microsoft.com/en-us/library/ms674625(VS.85).aspx http://msdn.microsoft.com/en-us/library/ms648004(VS.85).aspx http://msdn.microsoft.com/en-us/library/ms674621(VS.85).aspx http://msdn.microsoft.com/en-us/library/ms648049(VS.85).aspx |