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

Не мог python 3.4 прицепить.

Не надо просто захламлять папку с орионом...

Мне помогла распаковка ориона в новую папку.

Edited by SkepticalFox

Share this post


Link to post

Short link
Share on other sites

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

(строковые значения для простоты указаны в явном виде, без закрутки в O0OO1l[xxxx])

from tmp import test1
print test1

var_203 = getattr(__import__('tmp', globals(), locals(), ['test1'], -1), 'test1') #стало
print var_203

var_203 = getattr(__import__('tmp'), 'test1') #но вроде достаточно
print var_203

Share this post


Link to post

Short link
Share on other sites

 

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

(строковые значения для простоты указаны в явном виде, без закрутки в O0OO1l[xxxx])

from tmp import test1
print test1

var_203 = getattr(__import__('tmp', globals(), locals(), ['test1'], -1), 'test1') #стало
print var_203

var_203 = getattr(__import__('tmp'), 'test1') #но вроде достаточно
print var_203

 

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

Share this post


Link to post

Short link
Share on other sites

 

 

А перемудреный - это хорошо, обфускация же.

Ну так-то да.

Share this post


Link to post

Short link
Share on other sites
Ункомпил2 заменён на Ункомпил6 моей модификации;

Ункомпил6 работает неправильно.

def obj_166():
    for obj_167 in obj_168:
        if obj_169(obj_167):
            obj_170 = 1
        else:
            obj_170 = 2

преобразуется к

def obj_166():
    for obj_167 in obj_168:
        if obj_169(obj_167):
            obj_170 = 1
        obj_170 = 2

ps: но uncompyle6 с офсайта - корректно.

Edited by fecell
  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

Ункомпил6 работает неправильно.

Не надо было его трогать.

Там парень знает, что делает, а Страникс поменял код для пары некорректных скриптов и поломал декомпилятор...

Лучше написать по каждому багу в Issues ункомпила. Парень быстро их правит.

Edited by SkepticalFox
  • Upvote 2
  • Downvote 2

Share this post


Link to post

Short link
Share on other sites

Не надо было его трогать.

Там парень знает, что делает, а Страникс поменял код для пары некорректных скриптов и поломал декомпилятор...

Лучше написать по каждому багу в Issues ункомпила. Парень быстро их правит.

 

Да ты чё, прям поломал. Может сам глянешь кто там чего и как поломал. А то ходить трындеть - не мешки ворочать.

 

Я не менял код для пары не корректных скриптов, а переписал и дописал львиную часть преанализатора в парсере.для 2.7

 

Тот парень работает в основном по 3.x.

  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

Да ты чё, прям поломал.

Ункомпил6 работает неправильно.

ps: но uncompyle6 с офсайта - корректно.

Edited by SkepticalFox
  • Upvote 1
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

 

Да ты чё, прям поломал.

Ункомпил6 работает неправильно.

ps: но uncompyle6 с офсайта - корректно.

 

 

И что? Мой ункомпил6 может корректно декомпилировать то, что не может ункомпил6 с сайта. А то, что в них обоих свои баги есть - так это везде они есть.

  • Downvote 2

Share this post


Link to post

Short link
Share on other sites

И что?

Проводить полную переделку без тестов на регрессии - бесполезно. Edited by SkepticalFox

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

Проводить полную переделку без тестов на регрессии - бесполезно.

 

Народная мудрость гласит: Баги нужно фиксить, а не добавлять новые.

 

Молодцы, полезные советы тут раздают, а я всё думаю - чего-то не хватает... )))))))

  • Upvote 3
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

Нашел один баг. Если удалить шрифт из системы, который стоит в редакторе, то потом перестают настройки применяться (ошибка вылезает List index out of bounds).

Share this post


Link to post

Short link
Share on other sites

Нашел один баг. Если удалить шрифт из системы, который стоит в редакторе, то потом перестают настройки применяться (ошибка вылезает List index out of bounds).

А вот это не похоже на баг.

Это ваш фейл. Сотрите ini-файл в папке с орионом.

Edited by SkepticalFox

Share this post


Link to post

Short link
Share on other sites

А вот это не похоже на баг.

Это ваш фейл. Сотрите ini-файл в папке с орионом.

Нет, в идеале шрифт в таком случае должен ставится по умолчанию (если тот который стоял не обнаружен), с оповещением/предупреждением для пользователя. Edited by My War

Share this post


Link to post

Short link
Share on other sites

Товарищи, нужна помощь с декомпиляцией файлов игры Revelation Online, буду благодарен любой информации(хотя бы что за версия питона требуется), чтобы .pyo файлы открыть, для примера прикрепляю 1 файл.

 

 

state_client_data.rar

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
для примера прикрепляю 1 файл.

для начала добавляешь отсутствующий заголовок, в котором как раз указывается версия питона, в примере ниже 2.7:

import sys, os
fileName, fileExtension = os.path.splitext(sys.argv[1])
f = open(sys.argv[1], "rb")
with open('%s_hdr.pyc' % fileName, 'wb') as fc:
    fc.write('\x03\xf3\x0d\x0a\0\0\0\0')
    fc.write(f.read())
f.close()

но декомпилировать все равно сложно, таблица опкодов в игре нестандартная.

т.е. в стандартном питоне RETURN_VALUE, а в этом скрипте вместо этого INPLACE_RSHIFT

хотя LOAD_CONST похоже не изменена, например.

без самой игры остается только гадать какие еще команды изменили, а какие нет.

ну а без списка кодов команд как они заданы в игре ничего не декомпилируешь.

вообщем это надо саму игру качать и.. "а оно мне надо сутки 30 гигов тянуть?!.. ради чего?!.."

Edited by fecell

Share this post


Link to post

Short link
Share on other sites

для начала добавляешь отсутствующий заголовок, в котором как раз указывается версия питона, в примере ниже 2.7:

import sys, os
fileName, fileExtension = os.path.splitext(sys.argv[1])
f = open(sys.argv[1], "rb")
with open('%s_hdr.pyc' % fileName, 'wb') as fc:
    fc.write('\x03\xf3\x0d\x0a\0\0\0\0')
    fc.write(f.read())
f.close()

но декомпилировать все равно сложно, таблица опкодов в игре нестандартная.

т.е. в стандартном питоне RETURN_VALUE, а в этом скрипте вместо этого INPLACE_RSHIFT

хотя LOAD_CONST похоже не изменена, например.

без самой игры остается только гадать какие еще команды изменили, а какие нет.

ну а без списка кодов команд как они заданы в игре ничего не декомпилируешь.

вообщем это надо саму игру качать и.. "а оно мне надо сутки 30 гигов тянуть?!.. ради чего?!.."

Даже за это уже огромное спасибо, если вам не трудно это сделать(не займет много времени) я готов оплатить сей труд.

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