Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 10, 2016 11:06:28

amped
Зарегистрирован: 2016-08-10
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Как распаковать содержимое скриптa PY?

Проблема такая, софт использует скрипт на PY, разработчик софта решать проблемы не хочет (ответы вроде удалите все и попробуйте установить еще раз)…

Сам крипт PY имеет внутри содержимое в таком виде, можно ли его привести в читаемый вид для понимания логики работы и внесения корректировок? Вроде это не BASE64 …

 "borders.html": '''
		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
		DcQ1GVg=
	''',
	

Офлайн

#2 Авг. 10, 2016 11:46:58

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9992
Репутация: +  857  -
Профиль   Отправить e-mail  

Как распаковать содержимое скриптa PY?

  
>>> import base64
>>> import zlib
>>> 
>>> s = b'''
... eAHNWN1u3MYVvl4DfofxGPBysz9cb9S0jUQFtuwmLeK6iBU0gCMsKHJWpMQl18PhSkJgwM1N
... C6QXbR+gRd+gDRrATZDkFVZvlO/MDLlc7mqdIMiPAC3JmfP7nTNn5szerTAL1OVMsEhNk/2b
... N/aqp/BDPPE2FcrHtJr1xbMinns8yFIlUtUnPs7sl8eVuFAuse8GkS9zobz3D3/T/xVnLslb
... k3LgB5HoE7fMkpqYWXGcxAE3upM4PWNSJB7P1WUi8kgIxRkptvqCPOcskmJCZk2nWTrQI+4+
... A3ceyHimWC4DUEs/zRNfxSA5zfn+nmtmybY6XegrMYuDMyG3klllTRIVq0RgxDwx4Foc946z
... 8FLjOtpX0uGLvy0+v/p48XLx6eLLxVdXf7r6+OqvbPE1vS4+own8f7b4Av//5x1IGWkZhVJZ
... yoLEz3OPH6uUszgENCIRger7ScKN7H9cfbL479WLxX+M1E8h/u8kxfBvkRSKNVn/1pLILJhk
... pEE4Bl6sSITMMJ5rIceZDIXUwGDIzN3q963KLA0Q3jNY7c/F2KgTodPZ5fs0ssHIikOKXGWy
... wWQHS75+X3NKyjlrk3Uy9ef9Y18aR8uPho2AefHPqz8jAi+A/P8WL0vkS9+eFaIQpWta1zIv
... all56s99M0p5PPcl0jvJZM489pTfHt5/Y3Rvh/f47V/e+/Xo3uv8aNcQSfHMviELfbyaj6l/
... AcahnSq9J1nEePPGpEgDyms2SzI1JlYHNNMOlsBHN2+0iCkmchocxOFAilniB8Lh2fEpRPEe
... 47wDSZpyTnKHPTYk2a1JJpmjBXjDXRbvkfCBDfAgEemJijDc7XZA24onzKkTPI2Png6PPC8O
... O4wMabW0cP3WahK+fuTCzx5s3jS7o2f1nLar1TqWwj/Tr88JA2174KfAvfQkUBf0agahGJWu
... mKLEDE6Eeggo8Hr/8rehww0F78LOJcPgPA5VxMBnv7PJBDXtjzRao4pEfBKpa6msKdGSwDCU
... NlJY6vrcEWYYgQDrl3Ow+IDq44Vy+Cg0wQLBIEiEL99DDB2KWG9FVPVlNGqeDREdmfiZAJHM
... SZwkT6jYknqdtQiABrqc1QrD1+Je9Jpztz/HdKcX4kO/7ZLxCImOSpWZofTPx7lCbXXKtFxm
... 9XfLsor41IPtp3s7+LFTGzPw9GgfqkgrJZbRuk5TJU0UJ6EU6bZ8KQtcZ1BSb3KinFtxwMBM
... VLQYCWFLVWJMHkR+fkA1S69iLE67TDvGx8YiJ641uGHxuJCJM81CAa6yCtDeNjab2zb/amQm
... 1ciosuxYdzxv2EG9UoVMGb/NS/igFJK5ayFyg+nsLTLC4116dPkdEo6vmo7B3E8KmjJ+olRv
... grOhvw4nKe16VWEElNeXOO1LfMtriOvf7WjbIQZ12WLasv5hAiOrCGORa4TjsMcaKNvIXgev
... rTJLtFaCRVO6TtOZBpNGtxlSvgStGfQ8oP4WvGJvMj4+Tvz0jMxuGklOjrGZOzX7fuAUJ5D9
... MDQZXEtvhKAE3YSieQBYqxn2MPIT2C/FNJuL7+9CY9740NzAf/Z1h925w5pzSxxMVarW06zI
... I02Ek8bm4rR+jPvRYvutYKhcidNQXDyeVN7so+ZpZ6v0XgNDCxFJLjRdPY02kq5ho7KTk0SY
... ym5Q2RSYGvh6W3ulntKi7YavZ7PrtoqZLtUoOfmGBA9wCsMsiUN88vFEZlOzOdWCagM2phbP
... j9Ptm08V3XJlUEcJhna7ivKrTgnLKKssS1Q8A7vpi9C2/AVN1UvkdJdxVE481g+iNPchOqKu
... 5br65NVcOyZ/tLHYRNpVx2AWUZs2vMbBuNtGJ0t9osfbXWspjdl+xa6+Zftjc0NFcU6NT7ur
... c6y9Zw+4pMy8XqfMCkZax4GPJUhtjOFYCivNDvwZBfgaUaBvjt/FuGmmKlnmq9xM17IA6wu/
... 7xw+ehfx0fcGa+XzMg3G57GKVlJqS86RrvpRk743dI1NPUnmhx88evdBFjjIc1rjpAfdGAxL
... i0TvwLQOzwFddj4A6Tu4yHgPFxmQbdNNyUvb5Fg+cc5WCY05rec4l6sgYo7ofES4PEctygWr
... yb8Hq+big8c6AbaIX6Fz2o/yi2ky0tYdHv6hva5Nsy8FbZEUBzLLs4lqCFuzXQeW/sl6iIOx
... zPyZsvRskM1E6vC3Hx7iCAZse1hShTnlmOkUwQwvdbhwa5SeUNcxk1kg8hywHeihijoXaehQ
... QDYXzyZfmTCVy9ZKnA6h8wnpZJ7HdsrutJwmawp0jB4bDXHKtWi5rp8IqayAfJaluThER2ah
... 0S0rjP/dk8e/H8zo/utaymZa2+GNiapB1wnSMIM/lDKTb35oCtXS7JoiHSHszOownoqsAE8t
... 0dvVGZ2MaHcQn7u/GMLfsqcug+0wwSwIle4D3H4VKVURwl2QJbeqHa0VwgFAa24zdIhsYmcp
... GQCQqpChGzS94JkY405mjDsZp7qcwQZV3w1A57oPHt5//239tglF18XPFid1fbhu56ldfXVg
... qq66sHV5CN3KvXJ1VuevH2O3S6i3XaYpMt3BA0w8UTJOTxxarPTpdCwilTS9k5Qb3b/W7hGx
... eRkGWDEu70JNhXyuJ1x3BbcKLwC9kkAm5shrIncmPlKTcucNpI7OHbrzXN6HAn9z7akvhvHy
... DcQ1GVg=
... '''
>>> 
>>> d = base64.b64decode(s)
>>> t = zlib.decompress(d)
>>> t[:100]
b'<!doctype html>\r\n<html>\r\n<head>\r\n\r\n<meta http-equiv="content-type" content="text/html;charset=UTF-8"'
>>>



