NeoAppBuilder

NeoAppBuilder - визуальный конструктор программ для Мобильных и Web платформ.
  1. Оффлайн

    gazon01

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

    Команда

    Сообщений: 1212

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

    Рейтинг: 8

    Репа: (42|41|-1)

    Баллы: 66

    Был: 2018-12-02 14:30

    Лайков: 17

    NeoAppBuilder - визуальный конструктор программ для Мобильных и Web платформ.

    Возможно всё! На невозможное просто требуется больше времени.
    Мудрец из Шангри Ла

    13 января 2016 - 13:50 / #1
  2. Оффлайн

    Автор темы

    mishem

    Звание: Бывалый

    Проверенные

    Сообщений: 159

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

    Рейтинг: 4

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

    Баллы: 61

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

    Был: 2024-04-25 07:13

    Лайков: 3

    Кто нибудь сталкивался с бинарными XML файлами?

    Neosoft пишут новую программу NeoAppBuilder для создания приложений для веб, мобильных устройств, приложений Google Chrome, и для Windows. В последней бэтке они добавили возможность создавать плагины. Плагины пишутся на JavaScript, файлы в XML формате. После чего компилируются в бинарный файл. Я думаю что это бинарный XML, хотя могу и ошибаться. Никогда не сталкивался, не работал и понятия не имею что это такое. :)

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

    Генератор плагинов идет вместе с программой. Пример плагина тоже есть в папке DocumentsNeoAppBuilderPlugIns

    Может быть как то в Ольке можно отследить как и что там делается? Может кто с андроид-приложениями вплотную занимается, и уже есть какое нибудь готовое решение. Так как написанные программы можно компилировать для Android, iOS (iPhone, iPad), Windows Phone, то думаю что не должно быть чего то сверх естественного. На устройствах из этих файлов код же должен как то читаться?
    Сообщение отредактировал 5 февраля 2021 - 01:13
    13 января 2016 - 13:50 / #2
  3. Оффлайн

    Nexus

    Забанен

    Сообщений: 611

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

    Репа: 0

    Баллы: 0

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

    Лайков: 7

    mishem, готовые плагины для NeoAppBuilder зашифрованы своим алгоритмом. Поэтому для него необходимо писать свой расшифровщик, но я пока занят где-то на неделю-две, так что в ближайшее время заняться распаковщиком не могу.
    Единственное что могу пока сделать - это выдирать исходники плагинов. Они распаковуются в памяти в формат XML, потому легко снимаются в отладчике. Сам исполняемый файл был накрыт Армадиллой последней версии, пришлось сдирать.
    13 января 2016 - 13:50 / #3
  4. Оффлайн

    Автор темы

    mishem

    Звание: Бывалый

    Проверенные

    Сообщений: 159

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

    Рейтинг: 4

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

    Баллы: 61

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

    Был: 2024-04-25 07:13

    Лайков: 3

    так что в ближайшее время заняться распаковщиком не могу.

    Это не к спеху. Но известие хорошее. ok
    Как будет время и желание, сделай. Вопрос думаю поднимется все равно рано или поздно. А пока товарища сюда отправлю. Если ему что то нужно в данный момент, пусть сам тогда к тебе обратится. Кстати если программой кто то заинтересуется, он русский форум по ней создал. Если у кого вопросы появятся, могут там задавать. На оффоруме к русским сейчас тоже стали нормально относится. Раньше даже зарегистрироваться не возможно было если почта ру. smile

    готовые плагины для NeoAppBuilder зашифрованы своим алгоритмом

    Я что то такое и предполагал, но надеялся что они пошли по простому пути.
    13 января 2016 - 13:50 / #4
  5. Оффлайн

    Anton

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

    Проверенные

    Сообщений: 8

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

    Рейтинг: 1

    Репа: 0

    Баллы: 51

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

    Был: 2016-04-10 05:46

    Добрый день. Я то товарищ которого mishem сюда отправил. Спасибо за подсказки, в вопросе получения доступа к исходным данным плагина. Надеюсь что как будет время поможешь с расшифровщиком.
    Чтоб сильно не напрягать, можешь немного поподробнее просветить касательно получения данных из памяти. Сам процесс, какими программами надо пользоваться и т.д.
    Они распаковуются в памяти в формат XML, потому легко снимаются в отладчике. Сам исполняемый файл был накрыт Армадиллой последней версии, пришлось сдирать.
    Сообщение отредактировал gazon01 12 января 2016 - 10:00
    13 января 2016 - 13:50 / #5
  6. Оффлайн

    gazon01

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

    Команда

    Сообщений: 1212

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

    Рейтинг: 8

    Репа: (42|41|-1)

    Баллы: 66

    Был: 2018-12-02 14:30

    Лайков: 17

    Цитата: Nexus
    Сам исполняемый файл был накрыт Армадиллой последней версии, пришлось сдирать.




    а чего она такая слабенькая? даже анпакером на ура берется распаковал и был грех увлекся немного


    Anton, mishem, вам архив с распакованным файлом и памятью перевода, кстати майкрософт переводит всего лишь с мелкими недочетами, как будто с него программа писана [url=http://rghost.ru/private/7f4vV7jSs/9f0b5e6a947152d151fd8a8767d2be0d target="_blank" rel="noopener external">архив пароль 123
    Сообщение отредактировал 15 февраля 2017 - 14:42

    Возможно всё! На невозможное просто требуется больше времени.
    Мудрец из Шангри Ла

    13 января 2016 - 13:50 / #6
  7. Оффлайн

    Anton

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

    Проверенные

    Сообщений: 8

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

    Рейтинг: 1

    Репа: 0

    Баллы: 51

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

    Был: 2016-04-10 05:46

    gazon01 Спасибо, но не совсем тоsmile Сама программа по созданию плагинов легко руссится, с ней проблем нет... Проблема с руссификации плагинов уже созданных в этой программе. Как уже писал mishem изначально плагины представляют собой обычные xml который после компиляции как то упаковываются в нечто вроде бинарного архива. И как его зарусить, я лично мало представляю. Я пробовал кое какими утилитами пытаться достать из них текст, кое что вышло, но текст обрывочный на выходе и не тот что нужен (По сути часть скрипта плагина). И получается что чтобы сделать русскую версию плагина приходиться воссоздать его с нуля в программе PluginGenerator, оперируя выдернутыми кусками скрипта. При общих знания js это конечно не сложно, но достаточно трудоемко, да и как бы выходит, что это не руссифицированный плагин какого то автора, а новый, просто очень похожий на другой плагин. У нас на сайте можешь посмотреть, там русская версия плагина созданная мной, и оригинальная версия созданная изначальным автором. Вот ссылка _http://neoappbuilder.ru/viewtopic.php?id=8
    Может подскажешь как можно именно сам плагин затрусить.
    Сообщение отредактировал gazon01 12 января 2016 - 22:04
    13 января 2016 - 13:51 / #7
  8. Оффлайн

    gazon01

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

    Команда

    Сообщений: 1212

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

    Рейтинг: 8

    Репа: (42|41|-1)

    Баллы: 66

    Был: 2018-12-02 14:30

    Лайков: 17

    вот теперь всё четко и ясно изложено
    Может подскажешь как можно именно сам плагин затрусить.

    тут только Nexus поможет ;)
    добавил тебе прав, теперь сообщения будут сразу видны, надоело активироватьhappy

    Возможно всё! На невозможное просто требуется больше времени.
    Мудрец из Шангри Ла

    13 января 2016 - 13:51 / #8
  9. Оффлайн

    Nexus

    Забанен

    Сообщений: 611

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

    Репа: 0

    Баллы: 0

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

    Лайков: 7

    Может подскажешь как можно именно сам плагин затрусить.

    Тут не все так просто. Сам XML файл после компилирования уже по своему немного портится и воссоздать исходник точь-в-точь не получится. Вот, например, выдранный исходник твоего переведенного файла Fancy CheckBoxes RUS.nabp. Смотри в прикреплении.
    Естественно, я выдрал пока без иконок и CSS файла. В самом исходнике много чего меняется. Например, после компилирования и обратного декомпилирования плагина, в нем не остаются комментарии в строке
    <Notes>...</Notes>

    Также меняются названия некоторых переменных в некоторых строках. Я не сильно разбираюся что это за переменные, так как это Java язык и мне он мало знаком. Например, строку в исходнике:
    <Params>monthnum|INTEGER|Month number (1-12);result|VARREF|Variable to store result</Params>
    <Template>result = dtDateDiff( date1, date2, format );</Template>

    меняет после декомпиляции на:
    <Params>INTEGER=Month number (1-12);VARREF=Variable to store result</Params>
    <Template>%4 = dtDateDiff( %1, %2, %3 );</Template>

    Разница ощутимая. Может оно не сохраняет имена переменных и пытается подставить свои придуманные переменные, хрен его знает. Это нужно к спецу по Джава скрипту, чтобы можно было правильно воссоздать скрипт. Так что я не знаю, стоит ли игра свеч или будет оно все неработоспособное. Ну а так для выдирания нужно писать распаковщик. Этим могу заняться не раньше чем через 1-2 недели.

    Вложения:

      Вам запрещено скачивать вложения.
    13 января 2016 - 13:51 / #9
  10. Оффлайн

    Автор темы

    mishem

    Звание: Бывалый

    Проверенные

    Сообщений: 159

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

    Рейтинг: 4

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

    Баллы: 61

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

    Был: 2024-04-25 07:13

    Лайков: 3

    Цитата: Nexus
    в нем не остаются комментарии в строке ...




    Я так понимаю это Примечания автора которые не видны пользователю. Они и не нужны. Это заметка, памятка для автора типа для чего этот плагин.

    Цитата: Nexus
    Также меняются названия некоторых переменных в некоторых строках.




    INTEGER=Month number (1-12);VARREF=Variable to store result


    Это параметры которые требуются функции. Может быть один, несколько или вообще ни одного. Каждый параметр разделен ;
    В PlugInGenerator они записываются на вкладке Команды>Параметры

    Видимо при компиляции названия переменных удаляются и заменяются на локальные переменные %1, %2 и т.д. Это не для javascript, а для NeoAppBuilder. А имена переменных в исходнике, для удобства написания кода. После при работе плагина видимо строка параметров просто парсится и подставляются номера переменных, а тип переменной, его название, остается.

    Из всего этого делается вывод что редактировать текст в PlugInGenerator не получится, а в текстовом редакторе без проблем. Главное его после скомпилировать правильно.

    В теге нам нужно будет все что идет после знака равно. Month number (1-12), Variable to store result
    Это описание в диалоговом окне программы NeoAppBuilder когда вызывается команда. Например для параметра который ты привел, диалоговое окно выглядет так




    Это команда dtMonthNumToName, меняет число месяца на название месяца. Но в скрипте, если мы перейдем в PlugInGenerator на вкладку Код и найдем название этой функции,

    function dtMonthNumToName( num ) {
    var days = ["January","February","March","April","May","June","July","August","September","O

    ctober","November","December"];
    return days[num];
    }


    мы видим что названия месяцев нужно тоже перевести.

    То есть получается тебе нужно написать не только декомпилятор, но и компилятор. Сможешь?

    Nexus, а выдерни исходник плагина DateTime.nabp который идет вместе с программой. Посмотрю что там меняется, как и зачем.
    Сообщение отредактировал 15 февраля 2017 - 14:50
    13 января 2016 - 13:51 / #10

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

---
Создано тем
1179
Всего сообщений
15382
Пользователей
17859
Новый участник
Leongsm