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

Ясно. Спс. Вот теперь ситуация прояснилась для меня...

Ещё вопрос обязательно ли при обфускации ставить галку на Insert Unused Bytecode? Т.к. очень часто если скрипт обфусцирован сторонней программой он ломается!

Сильно влияет ли это на качество самой обфускации Ориона?

 

После разбора полётов с sae и личной проверки скрипта, который выкладывал Юша в теме о декомпиляции, я понял кто виновник того что произошло тогда сам знаешь когда. Подсказка в ЗЫ постом выше.

 

Да желательно ставить, я в следующей версии добавлю префикс (recommended) в опции, которые желательно вкл. по умолчанию. Чтоб обычные юзверы не ломали голову с галочками надо/не_надо.

 

Т.к. очень часто если скрипт обфусцирован сторонней программой он ломается!

Конечно, если её написал одноногий программист. Здесь очень просто принцип - главная защита эта та что ставиться первой, все что ставиться поверх неё - это бесполнезные действия. Поэтому если скрипт обработать кривой защитой или кривым способом (см пример с маршалом выше), а потом сверху навалить мегакрутую защиту, то ни какого толку не будет. Если уж хочется ставить защиты друг на друга (хотя я сто раз писал что в этом нет проку) то сначала надо обработать нормальной проверенной надежной защитой, а потом уже сверху накатывать всё остальное. А ни в коем случае не наоборот.

 

Сильно влияет ли это на качество самой обфускации Ориона?

 

 

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

 

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

Share this post


Link to post

Short link
Share on other sites

Пытаюсь отследить TankmanDismiss (демобилизация)

from gui.shared.gui_items.processors import tankman

original_TankmanDismiss_successHandler = tankman.TankmanDismiss._successHandler

def new_TankmanDismiss_successHandler(self, code, ctx=None):
    print('TankmanDismiss___')
    print(code)
    print(ctx)
    return original_TankmanDismiss_successHandler(code, ctx)

tankman.TankmanDismiss._successHandler = new_TankmanDismiss_successHandler

Скажите, что я делаю не так?

return original_TankmanDismiss_successHandler(self, code, ctx)

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

У меня есть обфускатор приватный переделанный pyobfuscate-master немного по другому обфусцирует код чем pyobfuscate-master, к сожалению при установке Insert Unused Bytecode некоторые скрипты ломались.

По поводу протектора от Ориона, через hex он снимается, с трудом но снимается.. (версия 1.2.2) (видел скрипт мода Arsonics со снятым протектором)

Edited by KACTET

Share this post


Link to post

Short link
Share on other sites

return original_TankmanDismiss_successHandler(self, code, ctx)

Как можно было так облажаться... надеюсь в будущем не буду допускать таких ошибок. Спасибо огромное!

Вот теперь не могу понять как узнать какой был tankman демобилизирован, я думал инфа хранится в code и ctx, но как оказалось:

*** TankmanDismiss___
*** 0
*** None
Хотя по логике этой инфы и не должно быть там, а где тогда?... Edited by My War

Share this post


Link to post

Short link
Share on other sites

У меня есть обфускатор приватный переделанный pyobfuscate-master немного по другому обфусцирует код чем pyobfuscate-master, к сожалению при установке Insert Unused Bytecode некоторые скрипты ломались.

По поводу протектора от Ориона, через hex он снимается, с трудом но снимается.. (версия 1.2.2) (видел скрипт мода Arsonics со снятым протектором)

 

Там косячки в скрипте встречались, они мелкие и проявляются не часто, я скрипт дорабатываю, вот и в 1.2.3 нашел косячок в алгоритме обфускатора. Так что иногда может на выходе получиться битый файл. Но это редко, достаточно просто проверить мод после наложения защиты. Если заработает значит всё гуд.

 

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

Share this post


Link to post

Short link
Share on other sites

Как можно было так облажаться... надеюсь в будущем не буду допускать таких ошибок. Спасибо огромное!

