avatar_Leserg

RegexBuddy, PowerGREP...

Автор Leserg, 01 декабря 2015, 10:39:00

« Samplitude Pro X Suite | Перевод интерфейса IDA PRO »

LesergАвтор темы

Программы от разработчика Just Great Software


Обсуждаем и решаем вопросы по программам от разработчика Just Great Software.
    В 32-бит версиях программ ресурсы
DFM RCData запакованы при помощи протектора "Войдите на сайт для перехода по ссылке" и недоступны для редактирования. Если вы загрузите такой исполняемый файл в редактор ресурсов, то вместо DFM сценария увидите шестнадцатеричный набор данных. Например, на следующем рисунке в редакторе ресурсов показано содержимое формы TABOUTBOX. Как видите редактор не распознал эти данные и отображает их в формате НЕХ.

Показать / Скрыть текст
[свернуть]

Обратите внимание на сигнатуру запакованных данных - 54 50 46 32 (в текстовом формате TPF2). Ресурсы DFM в открытом виде имеют сигнатуру 54 50 46 30 (TPF0) и она является стандартом для всех Deplhi-форм. Анализ защиты "Citadel" показал, что для упаковки ресурсов был использован параметр "Compress DFMs" (Сжатие ресурсов DFM), характерным признаком которого и является наличие сигнатуры TPF2.

Показать / Скрыть текст
[свернуть]

В 64-бит версиях программ ресурсы DFM RCData находятся в открытом виде и их можно спокойно импортировать в 32-бит версии приложений. Сделать это можно при помощи редактора ресурсов, например Restorator, Resource Hacker или CFF Explorer. Например, вот как это можно сделать в редакторе CFF Explorer. Открываете в нём 64-бит версию программы и сохраняете выбранный ресурс в формате RAW.

Показать / Скрыть текст
[свернуть]

Откройте в том же редакторе 32-бит версию приложения и выполните замену одноименного ресурса, файл которого вы сохранили из 64-бит версии приложения.

Показать / Скрыть текст
[свернуть]

Аналогичным образом сделайте замену для всех остальных ресурсов DFM RCData. Затем сохраните изменения в файле. После этого можете создать в шаблонном редакторе проект перевода и настроить его на вывод локализованной библиотеки ресурсов. В случае вывода локализованного файла необходимо будет заниматься снятием CRC-проверки, чтобы файл был работоспособным.

С целью автоматизации рутинной работы по распаковке/замене ресурсов DFM была написана консольная утилита DfmDeCompress.exe. В командной строке в качестве параметра вам необходимо указать только имя исполняемого файла, в котором требуется распаковать ресурсы и запустить команду на выполнение. По окончании работы вы получите полностью готовый файл программы с распакованными ресурсами DFM.

Показать / Скрыть текст
[свернуть]

Утилита DfmDeCompress.exe может распаковать "Citadel" только с параметром "Compress DFMs" (см. рис. 2). Остальные параметры защиты я не рассматривал в виду отсутствия программ, в которых они были использованы.

Показать / Скрыть текст
Скачать
[свернуть]
Кто ищет, тот всегда найдет!

mishem

Вы спрятали тему Citadel от посторонних глаз? Хотел там отписаться, но что то не нашел страницы.
Попробовал сделать перевод RegexBuddy в Radialix, переводит без всяких манипуляций с кодом. Мож они там что то исправили, или я просто не помню в чем проблема была?

Nexus

ЦитироватьВы спрятали тему Citadel от посторонних глаз? Хотел там отписаться, но что то не нашел страницы.
Тема находится на доработке.
ЦитироватьПопробовал сделать перевод RegexBuddy в Radialix, переводит без всяких манипуляций с кодом.
Ресурсы там закодированы, Радиаликс никак не может его взять. Может у тебя версия RegexBuddy какая-то устаревшая? Как выглядят RCData ресурсы?

LesergАвтор темы

ЦитироватьПопробовал сделать перевод RegexBuddy в Radialix, переводит без всяких манипуляций с кодом. Мож они там что то исправили, или я просто не помню в чем проблема была?
mishem, ваш  вопрос на форуме. Но если нет никаких проблем, переводите.

Тему убрал я (это было в пятницу поздно вечером), только уведомить не успел.
Собирался в выходные создать новую и по-другому чуть оформить. Но утром в субботу вызвали на работу. В воскресенье аналогично. Поэтому все откладывается на неопределённый срок, по свободе. Прошу прощения за предоставленные неудобства.
Кто ищет, тот всегда найдет!

mishem

ЦитироватьНа доработке.
Печалька...

ЦитироватьМожет у тебя версия RegexBuddy какая-то устаревшая?
Я тоже так подумал. Пошел рыть по интернету. Нашел последнюю ломанную 4.4.1. Загрузил, обновил проект. все подхватывает.



Скачал с сайта демо версию, опять подхватило.

Помню что сам вопрос здесь задавал как ее побороть, а вот в чем затык был, уже не помню.  %)

