Azbuka 278 #247664 Posted February 4, 2015 Гуд, а еще нужен скриптик, который бы удалял записи из реестра. А то вдруг надо убрать контексты из меню Добавил в тот же скрипт. Если аргумент - remove, то контекстное меню будет очищено, иначе - добавим пункты. Добавил и остальные пункты - компиляцию, декомпиляцию и т.д. from _winreg import * import sys ContextMenus = [ { 'name' : 'Open in Orion', 'command': sys.argv[1] + ' "%1"', 'icon' : '', 'key' : '.py', 'descr' : 'Python script' }, { 'name' : 'Compile file', 'command': sys.argv[1] + ' --compile-file "%1"', 'icon' : '', 'key' : '.py', 'descr' : 'Python script' }, { 'name' : 'Run in Orion', 'command': sys.argv[1] + ' --run "%1"', 'icon' : '', 'key' : '.py', 'descr' : 'Python script' }, { 'name' : 'Run in WoT', 'command': sys.argv[1] + ' --run-game "%1"', 'icon' : '', 'key' : '.pyc', 'descr' : 'Python bytecode' }, { 'name' : 'Decompile file', 'command': sys.argv[1] + ' --decompile-file "%1"', 'icon' : '', 'key' : '.py', 'descr' : 'Python bytecode' }, { 'name' : 'Disassemble file', 'command': sys.argv[1] + ' --disassemble "%1"', 'icon' : '', 'key' : '.py', 'descr' : 'Python bytecode' }, { 'name' : 'Decompile folder', 'command': sys.argv[1] + ' --decompile-path "%1"', 'icon' : '', 'key' : 'Directory', 'descr' : '' }, { 'name' : 'Compile folder', 'command': sys.argv[1] + ' --compile-path "%1"', 'icon' : '', 'key' : 'Directory', 'descr' : '' } ] if sys.argv[1] == 'remove': for i in ContextMenus: try: try: Key = OpenKey(HKEY_CLASSES_ROOT, QueryValue(HKEY_CLASSES_ROOT, i['key']), 0, KEY_ALL_ACCESS) except: Key = OpenKey(HKEY_CLASSES_ROOT, i['key'], 0, KEY_ALL_ACCESS) Key = OpenKey(Key, 'shell\\' + i['name'], 0, KEY_ALL_ACCESS) DeleteKey(Key, 'command') if i['icon']: DeleteValue(Key, 'Icon') DeleteKey(Key,'') except: pass else: for i in ContextMenus: try: OpenKey(HKEY_CLASSES_ROOT, i['key']) try: Key = OpenKey(HKEY_CLASSES_ROOT, QueryValue(HKEY_CLASSES_ROOT, i['key']), 0, KEY_ALL_ACCESS) except: Key = OpenKey(HKEY_CLASSES_ROOT, i['key'], 0, KEY_ALL_ACCESS) except: SetValue(HKEY_CLASSES_ROOT, i['key'], REG_SZ, i['descr']) Key = OpenKey(HKEY_CLASSES_ROOT, i['key'], 0, KEY_ALL_ACCESS) try: Key = OpenKey(Key, 'shell', 0, KEY_ALL_ACCESS) except: Key = CreateKey(Key, 'shell') SetValue(CreateKey(CreateKey(Key, i['name']), 'command'), '', REG_SZ, i['command']) if i['icon']: SetValueEx(OpenKey(Key, i['name'], 0 , KEY_ALL_ACCESS), 'Icon', 0, REG_SZ, i['icon']) context.zip Одно плохо - контекстное меню становится огромным: Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #247665 Posted February 4, 2015 (edited) , сделай вложенные контексты, убери пункты в подменю. И тогда их можно будет много сделать и будет удобно. Edited February 4, 2015 by StranikS_Scan Quote Share this post Link to post Short link Share on other sites
Azbuka 278 #247672 Posted February 4, 2015 @StranikS_Scan, Я попробовал примеры из этой статьи. На моём XP результата нет.7Zip и другие программы добавляют подменю с помощью каких-то библиотек и огромного количества записей в реестре.Связываться с такими методами или переустанавливать Windows мне не хочется.-------Йей, да я ошибся!Decompile file и Disassemble file по ошибке добавил к .py.После исправления всё получается нормально - по три пункта к .py и .pyc, а ещё два - к папкам. from _winreg import * import sys ContextMenus = [ { 'name' : 'Open in Orion', 'command': sys.argv[1] + ' "%1"', 'icon' : '', 'key' : '.py', 'descr' : 'Python script' }, { 'name' : 'Compile file', 'command': sys.argv[1] + ' --compile-file "%1"', 'icon' : '', 'key' : '.py', 'descr' : 'Python script' }, { 'name' : 'Run in Orion', 'command': sys.argv[1] + ' --run "%1"', 'icon' : '', 'key' : '.py', 'descr' : 'Python script' }, { 'name' : 'Run in WoT', 'command': sys.argv[1] + ' --run-game "%1"', 'icon' : '', 'key' : '.pyc', 'descr' : 'Python bytecode' }, { 'name' : 'Decompile file', 'command': sys.argv[1] + ' --decompile-file "%1"', 'icon' : '', 'key' : '.pyc', 'descr' : 'Python bytecode' }, { 'name' : 'Disassemble file', 'command': sys.argv[1] + ' --disassemble "%1"', 'icon' : '', 'key' : '.pyc', 'descr' : 'Python bytecode' }, { 'name' : 'Decompile folder', 'command': sys.argv[1] + ' --decompile-path "%1"', 'icon' : '', 'key' : 'Directory', 'descr' : '' }, { 'name' : 'Compile folder', 'command': sys.argv[1] + ' --compile-path "%1"', 'icon' : '', 'key' : 'Directory', 'descr' : '' } ] if sys.argv[1] == 'remove': for i in ContextMenus: try: try: Key = OpenKey(HKEY_CLASSES_ROOT, QueryValue(HKEY_CLASSES_ROOT, i['key']), 0, KEY_ALL_ACCESS) except: Key = OpenKey(HKEY_CLASSES_ROOT, i['key'], 0, KEY_ALL_ACCESS) Key = OpenKey(Key, 'shell\\' + i['name'], 0, KEY_ALL_ACCESS) DeleteKey(Key, 'command') if i['icon']: DeleteValue(Key, 'Icon') DeleteKey(Key,'') except: pass else: for i in ContextMenus: try: OpenKey(HKEY_CLASSES_ROOT, i['key']) try: Key = OpenKey(HKEY_CLASSES_ROOT, QueryValue(HKEY_CLASSES_ROOT, i['key']), 0, KEY_ALL_ACCESS) except: Key = OpenKey(HKEY_CLASSES_ROOT, i['key'], 0, KEY_ALL_ACCESS) except: SetValue(HKEY_CLASSES_ROOT, i['key'], REG_SZ, i['descr']) Key = OpenKey(HKEY_CLASSES_ROOT, i['key'], 0, KEY_ALL_ACCESS) try: Key = OpenKey(Key, 'shell', 0, KEY_ALL_ACCESS) except: Key = CreateKey(Key, 'shell') SetValue(CreateKey(CreateKey(Key, i['name']), 'command'), '', REG_SZ, i['command']) if i['icon']: SetValueEx(OpenKey(Key, i['name'], 0 , KEY_ALL_ACCESS), 'Icon', 0, REG_SZ, i['icon']) context.zip Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #247676 Posted February 4, 2015 , забираю, буду пилить. Quote Share this post Link to post Short link Share on other sites
GPCracker 2,088 #247701 Posted February 4, 2015 7Zip и другие программы добавляют подменю с помощью каких-то библиотек и огромного количества записей в реестре. А так? Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #247713 Posted February 4, 2015 (edited) Господа-товарищи, дабы в будущем не повторялась весьма плачевная история, которая сегодня произошла вот с этим модом -> взлом. Я красным жирным шрифтом написал в первом посте дважды и напишу еще и тут - ни какая защита не спасет ваш мод, если вы сами убиваете на нет её работу! В данном случае автор мода перед компиляцией скрипта сжал его в ZipBase-64 строку и тем самым сделал просто бессмысленным и не возможным какую-либо последующую обфускацию скрипта. Не смотря на то, что такой скрипт после обфускации и протекции как бы внешне защищен, эта самая сжатая строка может быть извлечена из импортированного в игру скрипта и легко раскодирована в исходный код. Не делайте так! Я в следующей версии добавлю функционал для кодирования констант в скриптах и их сокрытия, чтобы даже и в такой ситуации взлом не прокатывал. Но и вы со своей стороны, будьте добры, включайте голову, а иначе это всё будет бесполезно. Edited February 4, 2015 by StranikS_Scan Quote Share this post Link to post Short link Share on other sites
lportii 14 #247788 Posted February 5, 2015 ЛОЛ. Расковырять обфускатор мерца и так ложануться. 1 Quote Share this post Link to post Short link Share on other sites
KACTET 317 #247810 Posted February 5, 2015 (edited) ЛОЛ. Расковырять обфускатор мерца и так ложануться. Нету возможности спросить, посоветоваться. Учусь сам. Лоханулся потому как надо делать всё выспавшись. Больше человек который имел отношение к функциям защиты у Ориона, знает нюансы протектора и обфускации у Ориона, знал о возможной дыре,нашёл дыру,взломал и слил мод в рандом с головой не дружит. Господа-товарищи, дабы в будущем не повторялась весьма плачевная история, которая сегодня произошла вот с этим Вот только не надо уже делать из меня вообще идиота. Сейчас если уже мод слит просто мод обфусцировался орионом и поставлен протектор. И сделано всё правильно так человек до сих пор спокойно лазит по обфусцированному коду с протектором. Делайте выводы.. Edited February 5, 2015 by KACTET 6 Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #247842 Posted February 5, 2015 (edited) Делайте выводы.. Выводы выше уже сделаны. И Орион тут не причем. Тебе стоило головой думать. А сейчас конечно всякий кому не лень будет тебе писать что он по твоему коду якобы лазит. ЗЫ: И да - ты идиот! Раз до сих пор ищешь проблему в Орионе, а не в свой тупости. Edited February 5, 2015 by StranikS_Scan 3 Quote Share this post Link to post Short link Share on other sites
KACTET 317 #247843 Posted February 5, 2015 Выводы выше уже сделаны. И Орион тут не причем. Тебе стоило головой думать. А сейчас конечно всякий кому не лень будет тебе писать что он по твоему коду якобы лазит. Давай только не будем. Всё что написано есть. И действительно написано что убрано а что добавлено. Если есть дыра в защите то почему бы не признать.. 4 Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #247844 Posted February 5, 2015 Давай только не будем. Всё что написано есть. И действительно написано что убрано а что добавлено. Если есть дыра в защите то почему бы не признать.. Дыра у тебя в голове. 4 1 Quote Share this post Link to post Short link Share on other sites
GPCracker 2,088 #247845 Posted February 5, 2015 Не надо так, давайте жить дружно! 1 Quote Share this post Link to post Short link Share on other sites
KACTET 317 #247853 Posted February 5, 2015 Дыра у тебя в голове. Нафиг ты грубишь? Да нечего тут говорить.. метки в конце протектора вида t t t tt и в конце обфускации. Считаю и даже уверен есть дыра или декриптор. 1 Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #247855 Posted February 5, 2015 Нафиг ты грубишь? Да нечего тут говорить.. метки в конце протектора вида t t t tt и в конце обфускации. Считаю и даже уверен есть дыра или декриптор. Ага лично у тебя, дыра.... в голове. У других дыр нет, у других ни кто ни чего не сломал не слил, а тебя бедолаги - дыра и метки. Уйди с глаз моих, пока моё терпение не лопнуло. 4 Quote Share this post Link to post Short link Share on other sites
KACTET 317 #247857 Posted February 5, 2015 Ага лично у тебя, дыра.... в голове. У других дыр нет, у других ни кто ни чего не сломал не слил, а тебя бедолаги - дыра и метки. Уйди с глаз моих, пока моё терпение не лопнуло. А то что? Простонуб сам писал с протектором помогал. А у других то и ломать нечего, притом что просто нуб мой вражина. Понимаешь иногда плохо скрывать очевидное. 1 Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #247859 Posted February 5, 2015 А то что? Простонуб сам писал с протектором помогал. А у других то и ломать нечего, притом что просто нуб мой вражина. Понимаешь иногда плохо скрывать очевидное. Согласен, очевидное - это то что ты идиот. И то, что с тобой произошло, а с другими почему-то не произошло как раз это очевидное и доказывает. Ты как был криворуким так и остался. Простонуб ни чего не ломал, глупая твой голова. Он импортировал твой модуль и прочитал содержимое переменной prc, в которую ты по свой глупости запихнул код своего мода. Что ж ты сразу то всем этот свой код не раздал? Пипец просто. 1 Quote Share this post Link to post Short link Share on other sites
KACTET 317 #247867 Posted February 5, 2015 Согласен, очевидное - это то что ты идиот. И то, что с тобой произошло, а с другими почему-то не произошло как раз это очевидное и доказывает. Ты как был криворуким так и остался. Простонуб ни чего не ломал, глупая твой голова. Он импортировал твой модуль и прочитал содержимое переменной prc, в которую ты по свой глупости запихнул код своего мода. Что ж ты сразу то всем этот свой код не раздал? Пипец просто. Как человек сейчас обфусцированный по всем правилам мод с наложенным протектором может сравнивать со старым модом и говорить что добавлено, что удалено а в остальном код в один один? Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #247868 Posted February 5, 2015 (edited) Как человек сейчас обфусцированный по всем правилам мод с наложенным протектором может сравнивать со старым модом и говорить что добавлено, что удалено а в остальном код в один один? Точно также как я могу говорить всем, что я японец и хрен у меня 3 метра.... Он тебя на***вает. Edited February 5, 2015 by StranikS_Scan Quote Share this post Link to post Short link Share on other sites
KACTET 317 #247870 Posted February 5, 2015 Точно также как я могу говорить всем, что я японец и хрен у меня 3 метра.... Он тебя на***вает. Ясно. Старого жука не проймёшь 1 Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #247872 Posted February 5, 2015 (edited) Ясно. Старого жука не проймёшь Всё что можно, это импортировать твой скрипт и посмотреть какие у него атрибуты.... ты с модулями что ли ни когда не работал??? import z_ab print z_ab.rpc print dir(z_ab) Вот он тебе и говорит, какие ты там атрибуты добавил а какие ты удалил из скрипта.... А вот декомпилировать атрибуты уже не получиться. Edited February 5, 2015 by StranikS_Scan Quote Share this post Link to post Short link Share on other sites