Jump to content
Korean Random
IzeBerg

Как и чем декомпилировать/компилировать питон?

Recommended Posts

Я не против подобной надписи, но я против модпака протанки!!!

попахивает личкой

Share this post


Link to post

Short link
Share on other sites

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

Защита повлияла Не знаю, зачем она здесь, наверное, просто все скрипты под одну гребёнку попали).

В основе код примерно такой (с вариациями):

import BigWorld

class CameraNode(BigWorld.UserDataObject):

    def __init__(self):
        BigWorld.UserDataObject.__init__(self)

def load_mods():
    import ResMgr, os, glob
    sec = ResMgr.openSection('../paths.xml')
    subsec = sec['Paths']
    vals = subsec.values()[0:2]
    for val in vals:
        mp = val.asString + '/scripts/client/mods/*.pyc'
        for fp in glob.iglob(mp):
            _, fn = os.path.split(fp)
            sn, _ = fn.split('.')
            if sn != '__init__':
                print 'LoadMod: ' + sn
                try:
                    exec 'import mods.' + sn
                except Exception as e:
                    print e

load_mods()

Share this post


Link to post

Short link
Share on other sites

Защита повлияла Не знаю, зачем она здесь, наверное, просто все скрипты под одну гребёнку попали).

В основе код примерно такой (с вариациями):

import BigWorld

class CameraNode(BigWorld.UserDataObject):

    def __init__(self):
        BigWorld.UserDataObject.__init__(self)

def load_mods():
    import ResMgr, os, glob
    sec = ResMgr.openSection('../paths.xml')
    subsec = sec['Paths']
    vals = subsec.values()[0:2]
    for val in vals:
        mp = val.asString + '/scripts/client/mods/*.pyc'
        for fp in glob.iglob(mp):
            _, fn = os.path.split(fp)
            sn, _ = fn.split('.')
            if sn != '__init__':
                print 'LoadMod: ' + sn
                try:
                    exec 'import mods.' + sn
                except Exception as e:
                    print e

load_mods()

 

яснопонятно =)

Share this post


Link to post

Short link
Share on other sites

попахивает личкой

Типа модпаком? Мой модпак, за 3 года, скачан около пары сотен раз и юзают его не больше 10 человек. Всех знаю в реале. И распространяется только ссылкой в скайпе. Эта надпись вымораживала только меня. Просто бесят всякие говносборкоделы типа джовов, юш, аидов и т. д.

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 который был в 8.10.. или 8.9 вроде...

http://rghost.ru/private/54284683/16d13453371b7c13a1801d89135d3553

будет работать в 9.0 понятия не имею. надеюсь делюкс и кошнарек не в обиде - защиты не увидел, полагаю мод не приватный.

Если я неправ, ссылку на исходник удалю.

 

Есть защита в последних версиях, но теперь она не имеет смысла, спасибо.

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

Есть защита в последних версиях, но теперь она не имеет смысла, спасибо.

 

Если это сарказм, то Del ты перегибаешь палку, когда на него наезжаешь. В чем именно он то виноват?... Вот хотя бы тут прочти

 

Я вообще не понимаю, вот объясните мне недалёкому: ну зачем все эти извращения с "защитой" кода легальных модов? Или у кого-то просто много лишнего времени? =)

 

Чем опенсорс не нравится?

 

Тем что к нему очень легко присобачить свой копирайт, засунуть в раскрученную сборку и боблишка на этом срубить.

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

засунуть в раскрученную сборку и боблишка на этом срубить.

Что мешает сделать это же с модом код которого закрыт? Так и делают всякие сами_знаете_кто.

Edited by Krab Age

Share this post


Link to post

Short link
Share on other sites

Что мешает сделать это же с модом код которого закрыт? Так и делают всякие сами_знаете_кто.

 

О чем речь?

Share this post


Link to post

Short link
Share on other sites

 

 

Если это сарказм, то Del ты перегибаешь палку, когда на него наезжаешь. В чем именно он то виноват?... Вот хотя бы тут прочти.

 

Да меня высаживает эта фигня с выкладыванием исходников всем подряд.

  • Upvote 1
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

а где там защита? мод для питона 2.6 который был в 8.10.. или 8.9 вроде...

