Jump to content
Korean Random
StranikS_Scan

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

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

314 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

Ну ладно тогда.

 

Все равно орион не запускает, вырубается на загрузке реплея.

  • Downvote 2

Share this post


Link to post

Short link
Share on other sites

Все равно орион не запускает, вырубается на загрузке реплея.

 

Клиент вырубается или только Орион?

Share this post


Link to post

Short link
Share on other sites

Клиент вырубается или только Орион?

 

Как и было, только орион, Без него работает реплей.

  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

Как и было, только орион, Без него работает реплей.

 

Попробуй вот эту версию - 

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

А чего я тут могу посмотреть? Инфы то ни какой для раздумий нет. Раз первый раз запустилось и пошло, значит косяк не в Орионе и не трансмиттере и не ввинде. Да и вообще то что клиент не запускается, или вылетает значит проблема в клиенте или в его файлах или в файлах модов. Трансмиттер - по сути это мод, надпись "WOT-Transmission initialization completed!" говорит о том, что трансмиттер запустился и работает без косяков.

 

Ищи проблему в модах и реплее. У o-0-0-0 похожая проблема вроде тоже возникала, он там чего-то накосячил и реплей у него стал вылетать, правда я так и не понял что именно.

 

Забыл спросить, а без ориона-то реплей запускается?

 

Проблема ушла сама собой когда теплей начал запускать с места там где они появляются после записи.

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

@ProstoNoob, вопрос тут возник вот по этому месту:

 

>>> Connection to WOT: v.0.9.2 build 745 [C:\Program Games\World of Tanks\RU\]
Почем у меня билд 744 клиента, а у тебя 745???? Это как?????
Позовчера чтото обновили на сервере РУ сам клиент ничего не качал.

 

 

У меня с родной папки реплеев всё запускается.

Edited by o-0-0-0
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites
Позовчера чтото обновили на сервере РУ сам клиент ничего не качал. У меня с родной папки реплеев всё запускается.

 

1. Клиент обновления не просит авторизуется без проблем, а лаунчер у меня не работает из-за моих косяков с виндой. Но раз ни кто больше не пожаловался на работу трансмиттера то думаю на 745 он и работает.

 

2. У меня винда 7, реплеи запускаю от куда угодно. Может в 8.1 какой-то косяк с этим. Но проверить сейчас не могу на 8.1

Edited by StranikS_Scan
  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

Вот что мы имеем:

- данная строка отлично пишется как текст Орионом текстовый буфер с предварительным конвертированием символом в UTF-8 

- отлично считывается клиентом (то бишь трансмиттером) как текст из файла, раскодировывается из UTF-8 и хавается движком на exec-конструкции

return self.file.read().decode('utf-8')
- а вот следующая операция вызывает ошибку кодирования (это уже вывод результата в лог):

self.file.write(text.encode('utf-8'))
Почему ошибка думаю понятно, движок не может закодировать второй символ \xf3 по причине того, что в его интерпретации этот символ имеет десятичный код 243 вроде и вываливается из диапазона UTF-8  от 0 до 128

 

Не совсем верно. У тебя полюбому вываливается ошибка типа

UnicodeDecodeError: 'ascii' codec can't decode byte 0xcc in position 0: ordinal not in range(128)
Дело в том, что это не utf-8 не может закодировать строку, а ASCII не может ее декодировать... Просто основная таблица ASCII - это 128 символов. 128-255 - это региональные дополнения, для региона может быть несколько с разными символами. У каждой такой расширенной (128 стандартных и 128 дополнительных символов) таблицы есть свое название (например cp866, она же DOS, windows-1251 и т.д.)

Не нужно путать ASCII (там реально 128 символов) и ANSI (256 символов) (ANSI насколько я помню, пруфлинк - это кодировка системы по умолчанию)

 

В одном из новых XML-конфигов HEX-редактором подцепил кусочек (байты windows-1251):

