16 августа | 2022г. | 16:22:37

АвторТема: Плагин EasyPy2Decompiler  (Прочитано 1211 раз)

0 Пользователей и 1 Гость смотрят эту тему.

Онлайн Evg77734Автор темы

  • Мастер Джедай
  • ***
  • Сообщений: 818
  • Поблагодарили: 3960
Плагин EasyPy2Decompiler
« Первое сообщение: 19 июля | 2022г. | 15:00:21 »
Плагин EasyPy2Decompiler ver. 1.0

- Только для Py2.
- Известны различные аналоги, например для компьютера, или скрипты, вот сделал для ресивера.
- Декомпилирует файлы pyo в py со всеми известными ограничениями.
- Актуально, так как "открытая" Энигма2 постепенно перерождается и имиджи в Py2 наполнены в основном файлами в pyo.
- Порядок работы: В любом месте ресивера находим пультом файл с расширением pyo. Нажимаем кнопку "ОК" и ждем несколько секунд.
В правой части экрана отразится содержание декоипилированного файла. При необходимости его можно сохранить синей кнопкой.
Если декомпиляция прошла с ошибкой, то содержимое файла отразится красным цветом. Его тоже можно сохранить, возможно он частично будет полезен.
Файлы сохраняются в /tmp/outputpydir/ успешные в формате *.py, а ошибочные в *.py_failed

Для скиноделов:
Спойлер   :
FHD:
  <screen name="EasyPy2Decompiler" position="15,65" size="1890,1000" backgroundColor="Background" title="EasyPy2Decompiler">
  <widget name="filelist" position="17,17" size="596,874" zPosition="1" backgroundColor="Background" scrollbarMode="showOnDemand" transparent="0" />
  <ePixmap name="" position="1810,936" size="70,30" alphatest="on" transparent="1" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/EasyPy2Decompiler/images/key_info.png" />
  <widget name="" position="1620,925" size="150,50" source="key_red" transparent="1" font="Regular; 30" render="Label" />
  <ePixmap position="1560,925" zPosition="0" size="50,50" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/EasyPy2Decompiler/images/key_red.png" alphatest="on" transparent="1" />
  <widget name="textpyo" position="630,21" size="1250,34" font="Console; 24" foregroundColor="Green" />
  <widget name="textpyo2" position="630,59" size="1250,34" font="Console; 24" foregroundColor="Green" />
  <widget name="textpy" position="632,115" size="1246,773" font="Console; 24" zPosition="2" transparent="0" />
  <ePixmap position="1240,925" zPosition="0" size="50,50" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/EasyPy2Decompiler/images/key_blue.png" alphatest="on" transparent="1" />
  <widget name="" position="1300,925" size="250,50" source="key_blue" transparent="1" font="Regular; 30" render="Label" />
  <widget name="" position="15,925" size="800,50" source="key_ver" transparent="1" font="Regular; 30" render="Label" />
  <ePixmap name="" position="15,15" size="600,878" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/EasyPy2Decompiler/images/p1.png" />
  <ePixmap name="" position="624,15" size="2,878" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/EasyPy2Decompiler/images/p2lr.png" />
  <ePixmap name="" position="1885,15" size="2,878" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/EasyPy2Decompiler/images/p2lr.png" />
  <ePixmap name="" position="625,104" size="1262,2" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/EasyPy2Decompiler/images/p2tb.png" />
  <ePixmap name="" position="625,891" size="1262,2" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/EasyPy2Decompiler/images/p2tb.png" />
  <ePixmap name="" position="625,15" size="1262,2" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/EasyPy2Decompiler/images/p2tb.png" />
</screen>

HD:
  <screen name="EasyPy2Decompiler" position="10,43" size="1260,666" backgroundColor="Background" title="EasyPy2Decompiler">
  <widget name="filelist" position="11,11" size="397,582" zPosition="1" backgroundColor="Background" scrollbarMode="showOnDemand" transparent="0" />
  <ePixmap name="" position="1206,624" size="46,20" alphatest="on" transparent="1" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/EasyPy2Decompiler/images/key_info1.png" />
  <widget name="" position="1080,616" size="100,33" source="key_red" transparent="1" font="Regular; 20" render="Label" />
  <ePixmap position="1040,616" zPosition="0" size="33,33" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/EasyPy2Decompiler/images/key_red1.png" alphatest="on" transparent="1" />
  <widget name="textpyo" position="420,14" size="833,22" font="Console; 16" foregroundColor="Green" />
  <widget name="textpyo2" position="420,39" size="833,22" font="Console; 16" foregroundColor="Green" />
  <widget name="textpy" position="421,76" size="830,515" font="Console; 16" zPosition="2" transparent="0" />
  <ePixmap position="826,616" zPosition="0" size="33,33" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/EasyPy2Decompiler/images/key_blue1.png" alphatest="on" transparent="1" />
  <widget name="" position="866,616" size="166,33" source="key_blue" transparent="1" font="Regular; 20" render="Label" />
  <widget name="" position="10,616" size="700,33" source="key_ver" transparent="1" font="Regular; 20" render="Label" />
  <ePixmap name="" position="10,10" size="400,585" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/EasyPy2Decompiler/images/p11.png" />
  <ePixmap name="" position="416,10" size="1,585" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/EasyPy2Decompiler/images/p2lr1.png" />
  <ePixmap name="" position="1256,10" size="1,585" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/EasyPy2Decompiler/images/p2lr1.png" />
  <ePixmap name="" position="416,69" size="841,1" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/EasyPy2Decompiler/images/p2tb1.png" />
  <ePixmap name="" position="416,594" size="841,1" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/EasyPy2Decompiler/images/p2tb1.png" />
  <ePixmap name="" position="416,10" size="841,1" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/EasyPy2Decompiler/images/p2tb1.png" />
