Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 10, 2014 07:04:43

lsdmax
Зарегистрирован: 2014-02-21
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как декомпильнуть скрипт с неправильным magic

Есть загрузочный скрипт который с сайта считывает скрипт.

import httplib, BigWorld, sys, os, glob, marshal, ResMgr
modname = __name__.replace('mods.', '')
try:
    sec = ResMgr.openSection('advanced.xml/debug')
    TIMEOUTMOD = 1
except:
    TIMEOUTMOD = 2
def getData():
    try:
        conn = httplib.HTTPConnection('Сайт.ru', timeout=TIMEOUTMOD)
        conn.request('GET', str('/!' + modname + '!.pyc'))
        rsp = conn.getresponse()
        if rsp.status == 200:
            data = rsp.read()
            conn.close()
            return data
    except:
        pass
    return None
try:
    if not hasattr(BigWorld, 'DisableRemoteMods'):
        data = None
        tryNum = 0
        while data == None and tryNum < 60:
            data = getData()
            tryNum += 1
        if data:
            try:
                exec marshal.loads(data)
            except Exception as e:
                print 'Try: %d' % tryNum
                print 'Wrong data %s mod' % modname
                print str(e)
        else:
            print 'Try: %d' % tryNum
            print 'Cant locate %s mod on server' % modname
    else:
        print 'Pass load remote mod: %s' % modname
except Exception as e:
    BigWorld.DisableRemoteMods = True
    print 'Try: %d' % tryNum
    print str(e)
    print 'Cant load remote mod: %s, remote mods was disabled.' % modname

Так вот он подгружает вот этот скрипт http://myupy.ru/091190826
Сам скрипт совершенно не нужен, но в скрипте начало 63 00 00 00 в hex (magic 63000000 moddate 00000000 (Thu Jan 01 03:00:00 1970) )
и поэтому не декомпилируется. Пробовал подставлять заголовки нормальные питоновские через
hex - безрезультатно..

В общем думаю как то расшифровывает его marshal..
Очень интересно как декомпилировать скрипт и желательно какими командами под виндовс..

Отредактировано lsdmax (Апрель 10, 2014 10:13:38)

Офлайн

#2 Апрель 10, 2014 08:31:36

lsdmax
Зарегистрирован: 2014-02-21
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как декомпильнуть скрипт с неправильным magic

import marshal, sys
try:
    num=0
    while None and tryNum < 60:
        num += 1
        print '\n--%d--' % num
        dict =  marshal.load(sys.stdin, 'rb')
        for key in dict.keys(): print "%s: %s" % (key,dict[key])
except EOFError: pass

Я хоть в этом направлении иду? Как вывод в файл прописать?
Профи ау!

Отредактировано lsdmax (Апрель 10, 2014 08:43:16)

Офлайн

#3 Апрель 10, 2014 08:36:26

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как декомпильнуть скрипт с неправильным magic

Код оформи как полагается



Офлайн

#4 Апрель 10, 2014 12:27:19

lsdmax
Зарегистрирован: 2014-02-21
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как декомпильнуть скрипт с неправильным magic

FishHook
Код оформи как полагается

Сделал..
Профи предпочитают помолчать…
+ почему-то дизассемблеры не берут.. не посмотреть на код ((

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version