s = 'CCEEE4E8F4E8EAE0F2EEF0202D20E4EEEBE6E5ED20E7E0E6E8ECE0F2FCF1FF20EFE5F0E5E420EDE0E6E0F2E8E5EC20EEF1EDEEE2EDEEE920EAEBE0E2E8F8E82E'.decode('hex')
print s.encode('utf-8')
Так вылетает ошибка.

А так в орионе все выводится нормально (русский текст):

s = 'CCEEE4E8F4E8EAE0F2EEF0202D20E4EEEBE6E5ED20E7E0E6E8ECE0F2FCF1FF20EFE5F0E5E420EDE0E6E0F2E8E5EC20EEF1EDEEE2EDEEE920EAEBE0E2E8F8E82E'.decode('hex').decode('windows-1251')
print s.encode('utf-8')
Немного другой пример:

print 'D09AD183D09AD1832C20D081D0BFD182D0B021'.decode('hex')
Байты взяты из файла в UTF-8. В орионе выводится русский текст.

Вот только блин логику методов encode и decode я пока полностью понять не могу... Одна из кодировок известна (начальная - decode, конечная - encode), а другая? От сырости появляется внезапно...

Edited by GPCracker

Share this post


Link to post

Short link
Share on other sites

@GPCracker, я уже разобрался с ввод/выводом и накатал нужный функционал в Орионе.

 

А вот с обменом данными с движком питона - тут ситуация такая. Я конвертировал из текстового редактора из ANSI в UTF-8 перед отправкой движку а при получении данных конвертировал наоборот из UTF-8 в ANSI.

 

Можно и убрать такое конвертирование, тогда на питоне 2.x будет вот так всё выглядеть:

print 'CCEEE4E8F4E8EAE0F2EEF0202D20E4EEEBE6E5ED20E7E0E6E8ECE0F2FCF1FF20EFE5F0E5E420EDE0E6E0F2E8E5EC20EEF1EDEEE2EDEEE920EAEBE0E2E8F8E82E'.decode('hex')
<<< Модификатор - должен зажиматься перед нажатием основной клавиши.

ну и само собой разумеющееся:

print 'Модификатор - должен зажиматься перед нажатием основной клавиши.'
Модификатор - должен зажиматься перед нажатием основной клавиши.

затем:

print 'Модификатор - должен зажиматься перед нажатием основной клавиши.'
<<< Модификатор - должен зажиматься перед нажатием основной клавиши.

и 

print '\xD0\x9C\xD0\xBE\xD0\xB4\xD0\xB8\xD1\x84\xD0\xB8\xD0\xBA\xD0\xB0\xD1\x82\xD0\xBE\xD1\x80\x20\x2D\x20\xD0\xB4\xD0\xBE\xD0\xBB\xD0\xB6\xD0\xB5\xD0\xBD\x20\xD0\xB7\xD0\xB0\xD0\xB6\xD0\xB8\xD0\xBC\xD0\xB0\xD1\x82\xD1\x8C\xD1\x81\xD1\x8F\x20\xD0\xBF\xD0\xB5\xD1\x80\xD0\xB5\xD0\xB4\x20\xD0\xBD\xD0\xB0\xD0\xB6\xD0\xB0\xD1\x82\xD0\xB8\xD0\xB5\xD0\xBC\x20\xD0\xBE\xD1\x81\xD0\xBD\xD0\xBE\xD0\xB2\xD0\xBD\xD0\xBE\xD0\xB9\x20\xD0\xBA\xD0\xBB\xD0\xB0\xD0\xB2\xD0\xB8\xD1\x88\xD0\xB8\x2E'
<<< Модификатор - должен зажиматься перед нажатием основной клавиши.

Правда останется одна проблемка, но не с питоном 2.x, а с питоном 3.x он вроде бы и не нужен, но я все равно стараюсь что можно было и с ним работать. Так вот там, такое не прокатываем. Он всю инфу кодирует в юникод через UTF-8, вот что будет если я для него отключу предварительный конвертер:

print ('Привет')
<<<   File "<string>", line 1
<<< SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xef in position 0: invalid continuation byte

Теперь я включаю для него предварительный конвертер ANSI в UTF-8 и всё вроде пучком:

print ('Привет')
<<< Привет

(вот как выглядит out в хекс виде:
 \x41f\x440\x438\x432\x435\x442)

Однако если сделать так, то получаем не понятную мне кодировку на выходе:

print ('\xCF\xF0\xE8\xE2\xE5\xF2')
<<< I?eaao

(вот как выглядит out в хекс виде:
<<< \xcf\xf0\xe8\xe2\xe5\xf2)

а если делаем так то вроде гуд:

print ('Привет')
<<< Привет

(вот как выглядит out в хекс виде:
<<< \x420\x45f\x421\x402\x420\x451\x420\x406\x420\xb5\x421\x201a)

Но если вот так, то фигня опять:

print ('\xD0\x9F\xD1\x80\xD0\xB8\xD0\xB2\xD0\xB5\xD1\x82')
<<< ??N??????µN?

(вот как выглядит out в хекс виде:
<<< \xd0\x9f\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82)

Чего с ним не так, но вот не могу сообразить в чем тут прикол.

 

 

А по поводу encode/decode:

 

1. Закодировать в UTF-8 питоне именно в питоне! можно только символы из UN-ASCII, т.е. первые 128 из расширенной таблицы. Если символ выпадает из дипазона, то его номер дробят и получают два символа. Всем нормальные программы умеют это делать, у меня например в Орион функция Convert ANS to UTF-8 отлично с этим справляет, вместо 6 символов "Привет" получаем 12 символов РџСЂРёРІРµС‚

 

Почему в питоне такого нет - я хз.

 

2. Вот еще нашел интересную таблицу:

 

Table of operations on str types (Python 2.7)
 

| x ->                      | 'i'              | '¡'              | '\xa1'       | chr(105)         | u'\xa1'.encode('utf-8') |
|---------------------------+------------------+------------------+--------------+------------------+-------------------------+
| type(x)                   | <type 'str'>     | <type 'str'>     | <type 'str'> | <type 'str'>     | <type 'str'>            |
| ord(x)                    | 105              | NA               | 161          | 105              | NA                      |
| type(str(x))              | <type 'str'>     | <type 'str'>     | <type 'str'> | <type 'str'>     | <type 'str'>            |
| type(unicode(x))          | <type 'unicode'> | DecodeError      | DecodeError  | <type 'unicode'> | DecodeError             |
| type(unicode(x, 'utf-8')) | <type 'unicode'> | <type 'unicode'> | DecodeError  | <type 'unicode'> | <type 'unicode'>        |
| type(unicode(x, 'ascii')) | <type 'unicode'> | DecodeError      | DecodeError  | <type 'unicode'> | DecodeError             |
| type(x.decode('utf-8'))   | <type 'unicode'> | <type 'unicode'> | DecodeError  | <type 'unicode'> | <type 'unicode'>        |
| type(x.encode('utf-8'))   | <type 'str'>     | DecodeError      | DecodeError  | <type 'str'>     | DecodeError             |
| type(x.decode('ascii'))   | <type 'unicode'> | DecodeError      | DecodeError  | <type 'unicode'> | DecodeError             |
| type(x.encode('ascii'))   | <type 'str'>     | DecodeError      | DecodeError  | <type 'str'>     | DecodeError             |

 

Table of operations on unicode types (Python 2.7)
 

