StranikS_Scan 4,210 #311583 Posted January 31, 2016 Осталась только проблема мелкого шрифта на hidpi мониторах. Которая решается масштабированием интерфейса в винде. Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #311584 Posted January 31, 2016 Которая решается масштабированием интерфейса в винде. Которое ухудшает UI почти всех программ. Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #311585 Posted January 31, 2016 (edited) Которое ухудшает UI почти всех программ. Другого пути нет. Всякие древние программы используешь. Не используй. Шрифт у интерфейса сейчас 9-ка как у всех программ. Edited January 31, 2016 by StranikS_Scan Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #311948 Posted February 1, 2016 (edited) Откопал в тырнете ноябрьское чтиво "О том как чувачки протектор pjorion ломали и чем это закончилось" - тыц. Наслаждайтесь )))))) Edited February 1, 2016 by StranikS_Scan 1 Quote Share this post Link to post Short link Share on other sites
AlexChe 4 #311959 Posted February 1, 2016 (edited) Откопал в тырнете ноябрьское чтиво "О том как чувачки протектор pjorion ломали и чем это закончилось" - тыц. Наслаждайтесь )))))) честно пытался вникнуть в суть их беседы. Прям старательные парни попались))) Последний пост 20 Nov 2015 . В итоге чем у них все закончилось? Деревья логики красивые получились у них. Заморочились таки, рисовали. Edited February 1, 2016 by MAHINATOR Quote Share this post Link to post Short link Share on other sites
GPCracker 2,088 #311962 Posted February 1, 2016 Деревья логики красивые получились у них. Заморочились таки, рисовали.Они не сами это рисовали, графвиз. Я сам подобное одно время делал, ну не так красиво правда. Диаграммы джампов. Скрипты сливают инфу в файл, графвиз строит. Quote Share this post Link to post Short link Share on other sites
fecell 125 #311966 Posted February 2, 2016 (edited) Провел микротест 1.3.2, без обфускации исходного кода. Шаблон для тестирования: def test(): def f(a): q = '' if a == 6: return -1 try: a += 1 1/a except: for c in 'decompile me': q += c a += 200 else: a += 30 finally: a += 400 if a != 0: return a else: return None q = f(0) q = f(-1) q = f(6) import timeit print 'timeit:', print(timeit.timeit("test()", setup="from __main__ import test", number=100000)) Результаты: исходный код: timeit: 0.373438518288 ALT+F9 (bytecode - obfuscate - compile): timeit: 0.567744915082 ALT+P (bytecode - protect - protect .pyc-file) БЕЗ "Lock attr review...": timeit: 0.565783986549 upd: Краткая резолюция: Обфускация байткода снижает производительность скрипта на ~52%, что вполне приемлемо для задач не требующих сверхпроизводительности. Протектор вообще никак не влияет на производительность. При включении опции "Lock attr review.." публичные методы скрипта "закрываются", т.е. при включении данной опции зашифрованный скрипт нельзя будет использовать подобным образом __import__('srcipt').some_func() однако это обеспечивает более надежную защиту внутренних ресурсов скрипта (переменных, функций) от доступа к ним. Вывод: защита байткода скрипта реализована достаточно хорошо. Edited February 3, 2016 by fecell Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #311983 Posted February 2, 2016 timeit: Error in module '__main__': cannot import name test Убери галочку "Lock attr review...". UPD: И после обфускации текста вызов "test()", setup="from __main__ import test" уже не прокатит ведь имя функции станет случайным. Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #312436 Posted February 4, 2016 (edited) @StranikS_Scan, contextlib довольно интересная библиотека, как я её раньше не замечал... Печально, что фичами обзавелась только начиная с Python 3.x Edited February 4, 2016 by ShadowHunterRUS Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #312442 Posted February 4, 2016 @StranikS_Scan, contextlib довольно интересная библиотека, как я её раньше не замечал... Печально, что фичами обзавелась только начиная с Python 3.x Гыгы, да это же допил with инструкции, а я все удивлялся не уж-то её только ради работы с файлами сделали. А тут моно её по нормальному юзать как в других языках ))))) Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #312446 Posted February 4, 2016 @StranikS_Scan, может обновишь pythonversion.py? Уже Python 3.6 есть, а в этом файле еще для релиза 3.5 чисел нет. Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #312448 Posted February 4, 2016 @StranikS_Scan, может обновишь pythonversion.py? Уже Python 3.6 есть, а в этом файле еще для релиза 3.5 чисел нет. 3.5 там вписан. Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #312449 Posted February 4, 2016 3.5 там вписанно не релиз Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #312450 Posted February 4, 2016 Я обновлял ''' Python codes and versions Updated 18.12.2015 by ...Python35-32\Lib\importlib\_bootstrap_external.py ''' А релиз 3.5.1 был 6 декабря. Quote Share this post Link to post Short link Share on other sites
ZorroJan 17 #312561 Posted February 5, 2016 StranikS_Scan Не мог бы ты по подробнее описать функцию протектора EXE-Injector Что это и как работает p/s/ Хотел спросить ещё про правку функции обфускатора Structure (со скобками ты говорил проблема). Когда можно ожидать исправленный вариант? Спасибо. Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #312564 Posted February 5, 2016 (edited) StranikS_Scan Не мог бы ты по подробнее описать функцию протектора EXE-Injector Что это и как работает В общих чертах написано тут Единственное что там не указана, сейчас иногда инжектор остается в ...\TEMP\ и нубоантивирусы могут заглянув туда хрюкнуть, что мол нашли подозрительный пакованый файл. Но это я поправлю. Хотел спросить ещё про правку функции обфускатора Structure (со скобками ты говорил проблема). Когда можно ожидать исправленный вариант? Спасибо. На выходных или на неделе. Вообще и кстати рекомендую начать отучать себя от синтаксического сахара питона и писать моды (предполагаемые к обфускации) без него, не гнушась локальными переменными, как в принципе пишется код на старых классических языках. Это дает 100% гарантию, что твой код будет легко и успешно обфусцирован, с одной стороны, а с другой стороны - после обфускации такой код будет более запутанным и непонятным. Вместо if BigWorld.player().arena.vehicles.get(id)['isAlive']: Лучше player = BigWorld.player() arena = player.arena id_vehicle = arena.vehicles.get(id) if id_vehicle['isAlive']: PS: Косяк с player() это конечно не рашает, его я поправлю, совет дается в общем Edited February 5, 2016 by StranikS_Scan Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #313312 Posted February 12, 2016 (edited) Обновил пакет с декомпиляторами dcpack.zip ------------------------------ Cделал так, что декомпилятор теперь сравнивает имя файла (пути отсекаются, анализируются только имена с расширениями), куда он декомпилирует, с именем файла в co_filename и если разница только в регистре букв, то декомпилятор берет название из co_filename и переименовывает в него конечный файл. Это позволяет восстановить оригинальные имена скриптов. Клиенту игры на это чихать, он не учитывает регистр, а вот для других программ это может иметь значение. Скачать: dcpack.zip UPD: Внес исправления от spoter Edited February 17, 2016 by StranikS_Scan 4 Quote Share this post Link to post Short link Share on other sites
spoter 1,402 #313554 Posted February 14, 2016 (edited) Обновил пакет с декомпиляторами dcpack.zip ------------------------------ Cделал так, что декомпилятор теперь сравнивает имя файла (пути отсекаются, анализируются только имена с расширениями), куда он декомпилирует, с именем файла в co_filename и если разница только в регистре букв, то декомпилятор берет название из co_filename и переименовывает в него конечный файл. Это позволяет восстановить оригинальные имена скриптов. Клиенту игры на это чихать, он не учитывает регистр, а вот для других программ это может иметь значение. Скачать: dcpack.zip Всё клёво, только надо чуток поправить ) dcpack.zip При переименовывании файла в итоге ты ошибку допустил, путь неверно собирал было: rename(output, path_output+filename2_output) надо: rename(output, path_output+'\\'+filename2_output) мелочь конечно, но я был в недоумении почему не работало ) Edited February 14, 2016 by spoter 2 Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #313557 Posted February 14, 2016 (edited) надо: rename(output, path_output+'\\'+filename2_output) Для чего? Там же os.path.split он не урезает слэш import os print os.path.split('c:\\34.txt') <<< ('c:\\', '34.txt') UPD: Хотя нет урезает import os print os.path.split('c:/23/34.txt') <<< ('c:/23', '34.txt') Edited February 14, 2016 by StranikS_Scan Quote Share this post Link to post Short link Share on other sites
GPCracker 2,088 #313630 Posted February 14, 2016 Хотя нет урезает p = <path> p == os.path.join(*os.path.split(p))Как-то так)) Quote Share this post Link to post Short link Share on other sites