Изменение заголовка окна exe
Работаю над одним проектом. Нужно немного персонализировать программу EzCad2. Внутри приложения все получилось изменить. Остается вопрос редактирования заголовка окна. Через Restorator или Resource Hacker в ресурсах нет заголовка. А строку, с заголовком основного окна не могу найти, пытался использовать Ida Pro и Hiew. Какие еще могут быть варианты?
Ответы (1 шт):
А как вы строку искали? В IDA? Или в стороннем редакторе? Если в IDA, и если последний не распознал строку во время анализа, то вы её и не найдёте. Варианты следующие. Открыть exe'шник в стороннем hex-редакторе (например, WinHex) и найти строку там (предварительно убедившись, ANSI она, или Unicode). А далее в IDA - Jump -> Go to file offset. Если там действительно непроанализированные данные в виде db, то Edit -> Strings -> <нужный тип строки>. Либо ещё вариант: поставить bp на CreateWindowExA() /CreateWindowExW(), SetWindowTextA()/SetWindowTextW() и отследить, когда передаётся нужное имя окна.
Но всё вышеописанное верно, если строка находится действительно в exe'шнике. Однако часто бывает, что строки хранятся в отдельных языковых файлах. Если программа мультиязычна, то это как раз тот самый случай. Структурно в таких файлах обычно описываются пары "идентификатор-строка". А в коде программы вызывается специальная функция/метод, которая загружает строку по её идентификатору. Идентификатор тоже может быть строкой. Соответственно, вам надо найти файл со строкой, которую вы ищите, определить её идентификатор, и... В прочем, в данном случае больше ничего и ненужно - просто редактируете языковой файл (как правило, они текстовые).
Возможны и другие ситуации. Например, строки, или ресурсы в целом, могут быть зашифрованы разработчиками, как раз для того, чтобы затруднить вам поиск. Если это так, то скорее всего в придачу там и защита кода от модификации - CRC, ключ дешифровки, основанный на хешировании оригинального кода, антиотладочные приёмы и пр... Если это и впрямь так, то придётся попотеть.
В общем, это основное, с чем я лично сталкивался в своей дизассемблерной практике...