现在的位置: 首页 > 综合 > 正文

linux下破解Python集成开发环境WingIDE4.1

2013年09月03日 ⁄ 综合 ⁄ 共 2267字 ⁄ 字号 评论关闭

主要参考:

http://hi.baidu.com/hacklzt/blog/item/358cc512f1532538dd540105.html/cmtid/a3e8a36f9ab185d581cb4aa7#0

http://hi.baidu.com/vessial/blog/item/4a2d2cfdafcd0c0c08244dd9.html

http://bbs.pediy.com/showthread.php?t=138599


1、archlinux下直接yaourt -S wingide,就会下载编译安装了。第一次打开会弹出一个框叫你注册,如下图,一直点下去后就会获取一个10天试用版的License。(由于我的已经破解好了,所以只能借别人的图了。)


2、然后找到文件,archlinux下面是在/opt/wingide4.0/bin/2.5,解压出里面process目录下的abstract.pyo文件。

3、去http://pypi.python.org/pypi/unpyclib/0.8.1  下载这个unpyclib python库。

4、把刚才解压的abstract.pyo放到unpyclib库目录下面,与application.py一起,然后执行命令进行反汇编:python2.7 application.py -d abstract.pyo > abstract.txt。我的python默认的是3.2的,所以这里要指定2.7。

5、打开汇编结果文件abstract.txt,通过查找关键函数_GetTermDaysLeft 找到关键地方:
000050B8                                 STR: 't\x00\x00d\x01\x00\x83\x01\x00|\x01\x00d\x02\x00<x6\x00t\x01\x00D].\x00}\x03\x00|\x01\x00i\x02\x00...' (2F 03 00 00 74 00 00 64 01 00 83 01...)
     .............................................  中间省略   ........................................................
                               000001C6     6E - JUMP_FORWARD        -> 000001CA
                                         000001C9     01 - POP_TOP             
                                         000001CA     7C - LOAD_FAST           'self'
                                         000001CD     69 - LOAD_ATTR           '_GetTermDaysLeft'
                                         000001D0     7C - LOAD_FAST           'lic'
                                         000001D3     83 - CALL_FUNCTION       
                                         000001D6     7D - STORE_FAST          'daysleft'
                                         000001D9     7C - LOAD_FAST           'daysleft'
                                         000001DC     64 - LOAD_CONST          -1
                                         000001DF     6A - COMPARE_OP          "=="
                                         000001E2     6F - JUMP_IF_TRUE        -> 000001F9   将6F改成70 这里为了判断时间是否不受限制。 70对应的指令是JUMP_IF_FALSE
                                         000001E5     01 - POP_TOP             
                                         000001E6     74 - LOAD_GLOBAL         '_'
                                         000001E9     64 - LOAD_CONST          'unlimited'
                                         000001EC     83 - CALL_FUNCTION       
                       
这一段的起始地址是000050B8,偏移地址是000001E2,用python计算:hex(0x50b8+0x01e2)得0x529a。不同版本的起始地址不同,这个要注意。


6、下面通过VIM来更改二进制文件abstract.pyo。输入命令打开:vim -b abstract.pyo  (如果不加-b参数,则将不能修改,以只读模式打开)然后,在Ex模式下执行下面的命令
:%!xxd

在二进制编辑状态下,查找地址5290,找到要修改的地方,如图:

把行尾的6f改成70。

7、编辑工作完成后,执行下面的命令即可将其转换回去
:%!xxd -r
最后 :wq保存退出。

8、最后一步非常关键,先用7zip打开src.zip,把其中process里面的abstract.pyo删除,然后把这个修改好的abstract.pyo添加进去。这个非常重要,src.zip不能自己生成,不然启动不了。再把这个src.zip拷回/opt/wingide4.0/bin/2.5。

9、大功告成,可以试试改一下系统时间到10天之后,仍然可以用。

抱歉!评论已关闭.