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

Создайте следующие ветки: 0.9.2 0.9.3 0.9.4 0.9.5-CT2 ,установите ветку 0.9.5-CT2 как ветку по умолчанию, удалите ветку master (Она только мешается), если вы конечно не против... Тогда я смогу предложить изменения в основной репозиторий.

Я не совсем понял, зачем создавать ветки под каждый патч, если каждый патч не более чем коммит? Если нужно получить состояние нужного патча, делается откат HEAD в нужный коммит с обновлением файлов в рабочей директории. Git How To Edited by GPCracker

Share this post


Link to post

Short link
Share on other sites

Я не совсем понял, зачем создавать ветки под каждый патч, если каждый патч не более чем коммит?

 

Это тоже вариант, но ветки всё-таки будут удобней - можно будет добавлять какие-то пояснения к файлам, написать примеров и так далее.

 

ЧавO?

 

Если коротко, то я скопировал ваш репозиторий, сделав форк (Копия вашего репозитория, которую я могу изменять). Форки нужны для того, чтобы предлагать изменения в основной репозиторий: я делаю какие-то изменения в своей копии и предлагаю её в основной репозиторий с помощью pull request'а. После этого идёт  обсуждение изменений, и мои изменения либо принимаются, либо отклоняются.

Однако, я могу предложить изменения только в существующую ветку (branch), по-умолчанию которой является ветка master.

В вашем репозитории вы можете увидеть такой график:

post-20225-0-33566900-1419338631_thumb.png

На котором точками отображаются коммиты (Изменения в какой-то ветке), а линиями - ветки.

  • Upvote 1
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

не хватает нескольких полезных вещей.

1. При сохранении файлов .py

  • хочется настройку чтобы подставлялось дефолное значение нахвания скрипта. например temp1.py и это имя указывать в настройках Ориона. (если это есть ткните плз где такое)
  • если в папке при сохранении уже есть файл .py предлагать сохранить скрипт под его именем если не указана настройка для дефолтного названия (типа temp1.py)

2. Хочется горячие клавиши на действия из меню: 

  • Disasemble selected object
  • Save Marshal-code from variable to file

3. Изменить меню выбора папки "Decompile pyc-folder", очень мешает что постоянно начинается с корня, пока диск выберешь, пока папку выберешь.(у меня много дисков и папок в корне, задалбливает их прокручивать и выбирать подпапочки каждый раз).

 

Заранее Спасибо большое!

 

Без Ориона я бы не стал мододелом )

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Без Ориона я бы не стал мододелом )

)))

 

Я Орион использую чисто для декомпиляции и отладки некоторых базовых скриптов - позволяет не перезагружать клиент... Хотя вполне реально через буфер-файл реализовать передачу потока между процессами. В питоне для этого даже либа есть)

В последнее время копаю в сторону чата - там чего-то серьезно перекопали, по крайней мере перевели боевые и взводный чат с BW на BW_CHAT2, старые методы получения контроллеров перестали работать

 

Наткнулся тут случайно...

BigWorld.player().positionControl.moveTo(self.__aimingSystem.matrix.translation)
BigWorld.player().positionControl.followCamera(True)
Я так понимаю этот код помогает артаб*@**@м переносить квадрат отрисовки в обстреливаемое место... Надо будет для ПТ проверить...

Edited by GPCracker
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

, сейчас сяду почитаю, сделаю что ты хочешь.

 

 

 

1. При сохранении файлов .py

 

Остальное я сделаю, а вот с этим я не очень понял, какую проблему это должно решить. Суть реализации понятна, как сделать тоже понятно. Но вот зачем оно - вот это не очень понятно.

 

 

 

Я так понимаю этот код помогает артаб*@**@м переносить квадрат отрисовки в обстреливаемое место... Надо будет для ПТ проверить..

 

Заманчиво конечно ;)

 

 

 

чета многие файлы не декомпилирует, пишет Error

 

Дык многие файлы зашифрованы, а зашифрованные файлы проста так не декомпилируются. 

Share this post


Link to post

Short link
Share on other sites

как дешифровать ?

вот например этот фаил attachicon.gifSights.rar

Это сложно и Вам не под силу.

Орион не декомпилирует защищенные скрипты, это просто не реально сделать ввиду большого отличия в разных крипторах. Пока уже реализована возможность сохранять маршал. Возможно дальше будет какой-то дополнительный функционал подобного рода.

А тому кому под силу, тот не будет это делать бесплатно, т.к. это занимает уйму времени. Ты бы сам стал красить кому-нибудь автомобиль за спасибо?

Edited by fecell

Share this post


Link to post

Short link
Share on other sites

Ты бы сам стал красить кому-нибудь автомобиль за спасибо?

Да, например моей матери, но тут родных нет =) Edited by My War

Share this post


Link to post

Short link
Share on other sites

Привет. Возможно ли добавить в контекстное меню? - действия:

 

>>> Декомпилировать файл

>>> Декомпилировать папку

>>> Дизассемблировать файл

>>> Выполнить в игре

>>> Выполнить в программе (PjO)

>>> Сохранение в файл Marshal-кода

 

