Jump to content
Korean Random
StranikS_Scan

PjOrion - редактирование, компиляция, декомпиляция, обфускация модов (Версия: 1.3.5 Дата: 11.08.2019)

Пользуетесь ли вы Орионом?  

310 members have voted

You do not have permission to vote in this poll, or see the poll results. Please sign in or register to vote in this poll.

Recommended Posts

Залил архивчик с папкой scripts для 0.10.0-TEST2, в которой декомпилированы все питон-файлы и разжаты все xml-файлы. Также в самом конце первого поста добавил инструкцию для чайников как самому делать такую папочку без лишнего напряга.

Edited by StranikS_Scan
  • Upvote 3

Share this post


Link to post

Short link
Share on other sites

Все делают мод, программки, а у меня руки из жопы)

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

 

 

Все делают мод, программки

Если бы...

Я уже давно не могу серьезно взяться за Tank Viewer.

Share this post


Link to post

Short link
Share on other sites

ещё вопрос по минимизации?

вот кусок кода:

if get_location() == 'ru':
    url_list = ['ntp-servers.net','vk.com','87.240.131.117','google.ru','yandex.ru','google.com','173.194.112.55']
elif get_location() == 'asia':
    url_list = ['google.cn','Yahoo.cn''ntp-servers.net','vk.com','87.240.131.117']
elif get_location() == 'eu':
    url_list = ['ntp-servers.net','vk.com','87.240.131.117','google.com','173.194.112.55']
elif get_location() == 'na':
    url_list = ['google.com','173.194.112.55','ntp-servers.net','vk.com','87.240.131.117']
else:
    url_list = ['ntp-servers.net','vk.com','87.240.131.117','google.com','173.194.112.55']
for serv_url in url_list:
    date = serv_date(serv_url)
    if date is None:
        print serv_url + ' url server error!'
    elif date < endData:
        print serv_url + ' url time test successful.'
        hook()
        break
    else:
        print serv_url + ' url time test. Time expired.'
        non_hook()
        break

Заметил такую штуку. В одном месте в списках я убрал запятую ) Компилятор схавал это наздрасте (ошибок нет), а вот минимайзер после этой строки ничего не минимизирует ))

Если вернуть запятую, то всё норм.

 

И вот ещё...

 

Если вначало строки поместить

 

# -*- coding: utf-8 -*-

 

то минимайзер выдаёт ошибку: Range check error

Edited by ZorroJan

Share this post


Link to post

Short link
Share on other sites
Заметил такую штуку. В одном месте в списках я убрал запятую ) Компилятор схавал это наздрасте (ошибок нет), а вот минимайзер после этой строки ничего не минимизирует )) Если вернуть запятую, то всё норм.

 

Проверил минимайзер ошибки не выдал. Нашел косяк.

 

# -*- coding: utf-8 -*-   то минимайзер выдаёт ошибку: Range check error

 

Тоже ошибки ни какой не выдал, просто удалил преамбулу. Надо будет проверить чтоб не удалял. 

 

ЗЫ: Ты там чего еще наделал наверно что ошибки у тебя полезли?

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

StranikS,

 

Ещё заметил, что если в названии метода вначале использовать двойное подчёркивание "__", что вполне приемлемо, то после obfuscate --> structure... возникают проблемы, обращение типа: if getattr(self, '__checkLive')() приводит к ошибке. Это не есть гуд!
Тут возможно нужно либо игнорить такие методы, либо переименовывать их убирая почёркивания, но это может не совсем правильно

 

Кстати,

 

то что я выше описывал с минимайзером негативно влияло ещё и на обфускацию стрингов, там тоже в этой ситуации возникает глюк.

Edited by ZorroJan

Share this post


Link to post

Short link
Share on other sites

StranikS,

 

Ещё заметил, что если в названии метода вначале использовать двойное подчёркивание "__", что вполне приемлемо, то после obfuscate --> structure... возникают проблемы, обращение типа: if getattr(self, '__checkLive')() приводит к ошибке. Это не есть гуд!

Тут возможно нужно либо игнорить такие методы, либо переименовывать их убирая почёркивания, но это может не совсем правильно

 

Вижу, потому что должно быть if getattr(self, '_имякласса__checkLive')(). Погляжу как сделать.

Хотя погоди, а как ты вызов делаешь через .__checkLive? Так ведь не работает должно быть ._имякласса__checkLive

class aaa():
    def __bbb(self):
        print 123

a = aaa()
a._aaa__bbb()
class aaa():
    def __bbb(self):
        print 123

a = aaa()
getattr(a, '_aaa__bbb')()

Share this post


Link to post

