Jump to content
Korean Random

jeroohn

User
  • Content Count

    347
  • Joined

  • Last visited

  • Days Won

    6

jeroohn last won the day on March 22 2014

jeroohn had the most liked content!

Community Reputation

285 ⭐⭐

Basic information

  • Gender
    Мужчина

Contacts

  • Nick
    jeroohn
  1. жалко Джобса умный мужик был... точнее не мужик... что конкретно чего у вас нет, но есть у Джобса привело вас сюда?
  2. Осталость под нужды сокрытия исходников функциональное шифрование Амита Сахая приспособить ))))
  3. возможно это даже лучше чем когда показывает всех кто дамажит =)
  4. Не ошибка, вы попытались просмотреть результат боя который был сыгран в прошлой сессии. В игре появляется сообщение что результат боя не доступен в питоне такой лог
  5. Времени нет, да и не заинтересован я в усложнении декомпиляции скриптов))) По мне пусть лучше ничего не меняется ) а то с каждым разом все геморнее внутрь скриптов заглядывать.
  6. Проект интересен, как успехи?
  7. Временно, по объективным причинам, поддержки и обновления мода ближайшие один два патча не будет. Модераторов прошу темку открепить.
  8. Кстати, когда собирал твой скрипт из этой темы, заметил некоторые не оптимизированные веши. Скрипт компилтлся каким питоном? 2.7.3?
  9. идея оч. интересная, на мой взгляд, но есть несколько нюансов: 1. У такой нарисованной стратеги не хватит, на мой взгляд, точности. трудно стрелкой на миникарте показать что нужно заехать именно вот в эту низину/за этот камень/встать в этот куст, вообще по стрелке не понятно куда встать то в куст или за стоящий рядом дом. Суть - проблема точности. Не таскать же к этой схеме еще целую легенду с пояснениями. 2. Стратегия в общем случае зависит от куда как больших факторов чем выбранный танк, карта и респ. Прекрасная нычка при отсутсвии арты в команде соперника может оказатся убийственной при наличии этой самой арты. аналогично тактика для быстрого/тяжелого сетапа, количества ПТ в командах, общего характера техники в команде - атакующего/защитного плана. В принципе худо бедно большинство вещей можно как то учесть в период 30 секундного отчета. Выдать неплохую стратегию, но все меняется когда приходят они - раки =). Разъезд ололо стаей, маусы светящие поле малиновки и прочие выкидоны ракообразных приводят к необходимости динамически пересчитывать и перерисовывать эти стратегические стрелочки. Либо сетап попался грамотный хорошо разъехались стрелочка привела нас куда надо мы сделали много полезного - а дальше? Все зависит от того где наша команда продавила или не продаваила и давят наоборот наших.... Суть - необходимо учитывать множество как статичиских факторов вроде сетапа и.т.д так и так и динамчиских - меняющихся по ходу боя. Вывод: Либо это будут стрелочки - а-ля нное количество людей на этом танке ехали вот сюда, и, толи потому что они сюда ехали, а команда в это время занималась делом или противники сраковали, толи потому что звезды так совпали - но суть команда победила. В общем случае стрелочка будет указывать неплохое место, но иметь отношение к побед команды, чуть более чем никакое. Либо это будут стрелочки учитывающие множество факторов как статичиских так и динамических будут вести игрока по ходу боя целенаправленно к победе предлагая ему не только занять удобное место в начале боя но и потом переехать дабы помочь союзникам на другом фланге или вернутся сбить захвать и.т.п. Вывод такие вот стрелочки на мой взгляд действительно будут вести команду к победе. Но цена вопроса резко возрастает - как в плане усложнения алогритма так и роста необходимых вычислительных ресурсов... и на мой взгляд трудно реализуемо. ЗЫ. Это лишь мое скромное мнение. =)
  10. Ну почему же.... смотрел тут одного бота.... адекватнее многих раков играет )))
  11. с другой стороны в 9.0 появилась отдельная кнопка для сброса статы.
  12. уф. после выходных только руки вот дошли... чтож посмотрим... 1. Взглянем внутрь. 'имена модуля' до боли знакомо все.... для пущей уверенности глянем внутрь 'собственно код' в загрузчике ничего не изменилось... суть вот он... ''.join([ chr(int(''.join(list(xordata)), 2)) for xordata in list(reversed(zip(*list(reversed(zip(*[ bin(ord(zipdata))[2:].rjust(8, '0') for zipdata in code_obj.co_code ])))))) ]) 2. убираем загрузчик. Ну чтож, лезем дальше... распакуем модуль. Собственно распаковщик прост как пять копеек. def encode_file(filename): enc_file = filename+'.pyc' dec_file = 'enc_'+filename+'.pyc' enc_reader = open (enc_file,'rb') dec_writer = open (dec_file,'wb') magic_and_mod = enc_reader.read(8) dec_writer.write(magic_and_mod) code_obj = marshal.load(enc_reader) codeline = ''.join([chr(int(''.join(list(x)),2)) for x in list(reversed(zip(*list(reversed(zip(*[bin(ord(x))[2:].rjust(8,'0') for x in code_obj.co_code]))))))]) decoded_codeobj = marshal.loads(codeline) и.т.д..... 3. глядим внутрь распакованного модуля имена переменных зашифрованы либо приведены к ничитаемому виду, питону все равно, а хуману читать не очень 'Имена переменных' оставим их на потом...глянем код.... при попытке получить листинг опкодов натыкаемся на кучу мусора и переходов для нашего удобства черканем функцию которая обойдет эти переходы за нас, а нас остановит на начале кода... 'список переходов по которым прошлась функция' а начало кода собственно тут.... 'кусочек начала кода' Видно что код разбавлен блоками мусора и переходами для обхода этого мусора... Подсмотрев в исходник питона, в ту часть что отвечает за расстановку переходов, напишем функции для отделения искусственно добавленных переходов от реальных 'Чистка от левых джампов' аналогично проходим по всем кодеобжектам При попытке декомпилировать брякаемся из за съехавших относительных переходовдобавим в код функцию для их корректировки.... но об этом в следующий раз если кому то интересно
×
×
  • Create New...