zoukankan      html  css  js  c++  java
  • 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了!


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


  • 相关阅读:
    log4net(c#) 配置及使用
    【转】JMeter试用手记
    【转】性能测试工具JMeter的使用技巧
    【转】JMeter基础之——录制脚本
    【转】Jmeter基础之——jmeter基础概念
    【转】JMeter基础之——一个简单的性能测试
    【转】JMeter入门
    【转】Jmeter压力测试模拟并发
    【转】JMeter Tutorial的安装和具体操作
    【转】JMeter代理录制脚本
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/6740953.html
Copyright © 2011-2022 走看看