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了!


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


  • 相关阅读:
    函数参数太多的一种简化方法
    laravel 获取所有表名
    使用 laravel 的 queue 必须知道的一些事
    git "refusing to merge unrelated histories" 解决方法
    使用 xhprof 进行 php 的性能分析
    php 性能优化
    js原生实现轮播图效果(面向对象编程)
    nextSibling 和nextElementSibling
    如何在页面中使用svg图标
    svg动画 animate
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/6740953.html
Copyright © 2011-2022 走看看