Найти - Пользователи
Полная версия: Как декомпильнуть скрипт с неправильным magic
Начало » Python для новичков » Как декомпильнуть скрипт с неправильным magic
1
lsdmax
Есть загрузочный скрипт который с сайта считывает скрипт.
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
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

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

Сделал..
Профи предпочитают помолчать…
+ почему-то дизассемблеры не берут.. не посмотреть на код ((
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB