• 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构造一个freebuf新闻发送脚本
    CISCO路由器练习
    python dns欺骗
    心脏滴血漏洞
    0CTF题中的神奇宝贝WP
    一套海量在线用户的移动端IM架构设计实践分享(含详细图文)(转)
    sendfile函数--零拷贝(转)
    浅谈分布式消息技术 Kafka(转)
    架构之微服务(zookeeper)转
    Zookeeper 3、Zookeeper工作原理(转)
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/6740953.html
Copyright © 2020-2023  润新知