GPCracker Posted March 13, 2015 Share Posted March 13, 2015 @ahwa, за такой информативный и короткий пост можно получить благодарность от админа) @StranikS_Scan, как там с трансмиттером? У кого до сих пор не бомбило по поводу трансмиттера, запустите import Keys for key in dir(Keys): if not key.startswith('__') and not key.endswith('__'): print key, ';', getattr(Keys, key) З.Ы. Скрипт выводит имена и код клавиш. @ Quote Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted March 13, 2015 Author Share Posted March 13, 2015 (edited) как там с трансмиттером? Уточни? @fecell, я правильно понял - он спрашивал как такое можно сделать? Edited March 13, 2015 by StranikS_Scan @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted March 13, 2015 Share Posted March 13, 2015 Уточни?Попробуй выполнить скрипт (через трансмиттер в клиенте), поймешь) @ Quote Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted March 13, 2015 Author Share Posted March 13, 2015 (edited) Попробуй выполнить скрипт (через трансмиттер в клиенте), поймешь) У конечно со всем уважением, но делается это так: import Keys print '\n'.join([('%s:\t%s') % (key, getattr(Keys, key)) for key in dir(Keys) if not key.startswith('__') and not key.endswith('__')]) Edited March 13, 2015 by StranikS_Scan @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted March 13, 2015 Share Posted March 13, 2015 У конечно со всем уважением, но делается это так:Я так тоже могу (и даже делал примерно так), но это называется "костыли-велосипеды". @ Quote Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted March 13, 2015 Author Share Posted March 13, 2015 Я так тоже могу (и даже делал примерно так), но это называется "костыли-велосипеды". Нет, это называется - правильный подход, когда поддон с кирпичами во двор выгружают, а не на улицу чтоб потом через ворота по одному кирпичу таскать. @ Quote Link to comment Short link Share on other sites More sharing options...
fecell Posted March 14, 2015 Share Posted March 14, 2015 (edited) я правильно понял - он спрашивал как такое можно сделать? не, как из листинга собрать обратно pyc-файл. по сути дамп скрипта без вывода dis-листинга самого байткода он скинул. я тоже где-то в инете находил скрипт который один в один дампит. ну вообщем-то вот он чуть подправленный, чтобы если dis с ошибкой вываливается, то чтобы дальше дамп выводился. 'dis_showfile.py' import dis, marshal, struct, sys, time, types def show_file(fname): f = open(fname, "rb") magic = f.read(4) moddate = f.read(4) modtime = time.asctime(time.localtime(struct.unpack('L', moddate)[0])) print "magic %s" % (magic.encode('hex')) print "moddate %s (%s)" % (moddate.encode('hex'), modtime) code = marshal.load(f) show_code(code) def show_code(code, indent=''): print "%scode" % indent indent += ' ' print "%sname %r" % (indent, code.co_name) print "%sargcount %d" % (indent, code.co_argcount) print "%snlocals %d" % (indent, code.co_nlocals) print "%sstacksize %d" % (indent, code.co_stacksize) print "%sflags %04x" % (indent, code.co_flags) show_hex("code", code.co_code, indent=indent) try: dis.disassemble(code) except: print '--ERR--' print "%sconsts" % indent for const in code.co_consts: if type(const) == types.CodeType: show_code(const, indent+' ') else: print " %s%r" % (indent, const) print "%snames %r" % (indent, code.co_names) print "%svarnames %r" % (indent, code.co_varnames) print "%sfreevars %r" % (indent, code.co_freevars) print "%scellvars %r" % (indent, code.co_cellvars) print "%sfilename %r" % (indent, code.co_filename) print "%sfirstlineno %d" % (indent, code.co_firstlineno) show_hex("lnotab", code.co_lnotab, indent=indent) def show_hex(label, h, indent): h = h.encode('hex') if len(h) < 60: print "%s%s %s" % (indent, label, h) else: print "%s%s" % (indent, label) for i in range(0, len(h), 60): print "%s %s" % (indent, h[i:i+60]) if __name__ == '__main__': show_file(sys.argv[1]) Edited March 14, 2015 by fecell @ Quote Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted March 14, 2015 Author Share Posted March 14, 2015 (edited) не, как из листинга собрать обратно pyc-файл. А зачем обратно дамп собирать в pyc? Или это такая извращенная форма редактирования: pyc -> дамп -> edit -> new_дамп -> new_pyc Edited March 14, 2015 by StranikS_Scan @ Quote Link to comment Short link Share on other sites More sharing options...
fecell Posted March 14, 2015 Share Posted March 14, 2015 А зачем обратно дамп собирать в pyc? Или это такая извращенная форма редактирования: pyc -> дамп -> edit -> new_дамп -> new_pyc да хз.. вероятно в тексте пропатчил что-то и есть желание собрать обратно.. а может защиту так делает - в исходник вставил "print" раз 10 и все последовательности \x48 * 10 в листинге изменил рандомно.. теперь обратно собрать хочет, в принципе логично так создавать защиту от декомпила "на коленке" ;) @ Quote Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted March 14, 2015 Author Share Posted March 14, 2015 (edited) да хз.. вероятно в тексте пропатчил что-то и есть желание собрать обратно.. а может защиту так делает - в исходник вставил "print" раз 10 и все последовательности \x48 * 10 в листинге изменил рандомно.. теперь обратно собрать хочет, в принципе логично так создавать защиту от декомпила "на коленке" ;) Я от такого варианта работы с кодом отказался сразу, проще оказалось виртуальную машину написать байт-код -> виртуальный код -> новый байт-код. Edited March 14, 2015 by StranikS_Scan @ Quote Link to comment Short link Share on other sites More sharing options...
MakcT40 Posted March 14, 2015 Share Posted March 14, 2015 тоже где-то в инете находил скрипт который один в один дампит. Где-то здесь, полагаю. @ Quote Link to comment Short link Share on other sites More sharing options...
AtotIK Posted March 14, 2015 Share Posted March 14, 2015 Сорри за оффтоп, а скрипты от WoWS уже ковыряли? А то там чем-то запаковано всё. @ Quote Link to comment Short link Share on other sites More sharing options...
woole Posted March 14, 2015 Share Posted March 14, 2015 Сорри за оффтоп, а скрипты от WoWS уже ковыряли? А то там чем-то запаковано всё.Расстроился, когда увидел, что все обфусцировано( Так и не смог расковырять. Интересно, они так и останутся? Мне кажется, в релизе будут чистые скрипты, иначе как моды будут делать :) @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted March 14, 2015 Share Posted March 14, 2015 Расстроился, когда увидел, что все обфусцировано( Так и не смог расковырять. Интересно, они так и останутся? Мне кажется, в релизе будут чистые скрипты, иначе как моды будут делать :)Обфуцировано или зашифровано? @ Quote Link to comment Short link Share on other sites More sharing options...
woole Posted March 14, 2015 Share Posted March 14, 2015 Обфуцировано или зашифровано?Зашифровано, конечно. Однако никто не отрицает первого :) @ Quote Link to comment Short link Share on other sites More sharing options...
DrWebber Posted March 14, 2015 Share Posted March 14, 2015 Зашифровано, конечно. Однако никто не отрицает первого :) Скинь пример скрипта. @ Quote Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted March 14, 2015 Author Share Posted March 14, 2015 (edited) Скинь пример скрипта. Там импорт они свой сделали, он и расшифровывает. Типа обычный импорт -> хук_импорт -> расшифровка -> продолжение обычного импорта. Чтобы подглядеть надо весь клиент качнуть. Мне тупо лень. Примеры шыфрованых файлов.zip Edited March 14, 2015 by StranikS_Scan 1 @ Quote Link to comment Short link Share on other sites More sharing options...
fecell Posted March 15, 2015 Share Posted March 15, 2015 Скинь пример скрипта. там в экзешнике лоадер.. @ Quote Link to comment Short link Share on other sites More sharing options...
Ekspoint Posted March 15, 2015 Share Posted March 15, 2015 (edited) Сорри за оффтоп, а скрипты от WoWS уже ковыряли? А то там чем-то запаковано всё. все закрыто( на стадии бета) в релизе обещали открыть Edited March 15, 2015 by ♫♫♫Dark_Knight_MiX♫♫♫ @ Quote Link to comment Short link Share on other sites More sharing options...
spoter Posted March 15, 2015 Share Posted March 15, 2015 https://yadi.sk/d/l1ejd0ANfGrbE вот загрузчик питон модов для корабликов. @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.