Вот теперь не могу понять как узнать какой был tankman демобилизирован, я думал инфа хранится в code и ctx, но как оказалось:

*** TankmanDismiss___
*** 0
*** None
Хотя по логике этой инфы и не должно быть там, а где тогда?...

 

Нашел где:

def new_TankmanDismiss_successHandler(self, code, ctx=None):
    print('TankmanDismiss___')
    print(self.item) # <--
    return original_TankmanDismiss_successHandler(self, code, ctx)

Вывод:

*** TankmanDismiss___
*** Tankman<id:520, nation:3, vehicleID:290>
Edited by My War

Share this post


Link to post

Short link
Share on other sites
у Леликоптера храниться в не защищенном виде да еще и в переменной.

вытащил из переменной, сохранил в .pyc-файл, действительно просто, кто-бы теперь помог декомпильнуть)))

http://dropmefiles.com/R9Lz6

 

зы: Лоадеры это слабая степень защиты - рано или поздно код исполняется, и исполнение кода можно перехватить, и что исполняется сохранить в файл. Лоадеры с привязкой к танкам или нет - неважно, вскрываются через внесение изменений в исходники питона. Например для хука exec/eval сделал python27.dll, которая все вызовы exec пишет в файлы. Все что импортируется скриптом и к чему идет обращение пишется в лог (далее дело техники создать .py-файл с нужным названием и с нужным кодом внутри - т.е. обмануть проверку на запуск в клиенте, и запускать скрипт уже в консоле минуя все проверки вплоть до непосредственного запуска защищенного кода). Наверное поэтому лоадер у леликоптера для отвода глаз, "косметическая защита". Вероятно тратить время на то, что ломается достаточно просто не счет нужным. Куда сложнее восстановить порядок байткода в скрипте, чтобы все-же декомпилировать и получить в итоге исходник после его защиты. Т.ч. в "храниться незащищенный" я бы усомнился, судя по тому, что по ссылке выложил ;) Может старые версии и хранили что-то незащищенное - не знаю, знаю что первые версии вообще исходник хранили, если память не подводит.

 

зы: тут еще подкинули задачку вытянуть рабочий скрипт, избавится от лоадера... http://dropmefiles.com/wJ3qs все декомпилируется без проблем, но воз и ныне там.

Edited by fecell

Share this post


Link to post

Short link
Share on other sites
Может старые версии и хранили что-то незащищенное - не знаю, знаю что первые версии вообще исходник хранили, если память не подводит.

 

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

 

Вот поэтому я в первом посте как в букваре кучу всяких разъяснений понаписал. Чтоб у обычного юзвера была возможность понять когда защита есть и когда защиты нет.

 

 

 

Лоадеры это слабая степень защиты

 

 

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

 

 

 

Например для хука exec/eval сделал python27.dll

 

А в памяти найти и дампнуть не проще, зачем такая лишняя работа ))))))

 

 

зы: тут еще подкинули задачку вытянуть рабочий скрипт, избавится от лоадера... http://dropmefiles.com/wJ3qs все декомпилируется без проблем, но воз и ныне там.

 

Там он внутри пида или пид только для расшифровки и инжекта? И к слову сказать кину грабли в огород из котрого они прилете - пид хакнуть как не чего делать, если он конечно не защищен. Но это уже другая плоскость. А вообще я еще 1,5 года назад в теме о демокпиляции изложил теорию защиты путем совмещения разных платформ, питон скрипт и инжектор на любом другом языке - лучше протектора не придумать. Беда только вот что в СИ я не работаю )))))) Но скоро эту помеху я исправлю )))))

 

зы: Автору надо было pyd зазипить и просто прилепить к концу файла, тогда бы он в архиваторах открывался, было бы красиво )))))

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

зы: Лоадеры это слабая степень защиты - рано или поздно код исполняется, и исполнение кода можно перехватить, и что исполняется сохранить в файл. Лоадеры с привязкой к танкам или нет - неважно, вскрываются через внесение изменений в исходники питона. Например для хука exec/eval сделал python27.dll, которая все вызовы exec пишет в файлы. 

 