Например, я открыл папку и мне нужно файл Дизассемблировать, сразу выбрал и открылся PjO.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Разрабатывал тут артоснайперский режим, запускал 2 клиента на компе (один через Орион - основной, другой через Sandboxie - балластный, для создания трени), иногда из-за циклического вызова метода с ошибкой все зависало (в основном клиенте)... Приходилось его перезапускать. Вот только Орион видит завершение клиента только когда закрыты оба клиента, поэтому приходилось закрывать оба, иначе невозможно запустить основной клиент через Орион для отладки кода.

 

Возникает ощущение, что Орион мониторит процесс не по PID, а по имени... А как на самом деле?

 

помогите разобрать  o95xa.zip

Декомпилишь файлик заменяешь exec на cobj =

Выделяешь имя переменной, в контекстном меню Disassemble

Неплохо видно, что код слегка испорчен. Как минимум обфускатор и мертвые блоки.

 

А тому кому под силу, тот не будет это делать бесплатно, т.к. это занимает уйму времени. Ты бы сам стал красить кому-нибудь автомобиль за спасибо?

А и не надо полностью декомпилить) Иногда и дизассемблировать хватает. Edited by GPCracker

Share this post


Link to post

Short link
Share on other sites

Возможно ли добавить в контекстное меню?

Это надо в винду залазить, прописывать там контексты. К тому же постоянно следить за тем с каким exe они ассоциированы.

 

мне нужно файл Дизассемблировать, сразу выбрал и открылся PjO.

Открыть с помощью -> PjOrion

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

 

Возникает ощущение, что Орион мониторит процесс не по PID, а по имени... А как на самом деле?

По имени. По пид следить невозможно, т.к. пид не известен ему заранее. Потому по имени. Про запуск копий не думалось. Надо будет переделать.

Share this post


Link to post

Short link
Share on other sites

Это надо в винду залазить, прописывать там контексты.

 

Это вообще-то не сложно:

В реестре переходим в HKCR/.py/shell/ и создаём раздел "Декомпилировать файл". Теперь пункт меню добавлен, осталось только привязать к PjOrion'у. Для этого в только что созданном разделе создаём раздел command и присваиваем значению по-умолчанию (@)  команду для запуска программы: "C:/that's/my/dir/for/pjorion.exe %1"

Однако есть проблемы:

 1. Если тип файла неизвестен, то директорию надо создать

 2. Многие программы (Например, Python) при установке ассоциируют тип файла. И всё бы ничего, но они изменяют не HKCR/.py, а создают свои директории:

      В HKCR/.py стандартному значению (@) присваивается имя нужной папки (Например, "MyCoolDirForPython"), после чего создаётся директория HKCR/MyCoolDirForPython, в которой все изменения и производятся.

 3. PjOrion должен поддерживать аргументы консоли. Чтобы, например, по команде

C:/that's/my/dir/for/pjorion.exe disassemble test.py

Дизассемблировал test.py не открывая своего окна.

 

Если будут реализованы аргументы, то каждый сможет для себя сделать контекстное меню.

По пид следить невозможно, т.к. пид не известен ему заранее.

 

Ищем программу по имени => получаем PID.

Share this post


Link to post

Short link
Share on other sites

По имени. По пид следить невозможно, т.к. пид не известен ему заранее.

При запуске дочернего процесса получаем хендл. По нему можно определить статус процесса и очень много другой инфы.

Ищем программу по имени => получаем PID.

Ситуацию с двумя клиентами это не решает. Вероятность коллизии 50%.

 

Было бы неплохо, если можно было выставить не только количество пробелов в качестве табуляции, но и использовать \t...

И функцию "Перечитать файл с диска", желательно чтобы прога сама обнаруживала изменения в файле, как NPP например. Чтобы можно было использовать сторонние редакторы при отладке.

Edited by GPCracker

Share this post


Link to post

Short link
Share on other sites

Тем временем репозиторий wot.res.scripts из dev.xvm.com, содержащий скрипты клиента, был удалён.

А это я снова сделал ragequit. Вы как-нибудь обознайтесь, что им кто-нибудь пользуется :)

 

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

Edited by Mixaill

Share this post


Link to post

Short link
Share on other sites

Много раз хотелось выделить кусок кода в файле, и через правую мыши выполнить только его через "selected in.../exec". Облом однако(

При отладке самое то для управления модом... несколько строчек с командами накидать заранее, выделять нужную и выполнять) А так приходится выделять, копировать в express script...

Еще круче было бы на поле слева от строки команду "выполнить строку в ..."

Разрабатывал тут артоснайперский режим, запускал 2 клиента на компе (один через Орион - основной, другой через Sandboxie - балластный, для создания трени), иногда из-за циклического вызова метода с ошибкой все зависало (в основном клиенте)... Приходилось его перезапускать. Вот только Орион видит завершение клиента только когда закрыты оба клиента, поэтому приходилось закрывать оба, иначе невозможно запустить основной клиент через Орион для отладки кода. Возникает ощущение, что Орион мониторит процесс не по PID, а по имени... А как на самом деле?

Временное решение этой проблемы:

Создать копию WorldOfTanks.exe с другим именем. Для сэндбокса использовать ее.

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