Офлайн

#3 Авг. 10, 2016 12:31:52

amped
Зарегистрирован: 2016-08-10
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Как распаковать содержимое скриптa PY?

Спасибо! Обратно в переменную можно просто вставить распакованный код в одинарных кавычках или надо еще что-то указать?

resources = {
"borders.html": '<!doctype html>
<html>'

Офлайн

#4 Авг. 10, 2016 13:01:07

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9992
Репутация: +  857  -
Профиль   Отправить e-mail  

Как распаковать содержимое скриптa PY?

Непонятно, зачем тебе вообще понадобилось распаковывать этот html. Обратно вставлять нужно так же - кодируя его в base64, так как в html-документе могут быть любые символы, в том числе и одинарные кавычки.



Отредактировано py.user.next (Авг. 10, 2016 13:01:42)

Офлайн

#5 Авг. 10, 2016 13:08:25

amped
Зарегистрирован: 2016-08-10
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Как распаковать содержимое скриптa PY?

Там какая-то сложная схема работы построенная частично на JS, в какой-то момент JS отрабатывает некорректно и динамически сгенерированный код не работает. Задача статично прописать этот код. Для удобства дебага хотелось бы иметь PY скрипт в легкочитаемом виде.

Офлайн

#6 Авг. 10, 2016 13:18:42

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9992
Репутация: +  857  -
Профиль   Отправить e-mail  

Как распаковать содержимое скриптa PY?

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

  
>>> s = ('abc'
...      'def'
...      'ghi'
...      'jkl')
>>> 
>>> print(s)
abcdefghijkl
>>>



Офлайн

#7 Авг. 11, 2016 04:42:10

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Как распаковать содержимое скриптa PY?

вынеси его в отдельный файл:

 "borders.html": open('bla-bla.html').read()
и подсветка в редакторе будет и править удобно.



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

Отредактировано PooH (Авг. 11, 2016 04:42:23)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version