</screen>
Спойлер   :
[ Гостям не разрешен просмотр вложений ]
Спойлер   :
[ Гостям не разрешен просмотр вложений ]


Оффлайн obladatel

  • Джедай
  • ***
  • Сообщений: 305
  • Поблагодарили: 746
Плагин EasyPy2Decompiler
« Ответ #1: 19 июля | 2022г. | 16:24:02 »
Evg77734
И опять спасибо!
Декомпилировал "свои" компоненты - все белые...)
p,s
как вариант..., не помешало бы в outputpydir конвертеры и рендеры сохранять в свои каталоги...

Онлайн Evg77734Автор темы

  • Мастер Джедай
  • ***
  • Сообщений: 818
  • Поблагодарили: 3960
Плагин EasyPy2Decompiler
« Ответ #2: 19 июля | 2022г. | 16:54:13 »
не помешало бы в outputpydir конвертеры и рендеры сохранять в свои каталоги...
Нет, так не стоит делать. "Белые" это не значит работоспособные, их нужно очень аккуратно проверять на работоспособность.
А сохранив в свои каталоги, при перезапуске GUI или ресивера, они перекомпилируются и при наличии ошибок система может стать не работоспособной.

Оффлайн sunriser

  • Друзья Джедаев
  • *****
  • Сообщений: 537
  • Поблагодарили: 1598
Плагин EasyPy2Decompiler
« Ответ #3: 19 июля | 2022г. | 21:43:31 »
Спасибо за Вашу постоянную нужную работу!

Теперь очередь за PY3... 

Онлайн Evg77734Автор темы

  • Мастер Джедай
  • ***
  • Сообщений: 818
  • Поблагодарили: 3960
Плагин EasyPy2Decompiler
« Ответ #4: 01 августа | 2022г. | 19:44:50 »
Теперь очередь за PY3...
Здесь не все так просто...

Плагин EasyPy23Decompiler ver. 1.0

- Только для Py3.
- Чуть изменил название, поэтому это отдельный плагин, не мешающий первому, с другим механизмом.
- Порядок работы не очень изменился, только сделал вывод процесса в консоль, иногда там можно увидеть что то полезное.
- Декомпилирует файлы pyo в py со всеми известными ограничениями, чуть дольше, но ошибок не встречал.
- Декомпилирует файлы в pyc в py до версии питона 3.8 включительно без проблем.
- Все, что выше 3.8 декомпилирует очень часто с ошибками или частично, так как механизм пока не предназначен для этого. Но даже в файлах с ошибками можно найти декомпилированные функции и даже куски кода, все это может оказаться полезным.
- Если даже декомпиляция прошла успешно, то не нужно файл в py подсовывать системе, чтобы не нарушить ее работоспособность, его нужно тщательно изучить и протестировать.
Спойлер   :
[ Гостям не разрешен просмотр вложений ]

Оффлайн sunriser

  • Друзья Джедаев
  • *****
  • Сообщений: 537
  • Поблагодарили: 1598
Плагин EasyPy2Decompiler
« Ответ #5: 04 августа | 2022г. | 22:38:13 »
Спасибо!
Конечно, я понимаю - не так всё просто, но направление правильное и всё будет нормально!!!

Онлайн Evg77734Автор темы

  • Мастер Джедай
  • ***
  • Сообщений: 818
  • Поблагодарили: 3960
Плагин EasyPy2Decompiler
« Ответ #6: 04 августа | 2022г. | 22:46:54 »
но направление правильное
А я то что? Мое дело довести этот механизм до конечного пользователя с помощью нескольких кликов пультом...
А так: "... он принимает байт-коды от Python версии 1.0 до версии 3.8, охватывающий более 24 лет выпусков Python" - это очень большая проделанная работа.
Думаю, со временем, далее будет...