ЦитироватьКак выглядят RCData ресурсы?
Прекрасно выглядят. :smile:  Все как обычно.

LesergАвтор темы

ЦитироватьПошел рыть по интернету. Нашел последнюю ломанную 4.4.1. Загрузил, обновил проект. все подхватывает. Скачал с сайта демо версию, опять подхватило.
Ну коли так, то и тему создавать незачем. Работайте на здоровье. :wink:
Кто ищет, тот всегда найдет!

Nexus

ЦитироватьСкачал с сайта демо версию, опять подхватило
Шото не то... А дай ссыль на демо версию, может я не то качал. И еще скажи версию Радиаликса, шото не верится что он может на лету распаковывать Цитадель. Неуж-то в нем встроен автораспаковщик? :wacko:

mishem

Да нет, проблема то была. И вряд ли она решилась. Я просто не помню в чем именно она была. :sad:
Добавлено (29.11.2015, 23:43:35)
---------------------------------------------
Версия 3.00 Сборка 486

С Radialix есть одна проблема. если изменить строки в главной форме, то после компиляции библиотеки выдает ошибку. Локализованный файл по любому ошибку выдает, видно проверка где то на целостность файла есть. А библиотека подхватывается. Только проблема в том, что Radialix тольи мусор какой добавляет, толи что то меняет дополнительно то, что не нужно менять. Я просто уже до этого тоже сталкивался с такой проблемой. Выход нашел, переключаемся на вкладку Ресурсы и все что не Caption или Hint, точнее то что не строки, делаем только для чтения. После ПКМ, и по моему что то типа Удалить новые (или добавленные) ресурсы (или элементы) не помню... :)

И все, в итоге все начинает работать. Здесь такая же беда была. Сначала открыл, перевел, запустил - ошибка. Ну и закрыл. После вспомнил про этот трюк, нудно правда, каждую строчку просматривать и переключать Только для чтения, но оно того стоило. Запустил, заработало. Если разобраться и понять что именно нужно переключать, тогда не обязательно будет все просматривать.

ЦитироватьА дай ссыль на демо версию
Войдите на сайт для перехода по ссылке
Добавлено (30.11.2015, 12:40:59)
---------------------------------------------
ЦитироватьУдалить новые (или добавленные) ресурсы (или элементы) не помню
Сейчас заглянул в Radialix. Удалить все добавленные.

Кстати кто нибудь знает что он добавляет и зачем? Точнее наверно Зачем? "Что" и так видно. :smile:

Nexus

ЦитироватьВойдите на сайт для перехода по ссылке
Ну правильно, это последняя версия. И в ней RCData ресурсы закодированны.
Дело в том, что ты переводишь не их, а ресурс RT_String (Таблица строк), а там текст как раз в свободном доступе. А в ресурсе RCData забиты в основном Дельфи формы, которые понадобится изменять чтобы влезли русские строки. Но их на данном этапе не поменяешь, потому что они накрыты специфическим Дельфи протектором - Цитадель. Ну, в общем об этом уже писалось. Вроде как Leserg смог их расковырять, возможно впоследствии можно будет их модифицировать.
ЦитироватьЛокализованный файл по любому ошибку выдает, видно проверка где то на целостность файла есть.
В линейке этих программ стоит очень простенькая CRC проверка, которая ломается за 2 минуты. После этого можно модифицировать файл как душе угодно. Если будешь заниматься их программами и будешь править файл напрямую, то объясню как в них трескать CRC защиту.
И еще: какая разница между Демо и Зарегистрированной версией? Что-то там урезано значит?

mishem

Цитата: NexusИ в ней RCData ресурсы закодированны

Не буду спорить, так как я все эти манипуляции быстро проводил и в одном и том же проекте. Скачал, установил, обновил ресурсы, запустил, посмотрел, удалил, скачал другой файл, и по кругу... :) Я искал последнюю ломаную, но пока не наткнулся.

Цитата: NexusВроде как Leserg смог их расковырять, возможно впоследствии можно будет их модифицировать.

Так я по этому и полез смотреть что там и как, в надежде что он расковыряет до конца. Да и перевод даже одной программы для одного человека будет тяжкий труд, о чем Leserg говорил. Решил что надо будет помощь предложить, по этому и полез смотреть. Проблема даже не в количестве, а в точной формировке. Уже вчера столкнулся пока качал и пробовал, Insert a Token . Пару часов наверно пролазил по интернету в поисках правильного перевода слова Token. Пришел к решению что так и переводится, Токен. Хотя не разу нигде в темах о регулярках этого слова не встречал. :(

Цитата: Nexusкакая разница между Демо и Зарегистрированной версией? Что-то там урезано значит?

Думаю никакой кроме нагскрина и по моему 7 дней пробы. Кажется на сайте что то подобное у них читал.

Цитата: NexusЕсли будешь заниматься

Мне думается там по хорошему со справки начинать надо. А еще лучше одновременно, и там и там делать.

Добавлено (30.11.2015, 18:57:24)
---------------------------------------------
Цитата: NexusИ в ней RCData ресурсы закодированны.

С чего ты взял что радиаликс их не берет? Сейчас все таки покурил, и решил опять попробовать. :)

