python 反编译模块uncompyle2的使用--附破解wingide5 方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 反编译模块uncompyle2的使用--附破解wingide5 方法相关的知识,希望对你有一定的参考价值。

原来一直用pycharm,无奈它常常无法使用.来訪问一些模块的属性,朋友推荐了wingide,于是去官网下载了wingide5的最新版本号,仅仅有10天的试用期,就想能否用python的uncompyle2来反编译一下注冊文件:

首先下载uncompyle2

sudo pip2.7 install uncompyle2


成功安装后就能够在命令行下使用uncompyle2了,windows能够去安装路径查找这个exe命令


其次,从wingide中找到注冊文件 bin/2.7/中的src.zip,将当中的abstract.pyo文件解压出来

然后用命令

./uncompyle2 abstract.pyo > abstract.py

这样就依据pyo文件生成了源代码py文件,找到与使用期限相关的代码例如以下:

def _GetTermDaysLeft(self, lic = None):
        """ Get number of days left on license.  Returns the days, or 0 if expired,
        -1 if unlimited, or -2 on error """
        return -1                #我们直接在这里将这个函数返回-1
        if config.kSteam:
            try:
                return self.__GetSteamTermDaysLeft()
            except:
                return -2

        if lic is None:
            lic = self.fLicenseData
        if lic is None:
            return 0
        elif lic[‘termdays‘] != ‘*‘:
            try:
                fields = string.split(lic[‘date‘], ‘/‘)
                if len(fields) != 3:
                    raise ValueError
                m, d, y = map(string.atoi, fields)
                if m < 1 or m > 12 or d < 1 or d > 31 or y < 0:
                    raise ValueError
                if y < 100:
                    y = 2000 + y
                lic_date = time.mktime((y,
                 m,
                 d,
                 0,
                 0,
                 0,
                 0,
                 0,
                 -1))
            except (ValueError, TypeError, OverflowError):
                return -2

            cur_date = time.time()
            try:
                lic_secs = int(lic[‘termdays‘]) * 24 * 60 * 60
            except ValueError:
                return -2

            if cur_date > lic_date + lic_secs:
                return 0
            if lic_date > cur_date + 86400:
                return 0
            return int((lic_secs - (cur_date - lic_date)) / 86400)
        else:
            return -1

然后再将我们改动好的py文件生产pyo文件放到src.zip文件里去就ok了!


以上方法仅供学习,请支持购买正版软件。








以上是关于python 反编译模块uncompyle2的使用--附破解wingide5 方法的主要内容,如果未能解决你的问题,请参考以下文章

使用uncompyle2直接反编译python字节码文件pyo/pyc

pyc 文件反编译 py uncompyle2

uncompyle6安装使用方法

IDF实验室-python ByteCode writeup

Python之math库

如何防止反编译或检查 python 代码?