Оффлайн sunriser

  • Друзья Джедаев
  • *****
  • Сообщений: 537
  • Поблагодарили: 1598
Плагин EasyPy2Decompiler
« Ответ #7: 04 августа | 2022г. | 23:01:46 »
Ну, да...
Однако, есть версии 3.10. и далее - пока никто официально не предоставил декомпилятор - насколько я понимаю.
Но, мы же можем предоставить исходники и то, что потом получается в pyc - и посмотреть.
Естественно, без обфуска́ции и т.д. - это другая история...

Онлайн Evg77734Автор темы

  • Мастер Джедай
  • ***
  • Сообщений: 818
  • Поблагодарили: 3960
Плагин EasyPy2Decompiler
« Ответ #8: 04 августа | 2022г. | 23:28:56 »
и посмотреть
Кто будет это делать? Это мало кому нужно. Но даже 3.10 файлы малых размеров вполне нормально декомпилирует, да и изучая ошибки в конечных файлах можно многое понять. Мы же хотим получить файл py, заменить его даже не вникая что там, а так не будет никогда, декомпиляция не для этого предназначена.
Большая проблема в исходниках, пишут, чтобы компилятор пропустил, не нарушая критические правила, а обратно декомпилятор это не пропускает, считая написанное ахинеей...
Я как то прогнал рабочий успешный код через проверку и получил замечаний и пожеланий гораздо больше, чем чем сам рабочий код  :)
Пример: Мы считаем, что заигнорить строку нужно перед ней поставить знак #  А вот по правилам после значка # должен быть один пробел обязательно.
И таких правил тьма...

Оффлайн sunriser

  • Друзья Джедаев
  • *****
  • Сообщений: 537
  • Поблагодарили: 1598
Плагин EasyPy2Decompiler
« Ответ #9: 05 августа | 2022г. | 00:00:42 »
Ну, так и ничего страшного - выполнить все правила PY3...
Иногда просто интересно, как твой код изменили...
Ну, если правильно и улучшили - молодцы!
Я просто очень много наблюдаю, как это происходит - и мне не нравится это.
Мы с digiteng много чего делали для улучшения и оптимизации по постерам и т.д. - а теперь какие-то люди пользуются этим всем и типа улучшают - но это бред...
Ихние интерпретации - полный отстой...
Но, иногда они в PY3 это дают - *.рус и тогда полет их мысли вообще не понятен, хотя можно посоветовать и поправить..
Эти люди с разных стран - от Индонезии до Туниса, Египта, Польши, Германии...
Я ничего не имею против - пусть придумывают что-то, однако, это ихнее видение и мнение, мне понимается ошибочным... А если у Дорика спросить - то он скажет, я так думаю,  дебилы... наверное...


Оффлайн sunriser

  • Друзья Джедаев
  • *****
  • Сообщений: 537
  • Поблагодарили: 1598
Плагин EasyPy2Decompiler
« Ответ #10: 05 августа | 2022г. | 00:43:56 »
Глюк, наверное... 
Прошу прощения - получилось не совсем по теме, наверное...
:drinks:

Онлайн тихон

  • Друзья Джедаев
  • *****
  • Сообщений: 2282
  • Поблагодарили: 8621
Плагин EasyPy2Decompiler
« Ответ #11: 05 августа | 2022г. | 05:54:27 »
Я так думаю, что надо хотя бы работы, которые выкладываются - должны быть в исходниках, тоесть - ру. Тогда и декомпилировать ничего не надо. Разве только системные модули с имиджей, для понимания изменений. Раньше этим не заморачивались. А рассуждать, что бы "тот умелец" сказал помоему не корректно. Мы тут все - каждый со своим мнением. А так плагин очень полезный в плане декомпиляции системных модулей.

Теги:
 

Похожие темы

  Тема / Автор Ответов Последний ответ
1 Ответов
5142 Просмотров
Последний ответ 17 марта | 2013г. | 23:19:09
от сергей 999s
2 Ответов
3387 Просмотров
Последний ответ 25 сентября | 2013г. | 21:31:26
от sga
0 Ответов
6421 Просмотров
Последний ответ 20 февраля | 2014г. | 18:45:01
от munche
31 Ответов
22109 Просмотров
Последний ответ 08 мая | 2022г. | 20:16:40
от avalanche444
9 Ответов
2581 Просмотров
Последний ответ 10 мая | 2022г. | 01:07:16
от tyts



X

Добро пожаловать!

Мы заметили, что у Вас установлено расширение AdBlock или ему подобное. Пожалуйста добавьте наш Клуб в белый список, внесите этим посильную лепту в его развитие. Спасибо!