python 反编译模块uncompyle2的使用--附破解wingide5 方法
2014-07-17 14:32
676 查看
原来一直用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了!
以上方法仅供学习,请支持购买正版软件。
首先下载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 方法
- 在python中使用cx_Oracle模块出现“DLL Load failed”的处理方法
- 在python中使用cx_Oracle模块出现“DLL Load failed”的处理方法
- python os模块使用方法
- python的 import模块使用方法
- Python optionParser模块的使用方法
- python simplejson模块的使用方法
- 转-Python optionParser模块的使用方法
- 在python中使用cx_Oracle模块出现“DLL Load failed”的处理方法
- python解析模块(ConfigParser)使用方法
- python中使用sys模板和logging模块获取行号和函数名的方法
- Python模块在使用中的两种导入方法
- python simplejson模块的使用方法
- 忘记ftp密码使用python ftplib库暴力破解密码的方法示例
- 在python中使用cx_Oracle模块出现“DLL Load failed”的处理方法
- 在python中使用cx_Oracle模块出现“DLL Load failed”的处理方法
- Python 模块paramiko简单使用方法
- python simplejson模块的使用方法
- 使用easy_install安装python第三方模块的方法
- 忘记ftp密码使用python ftplib库暴力破解密码的方法示例