http://rghost.ru/private/54284683/16d13453371b7c13a1801d89135d3553

будет работать в 9.0 понятия не имею. надеюсь делюкс и кошнарек не в обиде - защиты не увидел, полагаю мод не приватный.

Если я неправ, ссылку на исходник удалю.

Может, расскажешь как такую муть делать? )

 

 

 

Тем что к нему очень легко присобачить свой копирайт, засунуть в раскрученную сборку и боблишка на этом срубить.

Не знаю на сколько это правда, но один знатный сайтик говорит что канал говноджова приносить прибыль

$95.9K - $799.4K

ESTIMATED YEARLY EARNINGS

Вот тебе и GPL

 

опять upd.

 

и в топ10 самых его прибыльных видосов - 9 модпаков 

Edited by BuSH

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, питон 2.7 питон 3.х - все имеют разный заголовок в .pyc файле (первые 4 байта), все имеют разный опкод..

тот скрипт просто на питоне 2.6 был сделан, т.к. такой питон в танках применялся. Сейчас в танках применяется питон 2.7 - т.е. старые скрипты в нем не работают.

Декомпиляция питона 2.6 с помощью fupy реализуется. Есть и другие декомпиляторы, но имхо под 2.6 fupy наилучший, жаль под 2.7 его не развивали уже (хоть на офсайте и написано, что от 2.5 до 2.7).. Реально байткод 2.6 от 2.7 отличается буквально чуть-чуть.. добавлено три опкода и еще у одного он изменился на единицу, если память не изменяет.. да чего там - сравни opcodes.py из питона 2.6 и 2.7 да у видишь сам..

ну и собственно для декопила скрипта применилась команда "c:\python26\python.exe fupy script.pyc -o script.py" и никаких других шаманств..

ссылка на fupy - https://code.google.com/p/fupy/

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
ну и собственно для декопила скрипта применилась команда "c:\python26\python.exe fupy script.pyc -o script.py" и никаких других шаманств..

Спасибо, пашет. Остальная роспись была излишня.

 

@StranikS_Scan, может он и отличный, но с 2.6  fupy справляется куда лучше.

lTjbMy2.png

 

 

 

жаль под 2.7 его не развивали уже (хоть на офсайте и написано, что от 2.5 до 2.7)

парочку 2.7 разобрал и всё ок )

Edited by BuSH

Share this post


Link to post

Short link
Share on other sites

парочку 2.7 разобрал и всё ок )

:) я тоже вчера понял на чем fupy отваливался на 2.7 - на декораторах.

не знаю все или только некоторые неверно разбирает. у меня "@singleton" использовался, на нем и отваливался...

вообщем добавил в fupy:

class PythonCompiledClass:
  """
  Internally used by the decompiler to represent a compiled class object.
  """
  def __init__(self, supers, code):
    self.supers = supers
    self.code = code
  def write(self, indent = ''): # <<<<<<<<<<<< ВОТ ЭТО
    return '.PythonCompiledClass' # <<<<<<<<<<<< ВОТ ЭТО

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

декораторы fupy стал так декомпилировать так:

myClassName = singleton(.PythonCompiledClass)
class myClassName(object):

вместо

@singleton
class myClassName(object):
Edited by fecell

Share this post


Link to post

Short link
Share on other sites

Зачем старый fupy (114 дней назад последние изменения) если есть uncompile2 (год назад изменения в основном форке) ?

сам понял что спросил? :)

впрочем есть форк (by mvaled) в котором изменения были 12 дней назад.

я вчера вечером в свой форк добавлял код, но еще коммит не выкладывал.. но ты вряд-ли его найдешь.. да и не надо тебе.

пользуйся easy decompiler - рекомендую, для новичков отличная вещь!

 

зы: вот тебе задачка для декомпиляции.. интересно какой декомпилятор не выдаст ошибок ;)

http://dropmefiles.com/CK8cw

Edited by fecell

Share this post


Link to post

Short link
Share on other sites

Спасибо, в easy decompiler действительно, есть uncompile2

который не падает в обморок от декораторов.

 

зы: вот тебе задачка для декомпиляции.. интересно какой декомпилятор не выдаст ошибок ;)

по ссылке только порнуха.

Edited by lportii

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