GPCracker 2,088 #230371 Posted November 10, 2014 Понравилось, но сразу вопрос! А как выяснить последовательность цепочки вызовов функций, не роняя последнюю для создания ошибки?Ну ты конечно в точку спросил, заодно и сам узнал интересную вещь. Мне не жалко, так что лови) import traceback def a(x): if x >= 10: print ''.join(traceback.format_list(traceback.extract_stack())) return x if x >= 10 else a(x + 1) a(1)Думаю поймешь что откуда, где орион качать знаешь) 2 Quote Share this post Link to post Short link Share on other sites
Huitaarva 18 #230520 Posted November 10, 2014 В общем сделал я так: import sys f = open('2.pyc','w') sys.stdout = f print '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'.decode('base64').decode('zlib') f.close() Запустил и получил 2.рус. Первые 8 байт оригинального файла - это 03 F3 0D 0A 1E DE 21 54 - я их дописал в начало полученного 2.рус. 2 Quote Share this post Link to post Short link Share on other sites
GPCracker 2,088 #230526 Posted November 10, 2014 В общем сделал я так:Принт не самая крутая штука, символы новой строки добавляет, лучше в бинарнике работать... 1 Quote Share this post Link to post Short link Share on other sites
Huitaarva 18 #230527 Posted November 10, 2014 (edited) Принт не самая крутая штука, символы новой строки добавляет, лучше в бинарнике работать... Мне это ни о чём не говорит. А про print вы же мне сами и посоветовали... Декомпилировал я , значит, после дописки 8 байт 2.рус и получил, что и было: _ = () == () __ = _ + _ ___ = __ + __ ____ = ___ + ___ _____ = ____ + ____ ______ = _____ + _____ _______ = ______ + ______ exec '%c' * 6572 % (__ + ___ + ______ + _______, __ + и так далее и тому подобное... Всё по инструкции (1. Декомпилим орионом, заменяем exec на print, удаляем marshal.loads, сохраняем в 1.py ), однако, выходит полная хрень. Edited November 10, 2014 by Huitaarva Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #230532 Posted November 10, 2014 (edited) Мне это ни о чём не говорит. Декомпилировал я , значит, после дописки 8 байт 2.рус и получил, что и было: _ = () == () __ = _ + _ ___ = __ + __ ____ = ___ + ___ _____ = ____ + ____ ______ = _____ + _____ _______ = ______ + ______ exec '%c' * 6572 % (__ + ___ + ______ + _______, __ + и так далее и тому подобное... Всё по инструкции (1. Декомпилим орионом, заменяем exec на print, удаляем marshal.loads, сохраняем в 1.py ), однако, выходит полная хрень. В голове у вас полная ****. Если хотите работать с Питоном, то хотя бы азы то почитайте. А то вы смотрите на код - а видите ****. Выше это самый обычный Питон-скрипт. В качестве переменных используются имена _, __, ____ и т.д. Данный скрипт делает операции с символами и получает строку, которую скармливает операнду exec, а тот в свою очередь её исполняет. Хотите увидеть что за строка передается в exec? Ну дык сделайте так: _ = () == () __ = _ + _ ___ = __ + __ ____ = ___ + ___ _____ = ____ + ____ ______ = _____ + _____ _______ = ______ + ______ print '%c' * 6572 % (__ + ___ + ______ + _______, __ + и так далее и тому подобное... Выполняйте в Орионе F5. Увидите в логе что за строка там такая прячется. sys.stdout = f А вот этого в Орионе лучше просто так не делать. Орион сам подменяет sys.stdout на свою функцию вывода инфы в окно Ориона. Если обратно не вернете old_stdout = sys.stdou sys.stdout = f ... sys.stdout = old_stdout то в лог Ориона ни чего потом писаться не будет. Придётся перезагружать (ALT+R ) Edited November 10, 2014 by StranikS_Scan 1 Quote Share this post Link to post Short link Share on other sites
GPCracker 2,088 #230538 Posted November 10, 2014 В общем вторая часть мануала по хукам. Property. "Установка хука на Property" #We have class with property class cla(object): def __init__(self): self.x = 0 pass @property def param(self): print 'getter' return self.x @param.setter def param(self, x): print 'setter' self.x = x @param.deleter def param(self): print 'deleter' del self.x #we create object obj = cla() #defining hook functions now def new_cla_pg(self): print 'hook getter' return old_cla_pg(self) def new_cla_ps(self, x): print 'hook setter' return old_cla_ps(self, x) def new_cla_pd(self): print 'hook deleter' return old_cla_pd(self) #the most interest part #we get origin property old_prop = cla.param #now we get getter, setter, deleter from it old_cla_pg = old_prop.fget old_cla_ps = old_prop.fset old_cla_pd = old_prop.fdel #now build new property new_prop = property(new_cla_pg, new_cla_ps, new_cla_pd) #inject new property to class cla.param = new_prop #You don`t need to hook all getter, setter, deleter you can use one or two others will remain origins #Let's see what we have got print '---' #setting a property obj.param = 4 print '---' #getting a property print obj.param print '---' #deleting property del obj.param print '---' #getting property again... but it was deleted... exception expected. print obj.param print '---' ''' --- hook setter setter --- hook getter getter 4 --- hook deleter deleter --- hook getter getter Traceback (most recent call last): File "2.py", line 63, in <module> print obj.param File "2.py", line 28, in new_cla_ pg return old_cla_pg(self) File "2.py", line 10, in param return self.x AttributeError: 'cla' object has no attribute 'x' ''' 4 Quote Share this post Link to post Short link Share on other sites
Huitaarva 18 #230545 Posted November 10, 2014 А вот этого в Орионе лучше просто так не делать. Орион сам подменяет sys.stdout на свою функцию вывода инфы в окно Ориона. Если обратно не вернете old_stdout = sys.stdou sys.stdout = f ... sys.stdout = old_stdout то в лог Ориона ни чего потом писаться не будет. Придётся перезагружать (ALT+R ) Я это не в Орионе делал... ))) Просто даблкликнул на 1.ру... ))) Quote Share this post Link to post Short link Share on other sites
Huitaarva 18 #230643 Posted November 11, 2014 1. В голове у вас полная ****. Если хотите работать с Питоном, то хотя бы азы то почитайте. А то вы смотрите на код - а видите ****. 2. Выше это самый обычный Питон-скрипт. В качестве переменных используются имена _, __, ____ и т.д. Данный скрипт делает операции с символами и получает строку, которую скармливает операнду exec, а тот в свою очередь её исполняет. 3. Хотите увидеть что за строка передается в exec? Ну дык сделайте так: 1. Вы самоутверждаетесь что-ли путём оскорблений других ? Азы я читал. За дал нормальный вопрос - как декомпилировать скрипт. За что меня говном мазать ? 2. Это я всё прекрасно понимаю. Вопрос в том, что делать дальше... 3. Сделал, как вы сказали. Вот лог: <<< File "<string>", line 9<<< __ + ____ + ______ + _______, __ + ___ + ____ + ______ + _______, _ + _______, __ + _____ + ______ + _______, _ + ___ + ______ + _______, __ + ___ + ____ + ______ + _______, _ + ______ + _______, _____ + _______, _ + ___ + ______ + _______, __ + _____ + и так далее <<< + __<<< ^<<< SyntaxError: invalid syntax Вот и всё... (((( Quote Share this post Link to post Short link Share on other sites
fecell 125 #230652 Posted November 11, 2014 Вот и всё... (((( на 99.99% уверен что ты удалил в строке лишнее, подозреваю скобку. 1 1 Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #230673 Posted November 11, 2014 (edited) 1. Вы самоутверждаетесь что-ли путём оскорблений других ? Азы я читал. За дал нормальный вопрос - как декомпилировать скрипт. За что меня говном мазать ? А вы действительно такой наивный или просто обмазанный? Эта тема не предназначена для ответов на вопросы как шасшифровать чужой скрипт. Не флудите тут. Создавайте новую тему и там пишите, что вам надо. Я вам уже не раз писал как сделать надо. Если не доходит, то читаем, вникаем курим. А просто так ни кто вам тут чужой скрипт вскрывать не будет. Он для того и зашифрован чтоб всякие кому не положено не могли до него добраться. А кому положено - тот умеет, или сам сообразит по подсказкам. Вам сюда. Edited November 11, 2014 by StranikS_Scan 2 1 Quote Share this post Link to post Short link Share on other sites
Huitaarva 18 #230692 Posted November 11, 2014 на 99.99% уверен что ты удалил в строке лишнее, подозреваю скобку. Нетнетнетнет... )))) Сделал я, крч, спасибо... ))) А просто так ни кто вам тут чужой скрипт вскрывать не будет. Он для того и зашифрован чтоб всякие кому не положено не могли до него добраться. А кому положено - тот умеет, или сам сообразит по подсказкам. Да ладно ? А вот представьте - вскрыли за "спасибо"... Только я сам хотел разобраться... ))) Кому положено, кому не положено... корона жмёт по-ходу некоторым... амбиции так и прут... Вы ж Макса тут все ненавидите, что ж за него вступаетесь тогда ? Всё равно он этот скрипт спёр у кого-то... А про "умеет" - я нисколько не умаляю ваши знания, но вы с ними не родились... тоже учились... как мне учиться - моё дело, предпочитаю брать конкретный пример и работать с ним, попутно разбираясь в деталях... В любом случае - спасибо вам всем. )))) Эта тема не предназначена для ответов на вопросы как шасшифровать чужой скрипт. Кстати, а зачем в Орионе Decompyle и Obfuscate ? Не затем ли, чтобы "шасшифровать чужой скрипт" ? )))))))))))))))))) 6 Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #230740 Posted November 11, 2014 Кому положено, кому не положено... корона жмёт по-ходу некоторым... амбиции так и прут... Как сам не можешь так клянчишь, а как тебе показали да рассказали - так сразу гордый какой. Я выше тебя предупредил, не пиши в мой теме не по теме. Тема моя и я не хочу чтоб тут всякие балаган разводили. Кстати, а зачем в Орионе Decompyle и Obfuscate ? Не затем ли, чтобы "шасшифровать чужой скрипт" ? )))))))))))))))))) Гугл-словарь в помощь. 2 2 Quote Share this post Link to post Short link Share on other sites
Huitaarva 18 #230742 Posted November 11, 2014 Ты обороты прикрути, дядя. Что значит "всякие" ? В семье бомжей вырос, где в детстве не рассказывали, что хамить - нехорошо ? 10 Quote Share this post Link to post Short link Share on other sites
coJlHe4Hblu_noH4uk 141 #230820 Posted November 11, 2014 В общем вторая часть мануала по хукам. Потеряется. Да и тема не то, чтобы очень подходила для манов в комментариях. Вы бы отдельной темкой, со спойлерами :-) 2 Quote Share this post Link to post Short link Share on other sites
GPCracker 2,088 #230838 Posted November 11, 2014 (edited) Ну вы тут и развели... Объект GUI.Text() через Орион создать не получается, вылетает клиент, через нормальный мод (файлик в папку с модами) все работает нормально. С чем это может быть связано? Остальные скрипты через Орион работают нормально, проблема только с модулем GUI.Не знаю, чинил это автор или нет, но по крайней мере создать GUI объект в ангаре через орион получилось без вылетов. Может разрабы чего пофиксили (когда сломали colour) Edited November 11, 2014 by GPCracker Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #230853 Posted November 11, 2014 Ну вы тут и развели... Не знаю, чинил это автор или нет, но по крайней мере создать GUI объект в ангаре через орион получилось без вылетов. Может разрабы чего пофиксили (когда сломали colour) В ангаре и когда клиент на входе окна авторизации - проблем нет. А вот в реплее "голый" GUI.Text() вызвать не получиться. Можно только в составе подпрограммы. Подозреваю это как-то связано с трансмиттером. Скрипты из Ориона попадают в модуль трасмиттера и там exec-ятся думаю тут косяк и кроется. Но в принципе не критично. Quote Share this post Link to post Short link Share on other sites
o-0-0-0 77 #231162 Posted November 12, 2014 (edited) два дня не было :D и тут срачь развели :D я даже подозреваю кто это :D По делу : Добавь к программе Орион видимые пробелы , опять из за них ошибки получал , пока 100. строк не просмотрел где пробел лишкий ))))) А так бы подсвечивался , быстрей бы нашёл . А так то синтаксис кода вроде работает отлично . Edited November 12, 2014 by o-0-0-0 Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #231169 Posted November 12, 2014 Добавь к программе Орион видимые пробелы , опять из за них ошибки получал , пока 100. строк не просмотрел где пробел лишкий ))))) А так бы подсвечивался , быстрей бы нашёл . А так то синтаксис кода вроде работает отлично . Ты вообще читаешь мои ответы? Уже третий раз тебе пишу, включи в настройках показ непечатаемых символов Terminal - Settings - Show special characters 1 Quote Share this post Link to post Short link Share on other sites
o-0-0-0 77 #231305 Posted November 13, 2014 вот теперь заметил :D спасибо ! 1 Quote Share this post Link to post Short link Share on other sites
o-0-0-0 77 #232867 Posted November 23, 2014 (edited) Какова работа пункта "Apply processing to the script" ? По переводу как бы "Применение обработки в сценария" , но после этого он отказывается компилировать код , то на else выдаст ошибку то ещё на что нибудь . Я так понял что кривовато работает обработчик ? Edited November 23, 2014 by o-0-0-0 Quote Share this post Link to post Short link Share on other sites