Кстати все это можно сделать стандартными средствами питона.

Share this post


Link to post

Short link
Share on other sites

 

 

когда раздаешь такие вещи

Дык поэтому и не раздавал никому) Раздавал только одну единственную версию (сначала сайт был, потом приложение под винду стало). Тот пинг из её результата выдернут. Другой момент, что если криптовать как ЛСД неудачно криптовал в орионе (когда предварительно весь скрипт в строку помещал), то и результат будет такой-же. Тут уже горе от ума, криптор помочь не может ;)

Share this post


Link to post

Short link
Share on other sites

 

 

Кстати все это можно сделать стандартными средствами питона.

 

Со стандартными хуками можно бороться всякими способами, я даже выше вроде приводил несколько готовых способов на вскидку как задетектить хукинг, так что это бесконечное противостояние, а вот дамп памяти или хакинг dll - это по серьёзней будет ))))

 

 

 

Тут уже горе от ума, криптор помочь не может ;)

 

Вот потому и треба просвещать этих товарищей чтоб они себе руку или голову не прострелили )))) Я когда узнал что произошло выпал в страшный осадок и дико ругался, такой подставы я просто не ожидал )))

Share this post


Link to post

Short link
Share on other sites

Со стандартными хуками можно бороться всякими способами, я даже выше вроде приводил несколько готовых способов на вскидку как задетектить хукинг, так что это бесконечное противостояние, а вот дамп памяти или хакинг dll - это по серьёзней будет ))))

 

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

Edited by DrWebber

Share this post


Link to post

Short link
Share on other sites

И ведь ещё же есть игры на движке BigWorldа ..

Может через них получиться что либо? (Игра сталкер например, скрипты чистые в ней все..)

 

Пример:

# Embedded file name: scripts/common/matrix_providers.py

import BigWorld

import Math

 

def ShiftProvider(matrix, shift):

shift_matrix = Math.Matrix(matrix)

shift_matrix.setTranslate(shift)

shifted_prov = Math.MatrixProduct()

shifted_prov.a = matrix

shifted_prov.b = shift_matrix

return shifted_prov

 

 

def ScaleProvider(source_provider, scale):

scaled_matrix = Math.Matrix()

scaled_matrix.setScale(scale)

scaled_product = Math.MatrixProduct()

scaled_product.a = scaled_matrix

scaled_product.b = source_provider

return scaled_product

Edited by KACTET
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

Ух посмотрел в этой версии упаковочку... Хорошая... Респект... :gawi:

Share this post


Link to post

Short link
Share on other sites

Ух посмотрел в этой версии упаковочку... Хорошая... Респект... :gawi:

 

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

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Подскажите, а можно ли снять защиту поставленную pjorion со скрипта?

Однозначно да.

 

 

 

 

 

.....но! Защита считается надежной... если силы (средства) затраченные на ее преодоление превышают стоимость (ценность) защищаемой информации.... 

 

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

Edited by Yusha

Share this post


Link to post

Short link
Share on other sites

'офтоп'

головоломка)) ничего серьезного, но занимательно.. Смотрите исходный код и результат выполнения на самом сайте, удивляйтесь почему именно так исполняется, а не так как ожидается. http://ideone.com/GuSU4F

ответ в исходнике (качается тоже с сайта, но для начала открывать блокнотом или вордом (но не Wordpad!), потом только орионом (или вордпадом, или фаром), дабы не испортить себе момент удивления)

 

зы: кому интересно гуглите RLO, PDF (utf-8), а вообще подсмотрено сегодня на хабре.. просто поделился.. ;)

Edited by fecell
  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

Подскажите, а можно ли снять защиту поставленную pjorion со скрипта?

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

Однозначно да.

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

sherlock001.png

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

Edited by fecell

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