То что ты не видишь в нем кнопки, это просто радиаликс не может классы определить (смотри слева в углу он сообщения пишет), по этому и не видно. Посидеть попыхтеть, самому определить, и все должно появиться (наверно) :)

А так он RCData достает и все строки можно редактировать. (Опять же, я так думаю, так как до конца ее не ковырял).

Показать / Скрыть текст
[свернуть]

И в итоге опять же, как описывал выше, все что не строки в этом ресурсе нужно установить только для чтения. Я одно слово перевел что бы эту процедуру побыстрее сделать, и в итоге вкладка у нас переведена.

Показать / Скрыть текст
[свернуть]

Эта проблема только с этим ресурсом, в котором находится главное окно. Может быть еще с подобными где ресурсы так же не отображаются. Все остальные, где объекты видны, этих манипуляций с установкой только для чтения делать не обязательно, но если хочется бороться за чистоту конечного проекта, то желательно. (раз он здесь что то свое добавляет/меняет, то почему в другом месте он не может этого сделать?

А вот размеры объектов, да, нужно будет править уже в хекс редакторе. опять же, я так думаю, может лучше посидеть с классами повыеживаться, хотя не факт что все будет отображаться.

Добавлено (30.11.2015, 20:36:30)
---------------------------------------------
Попробовал в Sisulizer, так вообще без проблем. Никаких манипуляций не надо.
Но это все теоретически. с наскока. Какие там в дальнейшем могут быть подводные камни, никто не знает.

Nexus

mishem, Я все понял, ты на скрине показываешь x64 версию, а для ней нету 64-битной Цитадели. Потому и ресурсы там доступны для правки. На x32 такой номер, увы, не пройдет - там точно запакованы ресурсы.

LesergАвтор темы

Цитата: NexusЯ все понял, ты на скрине показываешь x64 версию

Надо же, я и не знал есть 64-бит линейка этой программы. :surprised:
Раз в х64 ресурсы RCDATA не упакованы, то можно портировать все диалоги в 32-бит версию программы. Только что проверил - полная идентичность. Но только ресурсы RCDATA, у остальных идентификаторы разные. Вот и решилcя вопрос с распаковкой. :biggrin:   А я тут сижу велосипед изобретаю... :wacko:  

Цитата: Nexusбудешь править файл напрямую, то объясню как в них трескать CRC защиту

Ломать файл не обязательно, все строки находятся в ресурсах. Смело создавайте локализованную библиотеку, она будет нормально подхвачена программой.

Цитата: mishemInsert a Token . Пару часов наверно пролазил по интернету в поисках правильного перевода слова Token.

mishem, есть такой прекрасный учебник от автора программы Jan Goyvaerts - "Regular Expressions Cookbook" (Регулярные выражения. Сборник рецептов), который переведен на русский язык и выпущен издательством "Символ-Плюс" в 2010 году. Там автор описывает свою программу RegexBuddy и обучает искусству составления регулярных выражений. Почитайте его на досуге, тогда все вопросы о том, как переводить то или иное выражение отпадут сами собой. Я не думаю, что люди, которые переводили эту книгу - любители, как мы с вами. Цитата из учебника:


Многие главы из учебника перекликаются с разделами справки к программе. Оно и понятно - автор один.
Кто ищет, тот всегда найдет!

Nexus

ЦитироватьЦитата из учебника:
Признаться, никогда не встречал фразу "Лексема", а вот просто Токен - везде. Хз как его правильно перевести :wacko:  Я бы перевел просто - Токен :biggrin:  
ЦитироватьА я тут сижу велосипед изобретаю...
Эх жаль, а я думал что ты там наколдуешь эдакое интересненькое :biggrin:  

PS Нужно создать отдельную ветку для этой линейки программ, а то Флудильню загадили, Саня бушевать будет :biggrin:

LesergАвтор темы

ЦитироватьЯ бы перевел просто - Токен
Почитай учебник. Сейчас ты воспринимаешь этот термин отдельно от контекста. Мне, например, не очень понятен термин "Токен". Первоначально я переводил его как "Оператор", т.к. в некоторых описаниях регулярок использовали именно это определение. Потом попался этот учебник - и все стало на свои места.
Кто ищет, тот всегда найдет!

gazon01

Цитироватьа то Флудильню загадили, Саня бушевать будет
было бы из-за чего, ненужное удалим, нужное перенесем куда попало надо, а недовольных отправим к друзьям сайта, пусть там мозг выносят :biggrin:
Возможно всё! На невозможное просто требуется больше времени.
 Мудрец из Шангри Ла

* Ваши права на сайте

    Light Portal

  • Вы можете просматривать элементы портала
  • Вы не можете управлять блоками
  • Вы не можете управлять своими страницами
  • Вы не можете размещать свои страницы без модерации

    Simple Machines

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

Яндекс.Метрика Каталог@MAIL.RU - каталог ресурсов интернет