Short link
Share on other sites

Да, но вот такой код вполне приемлем:

class aaa():
    def __bbb(self):
        print 123
    def xxx(self):
        self.__bbb()
class aaa():
    def __bbb(self):
        print 123
    def xxx(self):
        getattr(self, '__bbb')()      <-- ОШИБКА
 

Я тебе кстати давно об этом писал.

Share this post


Link to post

Short link
Share on other sites

Плохо, так как определить имя класса через ast будет проблематично.

 

 

Ты вроде про имена писал, чтоб при обфускации имен, если есть подчеркивания, можно было их сохранять, я там опцию сделал.

Share this post


Link to post

Short link
Share on other sites

 

Вижу, потому что должно быть if getattr(self, '_имякласса__checkLive')(). Погляжу как сделать.

Хотя погоди, а как ты вызов делаешь через .__checkLive? Так ведь не работает должно быть ._имякласса__checkLive

Я обращаюсь только внутри класса к этому методу

 

вот ещё...

Что может быть? После обфускации стрингов пишет вот это...

 

AttributeError: 'str' object has no attribute 'id'

Edited by ZorroJan

Share this post


Link to post

Short link
Share on other sites
AttributeError: 'str' object has no attribute 'id'

 

Косяк, где-то с чем-то.

Надо бы найти, а то иначе потом вылазить будет.

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

Косяк, где-то с чем-то.

Надо бы найти, а то иначе потом вылазить будет.

Я не против, давай искать )

 

Ещё хочу узнать, как правильно в орионе работать с кириллицей, чтоб в танках проблем не было с отображением

и можно ли как-то обойтись без директивы # -*- coding: utf-8 -*-

Пока что помогает только ручное преобразование кириллического текста сначала в utf-8 затем в HEX так и живём ))

Edited by ZorroJan

Share this post


Link to post

Short link
Share on other sites

обращение типа: if getattr(self, '__checkLive')() приводит к ошибке. Это не есть гуд!

Компилятор при компиляции переводит имена __checkLive в _имякласса__checkLive. Поскольку в getattr используется строковая константа, она не патчится компилятором. Отсюда и ошибка. Нужно либо это в обфускаторе править, либо игнорить такие методы.

Плохо, так как определить имя класса через ast будет проблематично.

Походу первый вариант не прокатит.

Ещё хочу узнать, как правильно в орионе работать с кириллицей, чтоб в танках проблем не было с отображением

Просто не нужно пихать локализацию в скрипт, если ты собираешься его компилировать. Это в корне неправильно. Для этого есть

А. ResMgr и WideString (кодировка файла UTF-8 w/o BOM)

Б. Файлы mo и gettext

Share this post


Link to post

Short link
Share on other sites

 

 

Просто не нужно пихать локализацию в скрипт, если ты собираешься его компилировать. Это в корне неправильно. Для этого есть А. ResMgr и WideString (кодировка файла UTF-8 w/o BOM) Б. Файлы mo и gettext

 

Да, нуно так делать, но не всегда хочется. Сейчас в Орионе, если меню открыть трасмиттера, то можно увидеть подсказку Import/Reload (for UTF-8). Я на этот метод повесил прекомпиляцию модуля налету перед импортом, в результате в клиент попадет не текстовый скрипт, а уже скомпилированный код. Проблемы с кодировкой не будет.

Share this post


Link to post

Short link
Share on other sites

Да, нуно так делать, но не всегда хочется.

В том-то все и дело... Но с другой стороны, если есть конфиг, то почему бы не вынести локализацию туда...?

Сейчас в Орионе, если меню открыть трасмиттера, то можно увидеть подсказку Import/Reload (for UTF-8).

А поддержку UTF-8 в окне редактирования / быстрого выполнения можно реализовать... Или уже есть? А то по старинке все через сериализацию или другие левые форматы типа HEX гоняю... Хотя если честно, я русским редко пользуюсь, по причине того что не работаю с GUI особо... Хотя многим это понравится))

Share this post


Link to post

Short link
Share on other sites

 

 

А поддержку UTF-8 в окне редактирования / быстрого выполнения можно реализовать... Или уже есть? А то по старинке все через сериализацию или другие левые форматы типа HEX гоняю... Хотя если честно, я русским редко пользуюсь, по причине того что не работаю с GUI особо... Хотя многим это понравится))

 

Редактор не поддерживает юникод. 

Share this post


Link to post

Short link
Share on other sites

Редактор не поддерживает юникод.

Так вроде же можно русские буквы вводить... А что на выхлопе при получении текста из окна редактора получается, если русский заюзать?

Share this post


Link to post

Short link
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...