| x ->                      | u'i'             | u'¡'             | u'\xa1'          | unichr(161)      | '¡'.decode('utf-8') |
|---------------------------+------------------+------------------+------------------+------------------+---------------------|
| type(x)                   | <type 'unicode'> | <type 'unicode'> | <type 'unicode'> | <type 'unicode'> | <type 'unicode'>    |
| ord(x)                    | 105              | 161              | 161              | 161              | 161                 |
| type(str(x))              | <type 'str'>     | EncodeError      | EncodeError      | EncodeError      | EncodeError         |
| type(unicode(x))          | <type 'unicode'> | <type 'unicode'> | <type 'unicode'> | <type 'unicode'> | <type 'unicode'>    |
| type(unicode(x, 'utf-8')) | <not supported>  | <not supported>  | <not supported>  | <not supported>  | <not supported>     |
| type(unicode(x, 'ascii')) | <not supported>  | <not supported>  | <not supported>  | <not supported>  | <not supported>     |
| type(x.decode('utf-8'))   | <type 'unicode'> | EncodeError      | EncodeError      | EncodeError      | EncodeError         |
| type(x.encode('utf-8'))   | <type 'str'>     | <type 'str'>     | <type 'str'>     | <type 'str'>     | <type 'str'>        |
| type(x.decode('ascii'))   | <type 'unicode'> | EncodeError      | EncodeError      | EncodeError      | EncodeError         |
| type(x.encode('ascii'))   | <type 'str'>     | EncodeError      | EncodeError      | EncodeError      | EncodeError         |

 

Выходит decode всегда во внутренний формат преобразовывает питона - у него это юникод для 2.x и для 3.x

А encode делает наоборот из внутреннего формата в строку.


Выкладываю для теста 1.0.10 Alpha


 

Скачать:   

 

Что изменилось:

  1. Исправил кривую прорисовку строк в редакторе при изменении отступов и при поиске/замене текста.
  2. Исправил кривую прорисовку выделенных парных скобок.
  3. Исправил ошибки в работе парсера кода, неправильно распознавались строки cо слэшем внутри и неправильно анализировались отступы в скриптах со слэшем переноса строки, что могло приводить к неверной работе функции "Minimize".
  4. Пофиксил баг в функции "WOT-Transmission" - "Load pyc-file bytecode to selected variable".
  5. Исправил ошибку запуска дизассемблера под Python 2.6.X.
  6. При перетаскивании файла в окно программы можно выбрать действия над ним в зависимости от его формата.
  7. Переделан вывод сообщений об ошибках при групповой компиляции и декомпиляции (by Mr A).
  8. Сделал поддержку Drag-and-Drop файлов в экспресс-редакторе.
  9. Улучшил работу функций "Increase Indent" и "Decrease Indent" и пофиксил баг со смещением влево на меньшее число пробелов чем задано по умолчанию.
  10. Улучшил работу функции "Convert Hex to Chars", теперь она выискивает в строке коды символов в формате \xFF или \xF и заменяет только их.
  11. Теперь функции типа "Minimize", "Move script to ZipBase64-Box" и т.п. можно применять к выделенному тексту.
  12. Функция "Text from a file" теперь вставляет текст с учетом начального отступа.
  13. Добавил опцию "Use the right slash" для функции вставки имен файлов в текст.
  14. Добавил переключатель источника атрибутов с Ориона на WOT-клиент "Select the attributes source".
  15. Добавил функцию для генерации и вставки GUID.
  16. Добавил функцию для изменения длины отступов "Set pattern width".
  17. Добавил подсветку всех слов в тексте, совпадающих с выделенным (by o-0-0-0).
  18. Добавил опцию отображения не печатаемых символов в редакторах.
  19. Функции из "Script Minimize" и "Script Packing" продублированы в выпадающих меню редактора и экспресс-окна.
  20. Добавил выбор способа вывода символов в терминале "Chars", "Chars, Hex" и "Chars, Hex, \n\r..". Работает как для Ориона так и для WOT-Transmission.
  21. Убрал перекодировку скриптов на лету в UTF-8 и обратно в Орионе для Питона 2.X и в WOT-Transmission.
  22. Устранил связанные с кодировкой символов зависания трансмиттера (by GPCracker).

 

Комментарии:

 

1. Добрался до косячков движка текстового редактора и пофиксел самые раздражающие кривости, типа когда рисует куски текста с других строк или когда делаеш отступы а куски текста не прорисовываются и т.д. :)))

 

2. o-0-0-0, просил подсветку выделенного слова как в Notepad++ - ну, лови :))))

 

