Free Address Book

Free Address Book Персональная электронная адресная книга, чьи функции заключаются в организации и хранении персональных
  1. Оффлайн

    Автор темы

    Nexus

    Забанен

    Сообщений: 611

    Создано тем: 20

    Репа: 0

    Баллы: 0

    Был: 2022-07-03 23:07

    Лайков: 7

    Free Address Book




    Персональная электронная адресная книга, чьи функции заключаются в организации и хранении персональных контактов пользователя. Запускать её можно с любого переносного носителя информации. Используя Free Address Book, можно хранить различные заметки о том или ином человеке, телефонные номера и адреса электронной почты. Поддерживается функция печати любых данных, которые хранятся в этой программе.

    Разработчик: GAS Softwares
    Система: Windows XP/Vista/7
    14 февраля 2014 - 08:39 / #1
  2. Оффлайн

    GDragon

    Звание: Прибывший

    Участники

    Сообщений: 2

    Создано тем: 0

    Рейтинг: 1

    Репа: 0

    Баллы: 51

    Страна: не указана!

    Был: 2014-02-25 17:08

    Потрясающе... Попросил за деньги! в теме про платные переводы сделать русификатор для Free Address Book [s]- молча втихомолку снесли тему...
    Ни ответа ни привета...[/s],а делают бесплатно!
    Красавцы ящитаю.

    Повторю вопрос тут.
    Готов оплатить создание русифицированной версии программы Free Address Book ( http://addressbook.gassoftwares.com/ ) (разумеется в разумных пределах)
    Есть желающие?
    14 февраля 2014 - 09:39 / #2
  3. Оффлайн

    Автор темы

    Nexus

    Забанен

    Сообщений: 611

    Создано тем: 20

    Репа: 0

    Баллы: 0

    Был: 2022-07-03 23:07

    Лайков: 7

    Цитата: GDragon;10201
    Готов оплатить создание русифицированной версии программы Free Address Book ( http://addressbook.gassoftwares.com/ ) (разумеется в разумных пределах)


    Программа написана в NET Framework 2.0, Радиаликс вроде как переводит, но вот создает конечный файл с ошибками и из-за этого файл не запускается. То ли Framework у меня криво поставлен, то ли еще какая байда. Пока мне не до него. Подозреваю, что Leserg может справиться с этой проблемой wink
    14 февраля 2014 - 09:49 / #3
  4. Оффлайн

    Leserg

    Звание: Ветеран

    Команда сайта

    Сообщений: 945

    Создано тем: 79

    Рейтинг: 8

    Репа: (131|131|0)

    Баллы: 1676

    Был: 2024-07-28 22:59

    Лайков: 167

    Цитата: GDragon;10201
    Программа написана в NET Framework 2.0, Радиаликс вроде как переводит, но вот создает конечный файл с ошибками и из-за этого файл не запускается.


    Да, так и есть. Radialix открывает файл, но создает его нерабочим, а все остальные редакторы нервно курят в сторонке. Проблема в самой программе. Там автор использует собственную функцию обработки строк. Пока что на данном этапе программу локализовать очень затруднительно. Можно было бы декомпилировать её до исходника, перевести и собрать обратно, но вместо строк получается мусор:

    Сидеть и угадывать, где какая строка wacko - не вариант. Надо еще подумать...

    Цитата: gazon01;10205
    Не все программы можно перевести.


    Пожалуй эту все-таки можно. Вот что получается:



    1) В Radialix"e переводим доступные ресурсы и создаем локализованный файл.
    2) Декомпилируем полученный файл.
    3) Декомпилируем оригинальный файл.
    4) Сравниваем файлы исходных кодов и выясняем, что Radialix все вызовы функций вида

    call string "?0?"::"?1?"(string)

    заменил на

    call "?0?"::"?1?"( [SIGNATURE ENDED PREMATURELY])

    По этой причине локализованный файл программы не работает. Поэтому меняем в листинге локализованного кода (в любом блокноте - формат файла текстовый) указанные вызовы функции на оригинальные (команда - заменить все).
    6) Восстанавливаем код самой функции "?0?"::"?1?"(string) - Radialix и её испортил. Она находится в конце листинга (просто копируем её код из оригинального листинга).
    7) Компилируем обратно локализованный файл.

    Все. Так мы одолели только около 20 процентов строк. Все остальные надо выискивать и вписывать прямо в код программы. Когда все будет готово, скомпилировать программу заново.

    Но вот терзают меня смутные сомнения по поводу этой функции обработки строк. Может оказаться, что таким образом автор защитил базу данных, которую создает программа. Она строится на соответствии имени поля и соответствующего значения. Если их перевести, то или программа не будет работать или база не будет создаваться, или невозможно будет открыть базу данных, созданную в оригинальной версии программы. Короче надо экспериментировать, точно сказать не могу. Не просто так он все это придумал. А возможно я ошибаюсь.

    Кто ищет, тот всегда найдет!

    14 февраля 2014 - 09:59 / #4
  5. Оффлайн

    Автор темы

    Nexus

    Забанен

    Сообщений: 611

    Создано тем: 20

    Репа: 0

    Баллы: 0

    Был: 2022-07-03 23:07

    Лайков: 7

    Leserg, круто! А чем ты декомпилируешь? Обязательно ildasm или есть еще какие инструменты?
    14 февраля 2014 - 10:19 / #5
  6. Оффлайн

    Leserg

    Звание: Ветеран

    Команда сайта

    Сообщений: 945

    Создано тем: 79

    Рейтинг: 8

    Репа: (131|131|0)

    Баллы: 1676

    Был: 2024-07-28 22:59

    Лайков: 167

    Цитата: Nexus;10226
    есть еще какие инструменты


    Конечно есть и другие инструменты, которые позволяют править код программы без её полной перекомпиляции (по такому принципу работают шаблонные редакторы). Я использую все возможные, которые дают положительный вариант. Универсальных нет. Для одной программы одна сработала отлично, а для другой - другая.
    Вот перечень того, что стоит у меня на вооружении:
    9Rays Spices .NET Suite
    DisSharp
    Dotnet IL Editor
    DotNet Resolver
    GrayWolf
    ILSpy
    JustDecompile
    Red Gate .NET Reflector
    Resource .NET
    SharpResourcesEditor
    Simple Assembly Explorer (SAE)
    Zeta Resource Editor

    Все они решают одну задачу: дизассемблирование, редактирование ресурсов, правка кода программ NET. Основной инструмент у меня из этого списка Simple Assembly Explorer.

    Кто ищет, тот всегда найдет!

    14 февраля 2014 - 10:49 / #6
  7. Оффлайн

    Leserg

    Звание: Ветеран

    Команда сайта

    Сообщений: 945

    Создано тем: 79

    Рейтинг: 8

    Репа: (131|131|0)

    Баллы: 1676

    Был: 2024-07-28 22:59

    Лайков: 167

    Теперь коротко о том, как же редактировать строки. Для этого я использую утилиту Simple Assembly Explorer. Работать придется в ручном режиме. Задача еще осложняется тем, что мы не знаем, о чем говорится в той или иной строке. Также строковыми данными указаны названия объектов и элементов, которые ни в коем случае нельзя трогать, т.к. программа станет неработоспособной. В общем работа над переводом похожа на разминирование.
    Итак, строки, использующиеся в программе, загружаются сначала в стек при помощи команды ldstr (назначение всех опокодов сборок NET можно узнать на сайте разработчиков Microsoft). В нормальном приложении строки указаны в явном виде, например:

    ldstr "Вы действительно хотите завершить работу с программой?"

    В программе Free Address Book строки зашифрованы. Поэтому, после загрузки в стек строка сначала отправляется на расшифровку, т.е. идет вызов необходимой функции, и по возвращению используется по прямому назначению. Вот как это выглядит в коде:



    Алгоритм обработки строк - это долгая песня, необходимы хорошие познания в программировании (если есть желание, то можете разбираться). Можно поступить проще: не пускать строку на обработку функцией, т.е. просто занопить команду, а саму строку набрать в явном виде. Вот так:



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

    Вот такая петрушка. Я поступаю так: нахожу строку, которую можно править, вбиваю 111111111, отключаю команду передачи строки в функцию и сохраняю изменения в файл. Потом запускаю программу и смотрю, где у меня эти 11111111 выплывут. Потом запускаю оригинальную программу и смотрю в ней значение этой строки. Затем возвращаюсь к этой строке в коде и ввожу нормальный перевод. Сохраняю изменения и перехожу к следующей строке. Сами понимаете, что это долго и утомительно. К тому же довольно затруднительно перевести все сообщения программы на те или иные действия пользователя. Для этого их надо все моделировать, а это не всегда бывает возможным.

    Кто ищет, тот всегда найдет!

    15 февраля 2014 - 11:49 / #7
  8. Оффлайн

    Автор темы

    Nexus

    Забанен

    Сообщений: 611

    Создано тем: 20

    Репа: 0

    Баллы: 0

    Был: 2022-07-03 23:07

    Лайков: 7

    b]Leserg, ну что, как там получается переводить прогу? Не выдержал и тоже залез в прогу через Simple Assembly Explorer (SAE) посмотреть что да как biggrin .
    15 февраля 2014 - 12:49 / #8
  9. Оффлайн

    Leserg

    Звание: Ветеран

    Команда сайта

    Сообщений: 945

    Создано тем: 79

    Рейтинг: 8

    Репа: (131|131|0)

    Баллы: 1676

    Был: 2024-07-28 22:59

    Лайков: 167

    Цитата: Nexus;10249
    Не выдержал и тоже залез в прогу через Simple Assembly Explorer (SAE) посмотреть что да как


    Ну и как впечатления? Правда же, что ничего сложного?

    Цитата: gazon01
    на главную не забудьте выложить


    Нет, на главную ещё рано!
    Сообщение отредактировал 4 марта 2018 - 21:13

    Кто ищет, тот всегда найдет!

    16 февраля 2014 - 12:49 / #9
  10. Оффлайн

    GDragon

    Звание: Прибывший

    Участники

    Сообщений: 2

    Создано тем: 0

    Рейтинг: 1

    Репа: 0

    Баллы: 51

    Страна: не указана!

    Был: 2014-02-25 17:08

    Цитата: Leserg
    Убрал кнопки "Donate" и "Facebook" - не думаю что они нужны нашему человеку, хотя надо спросить у GDragon. Вернуть обратно не проблема.

    Не вообще не нужны smile
    А можно ещё попросить убрать RSS в верхнем правом углу? (который работает через GAS.Rss.dll)
    Сообщение отредактировал 4 марта 2018 - 21:14
    16 февраля 2014 - 13:49 / #10

Статистика форума, пользователей онлайн: 0 (за последние 20 минут)

---
Создано тем
1197
Всего сообщений
15763
Пользователей
18016
Новый участник
gippokrat