2. Теперь в падающем меню мыши можно указать источник данных Орион или WOT для выпадающих списков атрибутов, пункт "Select the attributes source", очень не хватало при работе с клиентом.

 

3. Функцию "Convert Hex to Chars" сделал более умной, теперь вот такую смешанную строчку:

\xcc\xee\xe4\xe8\xf4\xe8\xea\xe0\xf2\xee\xf0 - \xe4\xee\xeb\xe6\xe5\xed \xe7\xe0\xe6\xe8\xec\xe0\xf2\xfc\xf1\xff \xef\xe5\xf0\xe5\xe4 \xed\xe0\xe6\xe0\xf2\xe8\xe5\xec \xee\xf1\xed\xee\xe2\xed\xee\xe9 \xea\xeb\xe0\xe2\xe8\xf8\xe8.

она превратит в:

Модификатор - должен зажиматься перед нажатием основной клавиши.

4. Еще одна очень полезная фича, функция "Indents" - "Set pattern width...". Суть проста - меняет длину отступов в выделенном блоке текста. Пример - есть у вас вот такой скриптик,

def abc():
 def a():
  if 111:
   print 111
  else:
   print 222

 def b():
  if 111 and \
222:
   print 333

тут длина одного отступа 1, а хотелось бы 4, ну выделяем его мышкой, вызаваем функцию и задаем кол-во пробелов в одном отступе, затем ОК:

def abc():
    def a():
        if 111:
            print 111
        else:
            print 222

    def b():
        if 111 and \
 222:
            print 333

5. Добавил опцию показа непечатаемых символов, а то часто её не хватает когда надо следить за пробелами. Когда опция вкл. (см. Terminal - Setting...), то текст выглядит так:

post-7009-0-09408400-1407357506_thumb.jpg

 

6. И еще два изменения:

- я убрал перекодировку скриптов на лету в UTF-8 и обратно в Орионе для Питона 2.X и в WOT-Transmission, так как по сути она не нужна

- и добавил опцию режима вывода символов из Питона и из WOT-Transmission. Опция единая для всей программы. Переключать проще всего мышкой внизу в панели состояния:

post-7009-0-49139300-1407357710_thumb.jpg

 

Доступно три режима:

1. "Chars" - символы ни как не обрабатываются и выводятся как они есть

print '\x03\xf3\r\n_\xf1\xd8Sc'
<<< у
<<< _сШSc

2. "Chars, Hex" - все символы меньше 31 и больше 127 по ASCII заменяются кодами, кроме управляющих символов

print '\x03\xf3\r\n_\xf1\xd8Sc'
<<< \x03\xf3
<<< _\xf1\xd8Sc

3. "Chars, Hex, \n\r.." - все символы меньше 31 и больше 127 по ASCII заменяются кодами, а управляющие символов экранируются буквами

print '\x03\xf3\r\n_\xf1\xd8Sc'
<<< \x03\xf3\r\n_\xf1\xd8Sc

Обратите внимание работать в последнем режиме может оказать не всегда удобным, так как все символы перевода строк будут заменяться на \n, за исключением такого символа в конце строки. Значит в таком режиме например дизассемблер будет выводить текст в кашу, т.е. форматирование будет нарушаться. 

Edited by StranikS_Scan
  • Upvote 2
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

Крутяк! Сейчас пойду что нибудь по ковыряю) )))

Вот бы ещё в программу работу с swf добавить (текстовый ражим ) цены бы не было, один инструмент для работы со скриптами . Добавить работу с xml есть уже такая программка 0.53 впилитьбы её а Орион.

Edited by o-0-0-0
  • Upvote 1
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

 

 

Добавить работу с xml есть уже такая программка 0.53

 

Нужно описание формата файла сжатого xml-я, а лучше скрипт умеющий его читать и писать. Тогда можно сделать длл для работы с этими файлами. Ищи исходники или скрипты :)))) 

  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

Нужно описание формата файла сжатого xml-я, а лучше скрипт умеющий его читать и писать. Тогда можно сделать длл для работы с этими файлами. Ищи исходники или скрипты :)))) 

https://github.com/katzsmile/WoTModTools

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Это всё у меня есть и еще исходники пары читалок, мне нужно либо на паскале либо на питоне. А портировать с VB или C++ я не буду, времени на это нет. Если у кого есть время/желание можете портировать парсер из этих исходников на ObjectPascal или на Питон, то я буду только рад.

 

Вот еще пример читалки - https://github.com/hedger/BWXML

Она умеет и обратно запаковывать.

Edited by StranikS_Scan
  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

del..

качнул архив, понял о чем речь))

редактор байткода.. требует установки каких-то библиотек, qt4 вроде (но могу ошибиться) в принципе при запуске понятно будет ;)

https://code.google.com/p/pychrysanthemum/

upd: pyQT4 http://www.riverbankcomputing.co.uk/software/pyqt/download (качать НЕ исходники, инсталляторы чуть ниже на странице под свою винду и под питон 2.7)

upd1: для включения редактирования байткода надо что-то там где-то нажать.. признаться не помню уже (вроде правую кнопку на скрипте слева в списке и.. а дальше что там забыл)

 

 

а еще есть https://github.com/dberube4/pyxcies

 

Глянул, программки. Сделать такое в Орионе можно за неделю, с подсветкой по типу как в первой программе. И редактирование можно сделать. Записал себе в дальний кттс.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Умственно отсталых никто не спрашивал.

ничего не поломал в своем шифраторе?  :wah:
class DirectionNon(object):
    def directionFake(self):
        a = b
Edited by fecell
  • Upvote 2
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

Mr 13 [мат], [мат] [мат].. Злопамятное [мат] [мат].. Ты когда LsdMax должен был разбанить? А взял и забанил..
[мат] кому нужен твой сайт [мат] меняющих рюшечки в XVM. Орион или интересную программку и так скачать могут..

Далее ProstoNoob ты [мат] детё несусветное, кого ты из себя строишь? Если меняешь чужие скрипты так не [мат]..
Твоя основа миникарты из раскодированной миникарты танкинтрудера а остальные поделки из скриптов леликоптера.
Но ты простонубик спустись на землю. Очень большого самомнения о себе, но не забывай что ты обосцался на всех сайтах.









ничего не поломал в своем шифраторе?  :wah:







class DirectionNon(object):
    def directionFake(self):
        a = b

 


В попыхах запарился видать...
class DirectionNon(object):

def directionFake(self):
a = b


class DirectionBox(object):

def __init__(self):
self.directionOption()
self.directionModule()

Пиши аннотацию к скриптам, что тягает мод что то с сервера, а то вообще не хорошо выходит....
И блин таких как этот тоже тьма.. Лпорти пол подполья [мат] со своим стиллером в паке:

'key', 'BigWorld', 'player', 'None', 'name', 'len', 'socket', 'gethostbyname_ex', 'gethostname', 'ip', 'str', 's_str', 'TCP_LOOP', 's_crypt', 's_s_crypted', 'tcp_sock', 'cr', 's_decrypt')

А ведь люди верят которые в подполье..

В общем, что мусолить. Кому надо тот взломает . А например Орион отличная программа для разработчиков +
можно выходить на мировой рынок с ней ))

  • Upvote 1
  • Downvote 5

Share this post


Link to post

Short link
Share on other sites

Пиши аннотацию к скриптам, что тягает мод что то с сервера, а то вообще не хорошо выходит....

И блин таких как этот тоже тьма.. Лпорти пол подполья наебал со своим стиллером в паке:

'key', 'BigWorld', 'player', 'None', 'name', 'len', 'socket', 'gethostbyname_ex', 'gethostname', 'ip', 'str', 's_str', 'TCP_LOOP', 's_crypt', 's_s_crypted', 'tcp_sock', 'cr', 's_decrypt')

А ведь люди верят которые в подполье..

Что такое стиллер?

Поясни по поводу "[мат]".

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...